Deployn

Yuvomi installieren: Familienplaner mit Docker und Caddy

Yuvomi mit Docker und Caddy installieren, die Module kennenlernen und den Kalender mit Google Kalender, iCloud oder Nextcloud verbinden. Schritt für Schritt.

Yuvomi installieren: Familienplaner mit Docker und Caddy hero image
Inhalt
Getestet mit
Yuvomi 2.89.1Caddy 2.11Docker 29.9Debian 13
Zuletzt geprüft am

Yuvomi ist ein Familienplaner, den du selbst betreibst. Aufgaben, Kalender, Einkaufsliste, Essensplan, Haushaltsbuch und einiges mehr stecken in einer einzigen Web-App, die du auf dem Handy wie eine normale App nutzt. Deine Daten bleiben auf deinem Server, es gibt kein Abo und keinen Anbieter dazwischen.

In dieser Anleitung installiere ich Yuvomi mit Docker auf einem Debian-13-Server und sichere es mit HTTPS über Caddy ab. Dazu kommt, wie du den Kalender mit Google Kalender, iCloud oder einem anderen Kalenderdienst verbindest.

Kurzfassung
  1. Docker installieren und den Ordner ~/yuvomi anlegen.
  2. compose.yaml, Caddyfile und .env erstellen.
  3. Mit sudo docker compose up -d starten und das Admin-Konto auf https://{{domain}} anlegen.
  4. Kalender verbinden: Feed für Google Kalender, ICS-Abo, CalDAV oder Google-Anbindung mit Zugangsdaten aus der Google Cloud.

Was ist Yuvomi?

Viele Haushalte haben für alles eine eigene App: eine für Aufgaben, eine für den Familienkalender, eine für die Einkaufsliste, eine für Rezepte. Yuvomi bündelt das. Du bestimmst selbst, welche Bausteine (Module) sichtbar sind. Was ihr nicht braucht, schaltest du ab und es verschwindet aus dem Menü.

Die Module greifen ineinander. Der Essensplan der nächsten sieben Tage wird mit einem Klick zur Einkaufsliste, erledigte Aufgaben bringen Punkte, die Kinder gegen Belohnungen eintauschen, und ein Beleg hängt gleichzeitig an der Buchung und am Inventargegenstand.

Die Software ist unter MIT-Lizenz veröffentlicht und kostenlos. Sie läuft als ein Container, braucht mindestens 256 MB RAM und speichert alles in einer SQLite-Datei.

Voraussetzungen

Ein Server mit Docker-kompatiblem BetriebssystemIch nutze einen kleinen VPS von Hetzner mit 2 CPU-Kernen und 4 GB RAM. Yuvomi kommt mit deutlich weniger aus.
Ein Benutzer mit sudo-RechtenMit sudo führst du einzelne Befehle als Administrator aus, zum Beispiel die Docker-Installation. Der Benutzer, mit dem du dich per SSH anmeldest, braucht dieses Recht. Hast du bisher nur root, legst du dir mit adduser name und usermod -aG sudo name einen eigenen Benutzer an (name ersetzt du durch den Namen, den du willst).
Eine DomainZum Beispiel {{domain}}. Sie muss mit einem A-Record auf die IP-Adresse deines Servers zeigen.
Offene Ports 80 und 443Caddy holt darüber das Zertifikat und nimmt die Besucher entgegen.

Push-Benachrichtigungen, die Installation als App auf dem Handy und die Anbindung von Google funktionieren nur mit einer Adresse, die mit https:// beginnt.

Docker installieren

Verbinde dich per SSH mit dem Server. Docker kommt aus dem offiziellen Docker-Repository. Speichere zuerst den Schlüssel, mit dem Debian die Pakete prüft:

Terminalbash
sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

Trage danach die Paketquelle ein. Kopiere den ganzen Block, auch die Zeile EOF:

Terminalbash
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

Installiere Docker:

Terminalbash
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Alle Docker-Befehle in dieser Anleitung beginnen mit sudo. Prüfe, ob Docker läuft:

