Free · AGPL-3.0 · Docker

Run mybabynotes on your own server.

Every feature — offline logging, realtime household sync, shared timers, handoffs, push, CSV export — on your own hardware. One container on Unraid, a compose file everywhere else, or an add-on that drops it straight into your Home Assistant sidebar. Your baby’s data never leaves the house.

Install in five minutes Read the runbook

React PWA + Laravel API + Reverb websockets · SQLite by default, Postgres supported · v1.5.3 is current — images on GHCR, source tarball checksummed

Install

Pick your box.

Unraid

Recommended

All-in-one image: one container serves the app, API and websockets on one port. First boot generates every secret into /data/.env — nothing to configure on the LAN.

ghcr.io/straplocked/mybabynotes-aio:v1.5.3
# /data → /mnt/user/appdata/baby-log · port 3500

The Community Apps listing hasn’t been submitted yet, so install the template by hand: copy ca-template.xml to /boot/config/plugins/dockerMan/templates-user/ on your flash share, then Docker → Add Container and pick it from the Template dropdown.

Prefer separate containers? The script install (needs Docker Compose Manager) installs and updates, pinned to the latest checksummed release:
curl -fsSL https://raw.githubusercontent.com/straplocked/mybabynotes/main/deploy/unraid/babylog.sh | sh

Docker Compose

Any Linux box, NAS or VPS with Docker. Three containers — app (nginx + PWA), API, websockets — and only the app port is published.

git clone https://github.com/straplocked/mybabynotes
cd mybabynotes
cp .env.example .env   # fill APP_KEY + REVERB_APP_SECRET
docker compose up -d --build
# → http://localhost:3500

Home Assistant

amd64 · aarch64

An add-on that puts mybabynotes in the HA sidebar via ingress — for the whole household, not just admins — running on the HA box or proxying the instance you already have. Add the repository, then install MyBabyNotes; it pulls a prebuilt image.

https://github.com/straplocked/mybabynotes-hassio-addons
# Settings → Apps → App store → ⋮ → Repositories

Then Start it and turn on Show in sidebar — HA hides the panel for every newly installed ingress add-on until you do. It’s a third-party repository you add yourself, not a listing in HA’s built-in store. How the Home Assistant integration works →

Database: SQLite is the default and needs no configuration — it’s what the appliance ships, and it’s the better-trodden path. If you already run a Postgres and would rather keep this database there too, set DB_CONNECTION=pgsql and the usual DB_* variables on the API container; migrations run on boot exactly as they do under SQLite. There’s no migration path between drivers, so pick before you start logging — or export your CSV first. Details in the runbook →

  1. 1

    Put a proxy in front

    Nginx Proxy Manager, Caddy, Traefik — anything with websockets on. HTTPS is what makes push and home-screen install work on phones.

  2. 2

    Claim the instance

    Registration is invite-only. The first account on a fresh install is yours; everyone after needs a code. Pin a version by changing :latest to :v1.5.3, or roll back with BABYLOG_REF.

  3. 3

    Invite the household

    Up to six adults, each as a parent or a caregiver, and up to ten children. With SMTP configured the code is emailed; without it, the app shows the code and you text it over.

Honest comparison

What you take on when you self-host.

Nothing about tracking changes. The hosted plan sells the ops, not the app.

Self-hosted Hosted
Tracking, sync, timers, handoffs, exportAll of itAll of it
Price$0 — AGPL, forever$5/mo · $50/yr · $60 once for 18 months, per household
BackupsYou copy the data/ folderNightly, off-site
Push notificationsWork once you have HTTPSWork out of the box
Public address for invitesYour domain + reverse proxyIncluded
Emailed invites & password resetOptional — bring SMTPIncluded
UpdatesPull the new tag (or re-run the script)We do it

Hosted prices are placeholders until launch, and every hosted plan starts with a free 14-day trial — no card needed. The $60 pass is a one-time payment that runs 18 months and never auto-renews. Self-hosting stays free either way.

License

AGPL-3.0. Run it, change it, share it. The “mybabynotes” name and the hosted service aren’t part of the license.

Your data, one folder

SQLite plus the generated secrets, all under /data. Back it up however you back up everything else. Export a CSV from the app any time; import Baby Buddy’s. Already run a Postgres? Point the API at it instead — pdo_pgsql ships in the image.

Maintained, in daily use

The full API feature suite gates every tagged release — v1.0.0 through v1.5.3 so far — and runs against both database drivers, so Postgres is a supported configuration rather than a best-effort one. Images publish to GHCR with a checksummed source tarball. The docs stay current with the code.

Rather not run a server this month?

Hosted is the same app with the chores done. Move between the two whenever — it’s the same export.

See hosted plans