A household management PWA built for two people. It covers meal planning with a shared recipe book, a collaborative shopping list, and a calendar that syncs work shifts from an ICS feed — all accessible from any device on the home network.
- Backend — FastAPI + SQLite (aiosqlite), runs on a Raspberry Pi
- Frontend — React + Vite + TypeScript PWA
The backend is published as a Docker image (ARM64) via GitHub Actions on every push to main.
docker pull ghcr.io/maxthfe/household-app/backend:latest
docker run -d \
--name ourhome \
--restart unless-stopped \
-p 8000:8000 \
-v /home/pi/ourhome/data:/app/data \
-e HT_USER1_NAME=UserName1 \
-e HT_USER2_NAME=UserName2 \
-e HT_ICS_URL=<your-ics-url> \
-e HT_ICS_SYNC_INTERVAL_MINUTES=30 \
ghcr.io/maxthfe/household-app/backend:latestThe SQLite database is persisted at /home/pi/ourhome/data on the host.
docker pull ghcr.io/maxthfe/household-app/backend:latest
docker restart ourhomecd backend
uv sync
uv run uvicorn app.main:app --reloadRuns at http://localhost:8000. Copy .env.example to .env and fill in your values.
cd frontend
npm install
npm run devRuns at http://localhost:5173.
On push to main (backend files only), a Docker image is built for linux/arm64 and pushed to the GitHub Container Registry (ghcr.io).