Terminalbash
sudo docker ps

Du siehst eine Tabelle mit den Spalten CONTAINER ID, IMAGE und weiteren, noch ohne Zeilen. Eine ausführliche Erklärung jedes Schritts und die Variante für Ubuntu steht in den Docker-Grundlagen.

Ordner und Dateien anlegen

Lege ein Verzeichnis für Yuvomi an, mit zwei Unterordnern:

Terminalbash
mkdir -p ~/yuvomi/data ~/yuvomi/backups
cd ~/yuvomi
  • data enthält die Datenbank mit allen Terminen, Aufgaben und Konten.
  • backups nimmt die automatischen Sicherungen von Yuvomi auf.

Yuvomi setzt beim Start selbst die Besitzer der beiden Ordner auf die Benutzer-ID 1000, unter der es läuft. Du musst dafür nichts einstellen. Hat dein Benutzer eine andere ID (prüfe das mit id -u), gehören dir die Ordner danach nicht mehr. Das schadet dem Betrieb nicht. Beim Kopieren oder Sichern der Ordner brauchst du dann sudo, wie im Abschnitt Backup.

Die compose.yaml

Die docker-compose.yml des Projekts veröffentlicht Port 3000 direkt ins Netz, also ohne HTTPS. Ich nutze deshalb eine eigene Datei, in der nur Caddy von außen erreichbar ist.

Terminalbash
nano compose.yaml
compose.yamlyaml
services:
    yuvomi:
        image: ghcr.io/ulsklyc/yuvomi:latest
        container_name: yuvomi
        restart: unless-stopped
        env_file:
            - .env
        volumes:
            - ./data:/data
            - ./backups:/backups

    caddy:
        image: caddy:2
        container_name: caddy
        restart: unless-stopped
        ports:
            - "80:80"
            - "443:443"
        volumes:
            - ./Caddyfile:/etc/caddy/Caddyfile
            - caddy_data:/data
            - caddy_config:/config

volumes:
    caddy_data:
    caddy_config:
  • env_file liest alle Einstellungen aus der Datei .env, die du gleich anlegst.
  • ./data:/data und ./backups:/backups verbinden die Ordner auf dem Server mit den Ordnern im Container. Deine Daten überleben so jedes Update.
  • Yuvomi hat keinen ports-Eintrag. Es ist nur über Caddy erreichbar.

Die Caddyfile

Terminalbash
nano Caddyfile
Caddyfile
{{domain}} {
    reverse_proxy yuvomi:3000
}

Caddy holt beim ersten Start ein Zertifikat von Let’s Encrypt und reicht alle Anfragen an Yuvomi weiter. Auf Port 3000 lauscht Yuvomi im Container.

Die .env

Die .env enthält zwei Geheimnisse. Erzeuge zwei zufällige Werte, indem du diesen Befehl zweimal ausführst, und kopiere die Ausgaben:

Terminalbash
openssl rand -hex 32

Lege die Datei an und setze die beiden Werte in die ersten Zeilen ein:

Terminalbash
nano .env
.env
SESSION_SECRET=erster-zufallswert
DB_ENCRYPTION_KEY=zweiter-zufallswert
NODE_ENV=production
BASE_URL=https://{{domain}}
SESSION_SECURE=true
TRUST_PROXY=1
TZ=Europe/Berlin

Beschränke den Zugriff auf die Datei, denn sie enthält Schlüssel:

Terminalbash
chmod 600 .env
Variable Wirkung
SESSION_SECRET Schlüssel für die Anmeldung im Browser.
DB_ENCRYPTION_KEY Schlüssel, mit dem Yuvomi die Datenbank verschlüsselt (AES-256).
NODE_ENV production schaltet den Produktionsbetrieb ein. Ohne die Zeile meldet sich Yuvomi im Log als development.
BASE_URL Die öffentliche Adresse. Yuvomi braucht sie für Links in Mails und für den Kalender-Feed.
SESSION_SECURE Cookies nur über HTTPS senden.
TRUST_PROXY Yuvomi vertraut dem davor liegenden Caddy und sieht so die echte IP-Adresse der Besucher.
TZ Zeitzone des Servers. Sie bestimmt, wie Termine in Kalender-Feeds und synchronisierten Kalendern erscheinen.

