---
title: "Deploy Yuvomi Family Planner"
description: "Family calendar, shopping list, meal planning, chores and budget."
category: "Other"
url: https://railway.com/deploy/yuvomi-family-planner
---

# Deploy Yuvomi Family Planner

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

**[Deploy Yuvomi Family Planner on Railway](https://railway.com/template/yuvomi-family-planner)**

- **Creator:** Auromations
- **Category:** Other
- **Total deploys:** 2

## Template content

### Yuvomi https://raw.githubusercontent.com/ulsklyc/yuvomi/main/icon.svg

- **Image:** ghcr.io/ulsklyc/yuvomi:1.86.3
- **Health check:** /health
- **Public domain:** Yes

## Documentation

# 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

- Source repository: https://github.com/ulsklyc/yuvomi
- Container image: `ghcr.io/ulsklyc/yuvomi`
- Documentation: https://github.com/ulsklyc/yuvomi#readme
- Releases: https://github.com/ulsklyc/yuvomi/releases
- Licence: MIT

### 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.


## Similar templates

- [Rocky Linux](https://railway.com/deploy/rocky-linux) — [Jul'26] Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀
- [Foundry Virtual Tabletop](https://railway.com/deploy/X5tR6G) — A Self-Hosted & Modern Roleplaying Platform
- [Letta Code Remote](https://railway.com/deploy/letta-code-remote) — Run a Letta Code agent 24/7. No inbound ports, just deploy.

Open this page in a browser: https://railway.com/deploy/yuvomi-family-planner
