Overview
Every Home First app ships the same way, so running any of them looks the same.
What each app is
Section titled “What each app is”- One Go binary. The server is a single statically-linked binary with the Flutter web UI embedded — no separate web server to run.
- One Postgres database. Each app keeps all of its data in its own Postgres database, and updates its schema itself when it starts.
What you need
Section titled “What you need”- A machine in your home: NixOS, or anything that runs Docker.
- PostgreSQL 15 or newer. tendant also needs the pgvector extension. Both deployment guides set this up for you.
- Optional: Ollama, or any OpenAI-compatible endpoint, for the local models the apps use.
Pick a deployment
Section titled “Pick a deployment”- Deploy on NixOS — the recommended path: hardened systemd services, a local Postgres with no database passwords, scheduled backups, and the optional Laya decision model, all from the Home First flake.
- Deploy with Docker Compose — the published images, one Postgres, and a backup container.
Either way: keep the apps on your tailnet rather than the public internet, back up the database and each app’s credentials key, and take a backup before every upgrade.
Container images
Section titled “Container images”Both apps publish multi-arch (amd64 + arm64) container images:
git.bcnelson.dev/home-first/tendant and git.bcnelson.dev/home-first/openprm.
Tags are the exact version (e.g. 2026.7.01), latest for the main branch,
and the stable / rc / beta release channels.