Yuvomi starten

Terminalbash
sudo docker compose up -d

Prüfe den Status:

Terminalbash
sudo docker compose ps

Bei caddy und yuvomi muss Up stehen. Ob Caddy das Zertifikat bekommen hat, siehst du im Log:

Terminalbash
sudo docker compose logs caddy | grep "certificate obtained"

Im Log von Yuvomi muss Environment: production stehen:

Terminalbash
sudo docker compose logs yuvomi | tail -n 12

Rufe danach den Gesundheitstest auf:

Terminalbash
curl https://{{domain}}/health
{"status":"ok","timestamp":"2026-11-12T06:49:20.225Z"}

Das Admin-Konto anlegen

Öffne https://{{domain}} im Browser. Beim ersten Aufruf landest du auf der Seite /setup, dort legst du das Administratorkonto an.

  • Benutzername: Damit meldest du dich an. Er lässt sich später nicht mehr ändern.
  • Anzeigename: So erscheinst du im Kalender und in Aufgaben.
  • Passwort: Mindestens 8 Zeichen, besser deutlich länger.

Nach dem Klick auf Konto erstellen bist du angemeldet. Ein kurzer Willkommensdialog erklärt die Grundidee, du kannst ihn mit Überspringen schließen.

Die Oberfläche

Gruppe Module
Planen Kalender, Aufgaben, Belohnungen, Notizen
Haushalt Küche (Mahlzeiten, Rezepte, Einkauf, Vorrat), Haushaltshilfe, Dokumente
Menschen Kontakte, Geburtstage, Gesundheit
Geld Budget

Ganz oben steht die Übersicht: Dort siehst du auf einen Blick, was heute ansteht. Oben rechts legst du mit Neu schnell einen Termin, eine Aufgabe oder einen Einkaufseintrag an.

Drei weitere Module sind zunächst ausgeschaltet: Inventar, Entsorgung (Müllabfuhr) und Schichtplan. Du aktivierst sie unter Einstellungen, Module, Aktive Module. Dort schaltest du auch alles ab, was dein Haushalt nicht braucht.

Was die Module tun

  • Kalender: Gemeinsame Termine mit Monats-, Wochen-, Tages- und Agenda-Ansicht. Jeder Termin kann einer oder mehreren Personen zugewiesen werden.
  • Aufgaben: Eine Aufgabenliste mit Fristen, Unteraufgaben und sich wiederholenden Aufgaben wie “Müll rausbringen”. Du siehst, wer was erledigt hat.
  • Belohnungen: Erledigte Aufgaben bringen Punkte. Mit den Punkten “kaufen” Kinder Belohnungen, die du vorher festlegst.
  • Notizen: Kurze Notizen, auch als Checkliste zum Abhaken.
  • Küche: Ein Wochenplan für Mahlzeiten, eigene Rezepte und eine gemeinsame Einkaufsliste, nach Gängen im Supermarkt sortiert. Ein Klick übernimmt die Zutaten der nächsten Tage in die Einkaufsliste. Der Vorrat merkt sich Mengen und Haltbarkeit.
  • Dokumente: Wichtige Unterlagen der Familie in Ordnern, durchsuchbar.
  • Kontakte und Geburtstage: Adressbuch mit Telefonnummern und eine Liste der Geburtstage mit Erinnerung.
  • Gesundheit: Werte, Medikamente und Vorsorgetermine pro Person. Gesundheitsdaten sind sensibel, die Datenbankverschlüsselung aus der .env ist dafür gedacht.
  • Budget: Einnahmen, Ausgaben, Konten und geteilte Kosten. Yuvomi rechnet aus, wer wem wie viel schuldet.

Familienmitglieder einladen

