Installation

Install Yuvomi your way.

Get your self-hosted family planner running in a few minutes. No programming experience required — Docker, Podman, or a one-click app store.

~10 minutes

Before you start

What you need

Yuvomi runs as a Docker or Podman container — you don't need to install Node.js or any other runtime. Just a container engine, and you're good to go. (App-store installs handle even this for you.)

Docker or Podman

Packages the app so you don't need to install anything else. Free for personal use. Podman (RHEL/Fedora/CentOS Stream) works too — rootless and SELinux-ready.

Terminal

A command-line interface to type a few commands. Built into every OS — no extra install needed.

macOS: Terminal · Windows: PowerShell · Linux: bash

System

256 MB RAM minimum. Runs on a Raspberry Pi, NAS, home server, or any desktop machine.

~500 MB disk for the Docker image

Step by step

Choose your platform

Six ways to install. Pick the one that matches your setup — the result is the same private Yuvomi instance.

Recommended for most users. A localized browser wizard (19 languages) detects your container engine (Docker or Podman), configures your .env — including optional reverse proxy/HTTPS, Single Sign-On (OIDC), and automatic backups — starts the container, and creates your admin account. No manual steps. Requires Node.js 18+ on the host.
1

Clone the repository

Open your terminal and clone Yuvomi to a folder of your choice.

git clone https://github.com/ulsklyc/yuvomi.git cd yuvomi
2

Start the installer

Run this command from the repository root. The installer server starts on port 8090.

node tools/installer/install-server.js
3

Open the wizard in your browser

Navigate to the following address. The wizard guides you through configuration, container startup, and admin account creation.

http://localhost:8090
The installer shuts down automatically after setup completes. Your Yuvomi instance keeps running via Docker or Podman.
No Git, no build step — just two files and a single command. Requires only Docker or Podman (Podman: use podman-compose.yml).
1

Download the configuration files

Run these two commands. They download the Docker configuration and the template for your settings.

curl -O https://raw.githubusercontent.com/ulsklyc/yuvomi/main/docker-compose.yml curl -O https://raw.githubusercontent.com/ulsklyc/yuvomi/main/.env.example
2

Create your configuration

Copy the template, then open .env in a text editor and set the two required secrets.

cp .env.example .env

Generate a secure value for each secret by running this twice — paste one result as SESSION_SECRET and one as DB_ENCRYPTION_KEY:

openssl rand -hex 32
Keep a backup of your .env file somewhere safe. If you lose the DB_ENCRYPTION_KEY, your data cannot be recovered.
3

Start the container

Docker downloads the Yuvomi image and starts it in the background. The first download takes a minute.

docker compose up -d
Check the logs with docker compose logs -f. You should see Server läuft auf Port 3000. The container keeps running in the background.
4

Create your admin account

On the first visit, Yuvomi walks you through creating your admin account right in the browser. Prefer the command line? Run the setup wizard instead:

docker compose exec oikos node setup.js
For contributors or anyone who wants to run a custom version. Requires Git. The first build takes a few minutes.
1

Clone the repository

git clone https://github.com/ulsklyc/yuvomi.git cd yuvomi
2

Create your configuration

Copy the template, then open .env in a text editor and set the two required secrets.

cp .env.example .env openssl rand -hex 32 # run twice → SESSION_SECRET + DB_ENCRYPTION_KEY
3

Build and start

The --build flag compiles the Docker image locally. This takes a few minutes the first time.

docker compose up -d --build
4

Create your admin account

On the first visit, Yuvomi walks you through creating your admin account right in the browser. Prefer the command line? Run the setup wizard instead:

docker compose exec oikos node setup.js
No terminal required. Yuvomi is in the TrueNAS SCALE Community Apps Catalog — install it directly from the TrueNAS web UI in a few clicks.
1

Open the Apps Catalog

In your TrueNAS SCALE web UI, go to Apps → Discover Apps and search for Yuvomi.

2

Configure and install

