A self-hosted household chore chart for families. Add your chores, assign them (or let anyone claim them), check them off, and earn points — no subscription, no cloud account, your data stays on your own server.
Hestia exists because most task trackers you'll find are built for software teams, not families. It's meant to be free, simple, and something a non-technical family member can actually use from a tablet on the fridge.
Early days — this is a fresh scaffold, not yet a usable app. See CLAUDE.md for the project's conventions and current architecture decisions.
glebarez/sqlite driver (pure Go,
no cgo) — one file, no separate database server to rungit clone https://github.com/Wikid82/hestia.git
cd hestia
cp .env.example .env # set AUTH_SECRET, and TZ to your household's timezone
docker compose up -d
The app will be available at http://localhost:8080. The SQLite database
lives in ./data/hestia.db on the host, via a bind-mounted volume — back up
that one file to back up your whole household's data.
Set TZ to your household's IANA timezone (e.g. America/New_York) —
chore due-dates are computed from the container's local clock, so without
it everything runs on UTC regardless of where you actually are, and chores
flip to the next day at UTC midnight instead of local midnight.
Hestia works out of the box behind Caddy, Traefik, Nginx Proxy Manager, or
similar, as long as the proxy forwards the original Host header (all three
do this by default). Serving from a domain or subdomain root (e.g.
https://hestia.example.com) needs no extra configuration — just proxy to
the container's port 8080.
Serving Hestia from a reverse-proxy subpath (e.g.
https://home.example.com/hestia/) isn't supported yet — proxy from a
dedicated (sub)domain instead.
Run the backend and frontend as two separate processes:
cd backend && cp ../.env.example ../.env # or export AUTH_SECRET/DB_PATH/TZ directly
go run ./cmd/api
cd frontend
npm install
npm run dev
The Vite dev server proxies /api requests to the Go backend (see
frontend/vite.config.ts), so open the frontend's dev URL (typically
http://localhost:5173) rather than the backend's port directly.
Database migrations run automatically on startup via GORM's AutoMigrate.
After changing backend/internal/models/models.go, just restart the
backend — no separate migration-generation step needed.
MIT — free for anyone to use, fork, or self-host.
Content type
Image
Digest
sha256:01e79ce73…
Size
16.8 MB
Last updated
5 days ago
docker pull wikid82/hestia