Unter Einstellungen, Haushalt, Mitglieder verwaltest du die Personen. Neue Mitglieder erhalten einen Einladungslink, der sieben Tage gültig ist. Beim Öffnen wählen sie ihr eigenes Passwort. Für Kinder ohne Handy legst du ein Konto direkt an. Unter Rollen und Rechte bestimmst du pro Rolle, welche Module jemand vollständig nutzen, nur lesen oder gar nicht sehen darf.

Yuvomi als App auf dem Handy

Öffne https://{{domain}} im Browser des Handys. Android bietet nach kurzer Zeit Installieren an. Auf dem iPhone tippst du auf Teilen und dann auf Zum Home-Bildschirm. Die App erscheint danach wie jede andere, ohne App Store. Erinnerungen kommen als Push-Nachricht, auch wenn die App zu ist.

Den Kalender mit anderen Kalendern verbinden

Ziel Weg Was passiert Aufwand
Yuvomi-Termine in Google Kalender sehen Kalender-Feed exportieren Termin in Yuvomi eintragen: erscheint in Google. Umgekehrt nicht. klein
Google-Termine in Yuvomi sehen ICS-Abonnement Termin in Google eintragen: erscheint in Yuvomi. Umgekehrt nicht. klein
Mit Google in beide Richtungen abgleichen Google-Anbindung per OAuth Termin an einer Stelle eintragen: erscheint an beiden. groß
Mit iCloud, Nextcloud oder Radicale abgleichen CalDAV-Konto Termin an einer Stelle eintragen: erscheint an beiden. mittel

Die ersten beiden Wege brauchen keine Zugangsdaten, und du kannst sie kombinieren.

Monatsansicht des Yuvomi-Kalenders mit der Navigation links

Yuvomi-Termine in Google Kalender anzeigen

Das ist der häufigste Wunsch: Die Familientermine sollen im Google Kalender auf dem Handy erscheinen. Yuvomi stellt dafür einen Feed bereit.

  1. Feed in Yuvomi einschalten

    Öffne Einstellungen, Module, Kalender und scrolle zu Kalender-Feed exportieren. Schalte den Schalter ein. Darunter erscheint die Feed-Adresse:

    Feed-Adresse
    https://{{domain}}/feed/calendar/GEHEIMER-TEXT.ics

    Mit Adresse kopieren legst du sie in die Zwischenablage.

  2. Feed in Google Kalender abonnieren

    Öffne calendar.google.com am Computer. Die Option gibt es in der Handy-App nicht. Klicke links neben Weitere Kalender auf das Plus und wähle Per URL. Füge die Adresse ein und bestätige mit Kalender hinzufügen.

  3. Auf dem Handy erscheint er von selbst

    Ein per URL hinzugefügter Kalender ist mit deinem Google-Konto verknüpft. In der Google-Kalender-App erscheint er unter Weitere Kalender, sobald du ihn dort einschaltest.

  • Der Feed ist schreibgeschützt. Termine legst du weiter in Yuvomi an und änderst sie dort.
  • Google aktualisiert abonnierte Kalender nur alle paar Stunden. Ein neuer Termin erscheint also verzögert. Das liegt an Google, nicht an Yuvomi.
  • Wer die Adresse kennt, sieht alle deine sichtbaren Termine. Gib sie nicht weiter. Mit Neuen Link erzeugen machst du die alte Adresse ungültig.
  • Dieselbe Adresse funktioniert in Apple Kalender, Thunderbird und jeder anderen App mit ICS-Unterstützung. Der Schalter Zugewiesene Personen im Titel anzeigen hängt an jeden Termin die Namen an, zum Beispiel Poolparty (Mama, Papa).
  • Den Geburtstagskalender exportierst du über einen eigenen Schalter und eine eigene Adresse.

Google-Termine in Yuvomi lesen

