No description
  • Go 74.4%
  • Dart 16.2%
  • HTML 3.7%
  • Nix 1.4%
  • PLpgSQL 1.1%
  • Other 3.2%
Find a file
Bradley Nelson 029d0263dd
Some checks failed
release / changes (push) Successful in 37s
pages / changes (push) Successful in 37s
pages / build (push) Successful in 1m20s
release / publish (push) Failing after 1m32s
pages / deploy (push) Successful in 1m31s
docs: serve homefirst.dev from whiskey instead of Codeberg Pages
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.
2026-08-02 11:06:08 -06:00
.claude/skills repo: rename the Go module path to git.bcnelson.dev/home-first 2026-08-02 11:05:45 -06:00
.forgejo/workflows ci: replace the Woodpecker pipelines with Forgejo Actions workflows 2026-08-02 11:05:58 -06:00
.zellij openprm capture logic 2026-06-28 17:55:58 -06:00
apps ci: replace the Woodpecker pipelines with Forgejo Actions workflows 2026-08-02 11:05:58 -06:00
docs docs: serve homefirst.dev from whiskey instead of Codeberg Pages 2026-08-02 11:06:08 -06:00
nix/modules repo: rename the Go module path to git.bcnelson.dev/home-first 2026-08-02 11:05:45 -06:00
packages repo: rename the Go module path to git.bcnelson.dev/home-first 2026-08-02 11:05:45 -06:00
platform ci: replace the Woodpecker pipelines with Forgejo Actions workflows 2026-08-02 11:05:58 -06:00
scripts ci: replace the Woodpecker pipelines with Forgejo Actions workflows 2026-08-02 11:05:58 -06:00
.dockerignore ci: replace the Woodpecker pipelines with Forgejo Actions workflows 2026-08-02 11:05:58 -06:00
.envrc Phase 0: monorepo skeleton 2026-06-23 19:24:50 -06:00
.gitignore zellij DRY 2026-06-28 11:06:24 -06:00
AGENTS.md ci: replace the Woodpecker pipelines with Forgejo Actions workflows 2026-08-02 11:05:58 -06:00
CONTRIBUTING.md ci: replace the Woodpecker pipelines with Forgejo Actions workflows 2026-08-02 11:05:58 -06:00
devenv.nix repo: rename the Go module path to git.bcnelson.dev/home-first 2026-08-02 11:05:45 -06:00
flake.lock Consolidate devenv/flake tooling at monorepo root 2026-06-25 00:51:59 -06:00
flake.nix ci: replace the Woodpecker pipelines with Forgejo Actions workflows 2026-08-02 11:05:58 -06:00
go.work remote tandant benchmarking 2026-07-02 17:04:50 -06:00
go.work.sum agent benchmarking 2026-07-02 15:24:11 -06:00
justfile openprm capture logic 2026-06-28 17:55:58 -06:00
LICENSE Phase 0: monorepo skeleton 2026-06-23 19:24:50 -06:00
pubspec.lock server url config 2026-06-25 01:17:28 -06:00
pubspec.yaml server url config 2026-06-25 01:17:28 -06:00
README.md docs: serve homefirst.dev from whiskey instead of Codeberg Pages 2026-08-02 11:06:08 -06:00
VERSION Bump version to 2026.7 2026-07-13 17:35:24 -06:00

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.