MIT licensed · Open source

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.

View on GitLab

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 -d
Read the install guide

Hosted vs self-hosted — what actually differs

The feature set is identical. These are the only operational differences:

HostedSelf-hosted
Who runs itWe doYou do
Updates and backupsAutomaticYou schedule them
AI assistantIncluded on Full planBring your own API key
Payment flowsStripe-backed, trial includedNot present — no billing UI
SupportPriority emailCommunity (GitLab issues)
CostMonthly or yearlyFree, 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.