Home-Ops
ghcr.io/g0browns/home-ops:latest
https://ghcr.io/g0browns/home-ops
bridge
bash
false
https://raw.githubusercontent.com/g0browns/home-ops-unraid/main/icon.svg
http://[IP]:[PORT:8080]
Home Ops is a self-hosted household management system: chores, a shared calendar, recipes and meal planning, groceries, contacts, notes and health records — one private application on hardware you own. No cloud account, no API key, no telemetry.
It is built for a household rather than a company, which shows up in one place above all: members have different levels of trust. Every record carries its own visibility — private, shared with named people, or the whole household — and there is no administrator override on any of it. Every member also owns a colour that follows them into every list.
Modules: Tasks (assignments, categories, priorities, subtasks, recurring chores) · Notes (a shared noticeboard with tags and pinning) · Calendar (month and agenda views, RFC 5545 recurrence, drag to move) · Kitchen (recipes with structured ingredients, import from a web page or a Mealie backup, meal planning) · Shopping (many lists, per-list visibility, generated from the meal plan) · Contacts (vCard import and export) · Health (vitals, medications, lab results, activity).
Everything runs in this single container — FastAPI, nginx and PostgreSQL 16 together under s6-overlay — with one appdata path and one port. The first page you open is a setup wizard; whoever completes it becomes the administrator, and that page stops existing once a user exists.
[b]Before you start:[/b] set POSTGRES_PASSWORD, and leave RUN_MIGRATIONS set to true so the database schema is created on first boot. Add your server's LAN address to APP_HOSTS and set WEB_PORT to the [i]host[/i] port you mapped, or the browser will be refused when it tries to log in.
[b]Appdata:[/b] the container path /data holds the PostgreSQL cluster and the uploaded recipe images together. Point it at a share that lives on the cache pool (not a fuse/shfs path that can move to the array) — PostgreSQL is not happy on /mnt/user. Back up that one directory and you have backed up everything.
https://github.com/g0browns/Home-ops
https://github.com/g0browns/Home-ops/issues
https://raw.githubusercontent.com/g0browns/home-ops-unraid/main/templates/home-ops.xml
https://raw.githubusercontent.com/g0browns/Home-ops/main/README.md
Productivity: HomeAutomation: Tools:Utilities
household family chores tasks calendar recipes meal planning shopping list contacts notes health self-hosted
Set POSTGRES_PASSWORD before the first start — PostgreSQL bakes it into the data directory on first boot and changing it afterwards does not change the user. Put the appdata path on a cache pool rather than a /mnt/user fuse path.
### 0.1.0
- Initial Community Applications release.
2026-08-13
6.1
MIT
8080
/mnt/user/appdata/home-ops
true
localhost
8080
UTC
false
false
INFO
10485760
production
127.0.0.1/32