Der umgekehrte Weg: Dein Google-Kalender soll in Yuvomi erscheinen. Google gibt dafür eine geheime Internetadresse (iCal-Adresse) heraus, hinter der der Kalender als Textdatei liegt. Bei Google musst du nichts einrichten.

  1. Geheime Adresse bei Google holen

    Öffne calendar.google.com am Computer. Fahre in der linken Spalte über den gewünschten Kalender, klicke auf die drei Punkte und dann auf Einstellungen und Freigabe. Im Bereich Kalender integrieren kopierst du die Geheime Adresse im iCal-Format.

  2. In Yuvomi abonnieren

    Öffne Einstellungen, Module, Kalender und den Bereich ICS-Abonnements. Füge die Adresse ein und speichere. Alternativ importierst du eine heruntergeladene .ics-Datei einmalig.

Auch hier fließen die Termine nur in eine Richtung. Neue Termine legst du bei Google an, und Yuvomi liest sie regelmäßig ein. Die Adresse muss mit https:// beginnen und aus dem Internet erreichbar sein. Adressen in deinem Heimnetz blockiert Yuvomi aus Sicherheitsgründen, solange du das nicht in der .env mit ICS_SUBSCRIPTION_ALLOW_PRIVATE_NETWORK=true erlaubst.

Mit Google in beide Richtungen abgleichen

Wenn Termine, die du in Yuvomi anlegst, in deinem Google-Kalender landen sollen und umgekehrt, brauchst du die Google-Anbindung. Dafür muss Yuvomi bei Google als eigene Anwendung registriert sein, damit du ihm den Zugriff auf dein Konto erlauben kannst, ohne ihm dein Passwort zu geben (OAuth).

Yuvomi zeigt dir unter Einstellungen, Module, Kalender-Synchronisation im Bereich Weitere Anbieter bei Google Calendar genau, was fehlt: die drei Variablen GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET und GOOGLE_REDIRECT_URI. Dazu kommen die Schritte und die Weiterleitungs-URI zum Kopieren.

Einstellungen mit der Google-Karte: fehlende Variablen, Schritte und Weiterleitungs-URI

  1. Projekt anlegen und Kalender-API aktivieren

    Öffne die Google Cloud Console und lege ein neues Projekt an. Aktiviere dort die Google Calendar API.

  2. Zustimmungsbildschirm einrichten

    Richte den OAuth-Zustimmungsbildschirm ein. Als Nutzertyp wählst du Extern. Solange der Status Test ist, dürfen sich nur Konten verbinden, die du als Testnutzer einträgst. Trage dein Google-Konto dort ein.

  3. OAuth-Client erstellen

    Erstelle einen OAuth-Client vom Typ Webanwendung. Bei den autorisierten Weiterleitungs-URIs trägst du diese Adresse ein, genau so, ohne Schrägstrich am Ende:

    Weiterleitungs-URI
    https://{{domain}}/api/v1/calendar/google/callback

    Google zeigt dir danach Client-ID und Clientschlüssel.

  4. Werte in die .env eintragen

    Öffne die Datei und füge die drei Zeilen hinzu:

    Terminalbash
    nano ~/yuvomi/.env
    .env
    GOOGLE_CLIENT_ID=deine-client-id
    GOOGLE_CLIENT_SECRET=dein-clientschluessel
    GOOGLE_REDIRECT_URI=https://{{domain}}/api/v1/calendar/google/callback

    Die Redirect-URI muss zeichengenau mit der bei Google eingetragenen übereinstimmen.

  5. Yuvomi neu erstellen

    Ein einfacher Neustart liest die .env nicht zuverlässig neu. Erstelle den Container deshalb neu:

    Terminalbash
    cd ~/yuvomi
    sudo docker compose up -d --force-recreate yuvomi
  6. Verbinden

    Öffne wieder Einstellungen, Module, Kalender-Synchronisation. Statt der Anleitung erscheint jetzt die Schaltfläche Mit Google verbinden. Melde dich dafür unter der Domain an, nicht über die IP-Adresse. Wähle danach unter Synchronisierte Kalender aus, welche Google-Kalender Yuvomi abgleicht. Erst mit dem Haken beginnt der Import.

  • Termine, die du in Yuvomi anlegst, gehen nur dann zu Google, wenn du im Terminformular bei Sync-Ziel einen Google-Kalender wählst. Sonst bleibt der Termin lokal.
  • Mit dem Schalter Nur lesen importiert Yuvomi, schreibt aber nichts zurück zu Google.
  • Es lässt sich ein Google-Konto pro Installation verbinden.
  • Erinnerungen werden nicht übertragen. Die stellst du in Yuvomi ein, sie kommen von Yuvomi.

