Monorepo skeleton for the Bruton family home hub. It ships with:
- FastAPI backend (async SQLAlchemy, Redis, Google Calendar placeholders)
- React + Vite + Tailwind + shadcn/ui frontend (PWA-ready)
- Docker Compose stack for Postgres, Redis, MinIO, Caddy reverse proxy, and dev servers
backend/ # FastAPI app + routers, services, tests
frontend/ # React + Vite PWA
infra/ # docker-compose.yml, Caddyfile, env.example
scripts/ # bootstrap + backup helpers
- Copy environment files
cp infra/env.example .env cp backend/.env.example backend/.env
- Start the backend
cd backend python -m venv .venv && source .venv/bin/activate pip install -e .[dev] uvicorn app.main:app --reload
- Start the frontend
cd frontend npm install npm run dev
Or run ./scripts/bootstrap.sh to perform the setup automatically (copies .env, creates the backend venv, installs deps).
cp infra/env.example .env
docker compose -f infra/docker-compose.yml up --buildCaddy serves everything at https://familyhub.local (configure mDNS/hosts + trust TLS certs). MinIO console lives at http://localhost:9001.
Frontend assets are built inside the frontend-build service (Node 20 container). Whenever you change the React app run:
docker compose -f infra/docker-compose.yml up --build frontend-buildThis regenerates frontend/dist, which Caddy serves from /srv.
- Flesh out auth (JWT + passlib) and calendar sync background workers
- Add Alembic migrations + real models for chores, events, etc.
- Configure Backups: nightly pg_dump + MinIO replication script
- Integrate Tailscale for remote access once Pi deployment begins