Railway

Deploy Yuvomi Family Planner

Family calendar, shopping list, meal planning, chores and budget.

Deploy Yuvomi Family Planner

Just deployed

/data

Deploy and Host Yuvomi on Railway

Yuvomi is a self-hosted family planner. Tasks, a shared calendar, shopping lists, meal planning, a household budget, notes, contacts, pantry tracking and chore rotas, all in one app, all on an instance you control. It is built for a household rather than a company, so everything is shared by default and scoped per family member where it matters.

About Hosting Yuvomi

Yuvomi is a single Node application backed by SQLite. There is no separate database server, no cache and no worker process, so hosting it means running one container with persistent storage attached and pointing a domain at it.

That simplicity is the appealing part and also the part that bites. The database, the scheduled backups and any uploaded documents all want to live on disk, and each of them defaults to a different path. Miss one and it silently writes into the container instead, where the next redeploy erases it. This template routes all three onto a single persistent volume, pins the port that the healthcheck probes, and turns on database encryption with a key generated for each deployment, so household health records and finances are not sitting in a plaintext file.

The app also expects to sit behind something that terminates TLS, and needs to be told so, otherwise session cookies and client IP addresses both come out wrong.

Common Use Cases

  • A shared family calendar and task list that syncs two ways with iCloud, Google Calendar or Nextcloud, without handing a household's schedule to a third party.
  • Weekly meal planning with a recipe library, exporting straight into a collaborative shopping list grouped by supermarket aisle.
  • Household budgeting with recurring entries, subscription tracking, loans, split expenses and savings goals, kept private to the people in the house.

Dependencies for Yuvomi Hosting

  • A container runtime that can pull a public image from the GitHub container registry.
  • Persistent storage, since all application state lives in a SQLite file.
  • HTTPS in front of the app, and a way to tell the app it is behind a proxy.

Deployment Dependencies

Implementation Details

This template deploys one service from ghcr.io/ulsklyc/yuvomi:1.86.3 with a single volume mounted at /data, a public domain targeting port 3000, and a healthcheck on /health.

Creating your account. A new deployment has no users at all. Open the deploy URL and it sends you to a setup screen where you create the first admin. That screen closes permanently once an account exists, so create yours before sharing the link. There are no default credentials to look up or rotate. Everyone else joins by invitation from within the app, and there is no open public signup to lock down afterwards.

Set your timezone. The TZ variable ships as UTC. Change it to your own zone, for example Europe/Berlin. It decides due times on reminders synced over CalDAV and events pushed to calendars that report no zone of their own.

Database encryption. The SQLite database is encrypted at rest with AES-256 using a DB_ENCRYPTION_KEY generated uniquely for your deployment. Do not change or delete that variable. If it stops matching, the app refuses to start and logs [DB] Wrong encryption key rather than damaging anything, and restoring the original value brings everything back. If you would rather run unencrypted, remove the variable before the first boot, while the database does not yet exist.

Backups. A scheduled backup runs nightly at 02:00 and keeps the last seven copies under /data/backups, on the volume. The image's own default writes to a path that is not persistent, so this template overrides it. Yuvomi can also upload backups to WebDAV, which is worth configuring since the volume is otherwise your only copy.

Storage paths. Uploaded documents are stored inside the database by default, which keeps them encrypted and inside the nightly backup. If you switch to file storage, uploads land under /data/documents, also on the volume.

Optional integrations, all addable later: the weather widget needs only coordinates and no API key, Google Calendar and Google Drive need an OAuth client you create yourself with a redirect URI matching your final domain, and email for password resets and invitations is configured inside the app.

Known limitations. Drop-in third-party modules load from a path inside the image rather than the volume, so they need re-adding after a redeploy. SQLite on one volume means a single instance, which is ample for a household. The image tag is pinned rather than floating, because upstream sometimes ships several releases in a single day; to upgrade, point the service at a newer tag and redeploy, noting that registry tags drop the leading v from the release name.

Why Deploy Yuvomi on Railway?

Railway handles the parts of this app that are fiddly to self-host properly: persistent storage attached to the container, TLS on a real domain, and a healthcheck that restarts the app if it stops answering. The template arrives with the storage paths already pointed at the volume, the proxy settings already correct, and encryption keys generated for your deployment alone, so the first thing you do is create your account rather than debug why last night's backup is missing.

For a household app that runs every day and holds your calendar, your budget and your health records, having it on managed infrastructure with a persistent volume and automatic restarts is meaningfully less fragile than a spare machine under the stairs, and considerably less work than a VPS you patch yourself.


Template Content

More templates in this category

View Template
Rocky Linux
[Jul'26] Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀

codestorm
36
View Template
Foundry Virtual Tabletop
A Self-Hosted & Modern Roleplaying Platform

Lucas
71
View Template
Letta Code Remote
Run a Letta Code agent 24/7. No inbound ports, just deploy.

Letta
51