Ohne diesen Aufwand kommst du mit dem Feed aus dem ersten Abschnitt aus, dann nur in eine Richtung.

Mit iCloud, Nextcloud oder Radicale abgleichen

CalDAV ist ein Standard, den iCloud, Nextcloud und viele andere Dienste sprechen. Yuvomi gleicht darüber in beide Richtungen ab und braucht nichts in der .env. Öffne Einstellungen, Module, Kalender-Synchronisation und klicke bei CalDAV Kalender auf CalDAV-Konto hinzufügen.

Du brauchst drei Angaben: die Adresse des CalDAV-Servers, den Benutzernamen und ein Passwort. Bei Apple ist das ein App-spezifisches Passwort, das du unter account.apple.com im Bereich Anmelden und Sicherheit erzeugst. Dein normales Apple-Passwort funktioniert nicht. Als Adresse nutzt du https://caldav.icloud.com. Bei Nextcloud findest du die Adresse in den Kalendereinstellungen unter Kalender-Link kopieren. Mit Verbinden & testen prüft Yuvomi die Zugangsdaten und listet deine Kalender auf. Du wählst aus, welche abgeglichen werden.

Yuvomi gleicht alle 15 Minuten ab. In der .env änderst du das mit SYNC_INTERVAL_MINUTES.

Outlook.com

Für persönliche Microsoft-Konten gibt es nur einen Weg von Yuvomi zu Outlook. Er braucht eine App-Registrierung in einem Microsoft-Entra-Verzeichnis. Das ist aufwendiger als bei Google, deshalb gehe ich hier nicht weiter darauf ein. Einfacher geht es auch hier über den Feed aus dem ersten Abschnitt: Outlook kann ICS-Adressen abonnieren.

Backup

Yuvomi sichert sich selbst: jede Nacht um 2 Uhr (nach der Zeit in TZ) legt es ein Backup in ~/yuvomi/backups ab und behält die letzten sieben. Manuelle Backups und die Wiederherstellung findest du unter Einstellungen, Haushalt, Backup und Wiederherstellung.

Ein Backup auf demselben Server schützt dich nicht, wenn der Server ausfällt. Kopiere deshalb den ganzen Ordner regelmäßig woanders hin:

Terminalbash
cd ~
sudo tar czf yuvomi-backup.tar.gz yuvomi

Die Datei enthält auch deine .env mit allen Schlüsseln. Bewahre sie nicht offen auf.

Yuvomi aktualisieren

Terminalbash
cd ~/yuvomi
sudo docker compose pull
sudo docker compose up -d

Daten und Einstellungen liegen in data und .env, außerhalb des Containers. Nach dem Update prüfst du im Log, dass die Datenbank-Migrationen durchgelaufen sind:

Terminalbash
sudo docker compose logs yuvomi | tail -n 12

Ich nutze das Image mit dem Tag latest. Wer volle Kontrolle über Updates möchte, trägt in der compose.yaml eine feste Version ein, zum Beispiel ghcr.io/ulsklyc/yuvomi:2.89.1.

