- Go 74.4%
- Dart 16.2%
- HTML 3.7%
- Nix 1.4%
- PLpgSQL 1.1%
- Other 3.2%
Forgejo has no Pages service. CI keeps force-pushing the built Astro tree to the 'pages' branch, but whiskey now serves it: an nginx vhost with a systemd timer that pulls that branch into the docroot. CI only ever pushes a branch, so nothing needs inbound access to the host (which exposes only 80/443). Replaces the git-pages setup section — webhook, _git-pages-repository TXT records, Codeberg's Pages IPs — with the DNS and troubleshooting steps that actually apply. Note homefirst.dev is on Porkbun, not Cloudflare like bcnelson.dev, so ACME DNS-01 uses the server role's default credentials. Also repoints the published image names and reframes the repo as canonical on git.bcnelson.dev with Codeberg as a read-only mirror. |
||
|---|---|---|
| .claude/skills | ||
| .forgejo/workflows | ||
| .zellij | ||
| apps | ||
| docs | ||
| nix/modules | ||
| packages | ||
| platform | ||
| scripts | ||
| .dockerignore | ||
| .envrc | ||
| .gitignore | ||
| AGENTS.md | ||
| CONTRIBUTING.md | ||
| devenv.nix | ||
| flake.lock | ||
| flake.nix | ||
| go.work | ||
| go.work.sum | ||
| justfile | ||
| LICENSE | ||
| pubspec.lock | ||
| pubspec.yaml | ||
| README.md | ||
| VERSION | ||
Home First
Software that runs on a server in your own home — not someone else's cloud.
Home First is a family of self-hosted apps for people who want the convenience of modern software without handing their personal data to a third party. You run it on hardware you control, your data stays on disk you own, and nothing leaves the house unless you decide it should.
This repository (homefirst) is the monorepo that holds those apps and the code they
share.
The apps
| App | What it is |
|---|---|
| tendant | A single-household task orchestrator. It watches the sources you connect (email, calendars, and more), figures out what actually needs doing, and keeps your household's tasks in one place. |
| openPRM | A personal relationship manager (CRM). Throw unstructured notes about the people in your life at it and it files them into clean, time-stamped, fully-sourced facts you can query later. |
Each app is a single Go binary plus a Postgres database, with a Flutter app for the people who use it. Pick the one you want — they run independently.
What "Home First" means
- Your hardware, your data. Everything runs on a machine in your home. There's no account to sign up for and no usage being sold.
- Private by design. The apps are built so that information only reaches an outside service (an LLM, say) when you've explicitly chosen to let it.
- Open source. Licensed under AGPL-3.0 (see
LICENSE) and developed in the open at git.bcnelson.dev/home-first/homefirst, with a read-only mirror on Codeberg.
There's also an optional hosted companion, homefirst.cloud, that handles things a home server can't do well on its own (like reliable push notifications). It's strictly optional and lives in a separate repo; the apps here run fully without it.
Running it yourself & contributing
Want to build it, run it locally, or contribute? Everything technical — the toolchain, how the monorepo is laid out, and how to get each app running on your machine — is in CONTRIBUTING.md.
License
AGPL-3.0. See LICENSE.