Self-host FamilyHub
Run the whole thing on your own hardware. Free forever, MIT licensed, your data never leaves the house.
FamilyHub is genuinely open source — not a "community edition" with features removed. The self-hosted build is the same code we run for our hosted customers, just without the payment module wired up.
Why self-host
Your data, your hardware
Family photos, grocery lists, kids' schedules — it all stays on the machine you control. No third-party cloud, no analytics, no ads.
Free, forever
No subscription, no license key, no artificial limits. MIT license.
Hack on it
The whole codebase is on GitLab. Fork it, run your own fork, send merge requests, change the colors, replace Claude with your own LLM. It's yours.
Bring your own AI
Want the AI assistant? Drop in an Anthropic or OpenAI API key in the admin UI (or set an env var instance-wide). Voice-to-text? Point it at OpenAI Whisper or a self-hosted faster-whisper.
What you need
- Any Docker host (Raspberry Pi 4/5, mini-PC, NAS, VPS, or a Kubernetes cluster — whatever you already run)
- About 2 GB of RAM — FamilyHub itself is small; PostgreSQL is the heaviest component
- A domain or LAN hostname — it runs fine on your local network too
- Optional: an Anthropic or OpenAI API key for the AI assistant
Installed with a single command
The Docker Compose setup in the repo gets PostgreSQL, Radicale (CalDAV), the API, the frontend, Mailpit, and a seed init-container running in one shot. Copy .env.example to .env with your JWT_SECRET and ENCRYPTION_KEY first, then `docker compose up -d` and open localhost:5173 to create the first super admin.
git clone https://gitlab.com/yvanpersonal/familyhub.git cd familyhub cp .env.example .env # then fill in JWT_SECRET + ENCRYPTION_KEY docker compose up -dRead the install guide
Hosted vs self-hosted — what actually differs
The feature set is identical. These are the only operational differences:
| Hosted | Self-hosted | |
|---|---|---|
| Who runs it | We do | You do |
| Updates and backups | Automatic | You schedule them |
| AI assistant | Included on Full plan | Bring your own API key |
| Payment flows | Stripe-backed, trial included | Not present — no billing UI |
| Support | Priority email | Community (GitLab issues) |
| Cost | Monthly or yearly | Free, but your time |
Start self-hosted, switch later (or the reverse)
The database schema is the same in both modes. Setting FAMILYHUB_PAYMENT_ENABLED=true on a self-hosted instance wakes up the payment module — existing families show as FREE, new trials work normally. Going the other way, export your data from the hosted version anytime.