Wenn etwas nicht klappt

  • Caddy zeigt 502 Bad Gateway: Yuvomi läuft noch nicht oder startet neu. Prüfe sudo docker compose ps und sudo docker compose logs yuvomi. Ein nicht ersetzter Platzhalter oder ein Tippfehler in der .env stoppt den Start.
  • Kein Zertifikat: Prüfe, ob der A-Record der Domain auf den Server zeigt und die Ports 80 und 443 offen sind. Den Grund nennt sudo docker compose logs caddy.
  • Im Log steht Environment: development: In der .env fehlt NODE_ENV=production.
  • Anmeldung klappt nicht: SESSION_SECURE=true verlangt HTTPS. Ruf Yuvomi nur über https://{{domain}} auf, nicht über die IP-Adresse.
  • Google meldet redirect_uri_mismatch: Die Adresse bei Google und der Wert GOOGLE_REDIRECT_URI sind nicht zeichengenau gleich. Achte auf https, Groß- und Kleinschreibung und einen Schrägstrich am Ende.
  • Termine sind um Stunden verschoben: Prüfe die Zeitzone unter Einstellungen, Konto, Darstellung und die Variable TZ.
  • Neue Termine fehlen im Google Kalender: Bei einem abonnierten Feed aktualisiert Google nur alle paar Stunden. Warte ab oder nutze die Google-Anbindung.

Für wen lohnt sich Yuvomi?

Yuvomi passt für Familien und Paare, die Aufgaben, Termine, Einkauf und Haushaltskasse an einem Ort haben wollen und den Server dafür gern selbst betreiben. Der Funktionsumfang ist groß, und du schaltest ab, was du nicht brauchst.

  • Du kümmerst dich selbst um Updates, Backups und den Schlüssel der Datenbank.
  • Der Abgleich mit Google ist aufwendig, weil Google das so vorgibt. Der Feed ist der schnelle Weg.

Fazit

Mit Docker und Caddy läuft Yuvomi in wenigen Minuten hinter HTTPS. Für den Kalender reichen den meisten ein exportierter Feed und, wenn nötig, ein ICS-Abonnement. Wer in beide Richtungen mit Google abgleichen will, richtet einmalig einen OAuth-Client bei Google ein und trägt drei Werte in die .env ein. Mit iCloud und Nextcloud geht es dank CalDAV ohne Umweg über die .env.

FAQ

Häufige Fragen

Ist Yuvomi kostenlos?

Ja. Yuvomi steht unter der MIT-Lizenz und kostet nichts. Für den Betrieb zahlst du nur den Server und deine Domain.

Wie viel Leistung braucht Yuvomi?

Mindestens 256 MB RAM. Das Image ist etwa 500 MB groß und läuft auf amd64 und arm64, zum Beispiel auf einem Raspberry Pi 4 oder 5.

Kann ich Yuvomi in Google Kalender einbinden?

Ja, auf zwei Wegen. Der einfache: In Yuvomi schaltest du unter Einstellungen, Module, Kalender den Kalender-Feed ein und abonnierst die Adresse in Google Kalender per URL. Der Abgleich in beide Richtungen braucht einen OAuth-Client aus der Google Cloud Console.

Warum erscheinen Yuvomi-Termine mit Verzögerung in Google Kalender?

Google aktualisiert abonnierte Kalender nur alle paar Stunden. Das lässt sich nicht beschleunigen. Wer Änderungen sofort braucht, nutzt die Google-Anbindung per OAuth.

Wie lange gilt die Google-Verbindung?

Solange der OAuth-Zustimmungsbildschirm bei Google im Status Test steht, läuft die Verbindung nach sieben Tagen ab und du verbindest Yuvomi neu. Mit dem Status In Produktion entfällt das.

Funktioniert Yuvomi mit iCloud-Kalendern?

Ja, über CalDAV. Du fügst unter Einstellungen, Module, Kalender-Synchronisation ein CalDAV-Konto hinzu, mit der Adresse https://caldav.icloud.com und einem App-spezifischen Passwort von Apple.

Was passiert, wenn ich den Datenbankschlüssel verliere?

Die Datenbank lässt sich dann nicht mehr öffnen, auch nicht aus einem Backup. Sichere den Wert von DB_ENCRYPTION_KEY deshalb in einem Passwortmanager.

Wie aktualisiere ich Yuvomi?

Im Ordner mit der compose.yaml führst du sudo docker compose pull und danach sudo docker compose up -d aus. Daten und Einstellungen bleiben erhalten.