Click Install. Set a strong value for Session Secret (required) and Database Encryption Key (recommended — back it up, it cannot be recovered). Adjust the port and storage paths if needed, then Install.

3

Open the WebUI

Once the app status shows Running, click WebUI in the Apps overview. The first visit walks you through creating your admin account directly in the browser.

No terminal required. Install Yuvomi straight from the Umbrel App Store — everything runs on, and stays on, your Umbrel.
1

Open the App Store

In your Umbrel dashboard, open the App Store and search for Yuvomi.

2

Install with one click

Click Install. Umbrel pulls the image and starts the container for you — no configuration files to edit.

3

Open Yuvomi

Launch Yuvomi from your Umbrel home screen. The first visit walks you through creating your admin account directly in the browser.

No terminal required. Yuvomi ships as a Community Applications template — add it straight from the Unraid Apps tab.
1

Open Community Applications

In Unraid, open the Apps tab (the Community Applications plugin) and search for Yuvomi.

2

Configure the template

Click Install. Set SESSION_SECRET (required) and DB_ENCRYPTION_KEY (recommended — back it up). Adjust the WebUI port and the appdata path if needed.

3

Apply and open

Click Apply. Once the container is running, click the Yuvomi icon → WebUI. The first visit walks you through creating your admin account.

You're all set

Open your browser and navigate to:

http://localhost:3000

Log in with the admin credentials you just created. You can add more family members from the Settings page.

Configuration

Required settings

Two variables in your .env file are mandatory. Everything else is optional.

SESSION_SECRET
Session Secret Required
Signs and verifies login cookies. Use openssl rand -hex 32 to generate a secure value.
DB_ENCRYPTION_KEY
Database Key Required
Encrypts your entire database with AES-256. Generate with openssl rand -hex 32. Back this up — without it, data is unrecoverable.

Optional

Go further

Once Yuvomi is running, you can set up these extras. All are configured in your .env file.

HTTPS & network access

Reach Yuvomi from other devices or the internet — set up Nginx as a reverse proxy with a free Let's Encrypt certificate. Guide →

Weather widget

Show local weather on the dashboard via Open-Meteo — no API key. Set WEATHER_LAT and WEATHER_LON to your coordinates.

Calendar & contact sync

Two-way sync with Google Calendar (OAuth) and multi-account CalDAV/CardDAV (iCloud, Nextcloud, Radicale). Apple Reminders can mirror read-only into Tasks or Shopping. Guide →

SSO / OpenID Connect

Single sign-on via any OIDC provider (Authentik, Keycloak, Google, Microsoft Entra). Set the four OIDC_* vars and a "Sign in with SSO" button appears automatically. Guide →

Automated backups

Enable scheduled backups via BACKUP_ENABLED=true — daily at 2 AM, 7 copies kept. Manage and restore in Settings → Backup. Guide →

Updates

Pull the latest image and restart: docker compose pull && docker compose up -d. Your data persists across updates.

Troubleshooting

Something not working?

Most issues have a simple fix. If you're still stuck, open an issue on GitHub.

Port 3000 is already in use

Another application is using port 3000. Either stop it, or change the port in docker-compose.yml:

lsof -i :3000 # find what's using the port

Or edit docker-compose.yml and change 3000:3000 to e.g. 8080:3000.

Docker: Permission denied

Add your user to the Docker group, then log out and back in:

sudo usermod -aG docker $USER
Container starts but the page is not reachable

Check the container status and logs:

docker compose ps # should show "Up" and "healthy" docker compose logs # look for error messages

Accessing from another device? Check your firewall rules.

Database encryption error

The DB_ENCRYPTION_KEY in your .env is missing or doesn't match the key used when the database was created. On a fresh install you can reset:

docker compose down -v docker compose up -d
docker compose down -v deletes all data. Only use this on a fresh install with no data.
Nginx shows 502 Bad Gateway

Nginx can't reach the container. Check it's running and the port matches:

docker compose ps docker compose logs | grep "Server läuft"

Ensure the proxy_pass port in your Nginx config matches the host port in docker-compose.yml (default: 3000).