2026-03-26 14:29:31 +01:00
2026-03-24 13:46:15 +01:00


Oikos Dashboard



Oikos

Dein Familienplaner. Dein Server. Deine Daten.

Eine selbstgehostete Web-App, die den Alltag deiner Familie organisiert —
vom Einkaufszettel bis zum Kalender, vom Essensplan bis zum Budget.
Ohne Cloud. Ohne Abo. Ohne Tracking.


Node.js Docker SQLite PWA WCAG Lizenz


Warum Oikos? · Funktionen · Screenshots · Installation · FAQ




Warum Open Source & Privacy?

Termine, Einkaufslisten, Finanzen, Kontakte von Kinderärzten, Schulzeiten, Medikamentenpläne — ein Familienplaner speichert die intimsten Details eines Haushalts. Wer wann wo ist. Was eingekauft wird. Wie viel Geld wofür ausgegeben wird. Namen und Daten der Kinder.

Die meisten Familienplaner sind Cloud-Dienste. Deine Daten liegen auf fremden Servern, werden analysiert, monetarisiert, oder sind einem Datenleck ausgesetzt. Du hast keine Kontrolle — und oft nicht einmal Einblick, was mit den Informationen deiner Familie passiert.

Das muss nicht so sein.

Oikos (griech. oíkos) bedeutet „Haus" oder „Haushalt" — der Ursprung des Wortes Ökonomie.
Eine App, die deinen Haushalt organisiert, sollte auch dort bleiben: bei dir zuhause.


Das Problem mit der Cloud

Cloud-Familienplaner

  • Daten liegen auf fremden Servern
  • Geschäftsmodell basiert auf deinen Daten
  • Dienst wird eingestellt? Daten weg.
  • Abo-Kosten, oft pro Familienmitglied
  • Tracking, Analyse, Werbeprofiling
  • Datenschutz der Kinder abhängig vom Anbieter

Oikos (selbstgehostet)

  • Daten bleiben auf deinem Server
  • Kein Tracking. Keine Telemetrie. Nichts.
  • Du hast die volle Kontrolle — dauerhaft
  • Einmal einrichten, kostenlos nutzen
  • Kein Byte verlässt dein Netzwerk
  • DSGVO? Kein Thema — du bist der Betreiber

Warum das für Familien besonders wichtig ist

Ein Familienplaner aggregiert Daten, die einzeln harmlos wirken, zusammen aber ein vollständiges Profil ergeben:

  • Tagesabläufe — Wann sind die Kinder in der Schule? Wann ist niemand zuhause?
  • Gesundheitsdaten — Arzttermine, Allergien in Essensplänen, Medikamenten-Erinnerungen
  • Finanzverhalten — Einkommen, Ausgaben, finanzielle Engpässe
  • Einkaufsgewohnheiten — Was wird gekauft, wie oft, in welchen Mengen?
  • Soziales Netz — Kontakte zu Schulen, Ärzten, Betreuern — mit Adressen und Telefonnummern

Bei kommerziellen Cloud-Diensten fließen diese Daten durch Drittanbieter-Infrastruktur, unterliegen deren AGBs und sind potenziell Gegenstand von Data Breaches.

Open Source bedeutet: Der Code ist einsehbar. Niemand kann versteckte Tracker einbauen. Du kannst jede Zeile prüfen — oder jemanden bitten, es für dich zu tun. Und wenn du Oikos nicht mehr brauchst, löschst du den Container. Ende.




Module

Oikos ist modular aufgebaut — jedes Modul löst ein konkretes Problem im Familienalltag:


Dashboard  ·  Dein Tagesstart auf einen Blick: Wetter, Termine, dringende Aufgaben, heutiges Essen und angepinnte Notizen.

Aufgaben  ·  Erstellen, priorisieren, zuweisen. Mit Teilaufgaben, Wiederholungen, Statusfiltern und Swipe-Gesten auf dem Handy.

Einkauf  ·  Mehrere Listen parallel (REWE, dm, Baumarkt). Automatische Gruppierung nach Kategorien. Die ganze Familie befüllt gemeinsam.

Essensplan  ·  Wochenplan für alle Mahlzeiten. Zutaten erfassen und mit einem Klick auf die Einkaufsliste übernehmen.

Kalender  ·  Vier Ansichten (Monat, Woche, Tag, Agenda), farbcodiert pro Person. Optional mit Google Calendar und Apple iCloud synchronisierbar.

Pinnwand  ·  Farbige Sticky Notes für Erinnerungen, Nachrichten an die Familie oder Ideen. Mit Markdown-Light.

Kontakte  ·  Kinderarzt, Schule, Handwerker, Versicherung — mit Direktanruf, E-Mail und Kartennavigation.

Budget  ·  Einnahmen und Ausgaben tracken, nach Kategorien auswerten, Monate vergleichen. Mit wiederkehrenden Buchungen und CSV-Export.




Screenshots

Light Mode

Dashboard
Dashboard
Wetter, Termine, Aufgaben, Essen
Aufgaben
Aufgaben
Prioritäten, Zuweisung, Filter
Kalender
Kalender
Monatsansicht, Tagesdetails
Einkaufsliste
Einkauf
Mehrere Listen, Kategorien
Essensplan
Essensplan
Wochenplan, Zutaten
 

Dark Mode

Dashboard Dark
Dashboard
Aufgaben Dark
Aufgaben
Kalender Dark
Kalender
Einkaufsliste Dark
Einkauf
Essensplan Dark
Essensplan
 

Dark Mode folgt automatisch deiner Systemeinstellung oder lässt sich manuell umschalten.




Technik

Oikos setzt bewusst auf einen minimalen, wartungsarmen Stack — keine 200 npm-Pakete, kein Build-Step, kein Framework-Lock-in.

Schicht Technologie
Server Node.js + Express.js
Datenbank SQLite + SQLCipher (AES-256-Verschlüsselung at rest)
Frontend Vanilla JS (ES-Module), eigenes CSS — kein React, kein Vue, kein Bundler
Auth Session-basiert, bcrypt (Cost 12), CSRF-Schutz, Rate Limiting
Deployment Docker (ein Container, ein Volume)
PWA Service Worker + Manifest — installierbar, offline-fähig
Accessibility WCAG 2.2 AA — Skip-Links, Touch-Targets, Reduced Motion, aria-Labels
Kalender-Sync Google Calendar API v3 (OAuth) + Apple iCloud CalDAV (optional)
Sicherheitsmaßnahmen im Detail
Maßnahme Details
Verschlüsselte Datenbank SQLCipher (AES-256) — Daten sind auch bei physischem Serverzugriff geschützt
Passwort-Hashing bcrypt mit Cost Factor 12 — kein Klartext, nie
Session-Schutz httpOnly, SameSite=Strict, Secure-Cookies, 7 Tage Ablauf
CSRF-Schutz Double Submit Cookie mit crypto.timingSafeEqual
Rate Limiting 5 Login-Versuche pro Minute, dann 15 Min. Sperre
Input-Validation Zentrale Validierung auf allen Endpoints (Länge, Typ, Whitelist)
SQL-Injection-Schutz Parametrisierte Queries — kein String-Zusammenbau
Security Headers CSP, HSTS, X-Frame-Options via Helmet
Kein offener Zugang Jeder API-Endpoint erfordert Authentifizierung (außer Login)
Keine Telemetrie Kein externer Request, kein Analytics, kein Font-Loading



Schnellstart

Voraussetzungen: Ein Linux-System mit Docker + Docker Compose und Git.
Ein günstiger VPS (Hetzner, Netcup) oder ein Raspberry Pi 4 reichen aus — Oikos braucht minimal 512 MB RAM.


1. Repository klonen

git clone https://github.com/ulsklyc/oikos.git && cd oikos

2. Konfiguration anlegen

cp .env.example .env
nano .env

Mindestens diese zwei Werte setzen (jeweils mit openssl rand -base64 32 generieren):

SESSION_SECRET=dein_zufaelliger_string
DB_ENCRYPTION_KEY=dein_verschluesselungs_key

3. Starten

docker compose up -d --build

Der erste Build dauert 23 Minuten (SQLCipher-Kompilierung). Danach:

docker compose exec oikos node setup.js   # Ersten Admin-Account anlegen

4. Öffnen

http://<deine-server-ip>:3000

Ohne HTTPS-Reverse-Proxy: SESSION_SECURE=false in der .env setzen. Für den Produktionsbetrieb empfehlen wir HTTPS — Einrichtung siehe unten.




Konfiguration

Pflichtfelder

Variable Beschreibung
SESSION_SECRET Zufälliger String (mind. 32 Zeichen) — openssl rand -base64 32
DB_ENCRYPTION_KEY SQLCipher-Schlüssel (AES-256) — leer = keine Verschlüsselung

Optionale Features

Variable Standard Beschreibung
OPENWEATHER_API_KEY API-Key für Wetter-Widget (openweathermap.org, kostenlos)
OPENWEATHER_CITY Stadt für Wettervorhersage (z.B. Berlin)
SESSION_SECURE true Auf false setzen wenn kein HTTPS (nur zum Testen)
PORT 3000 Server-Port im Container
SYNC_INTERVAL_MINUTES 15 Kalender-Sync-Intervall

Alle Optionen mit Erklärungen: .env.example




HTTPS einrichten

Für den dauerhaften Betrieb sollte Oikos hinter einem Reverse Proxy mit SSL laufen.

Nginx Proxy Manager (empfohlen für Einsteiger)
  1. Nginx Proxy Manager installieren
  2. Neuen Proxy Host anlegen: Domain → oikos.deine-domain.de, Port → 3000
  3. SSL-Tab: Let's Encrypt Zertifikat ausstellen (kostenlos, automatisch)
  4. Advanced-Tab: Inhalt von nginx.conf.example einfügen
Nginx manuell
sudo cp nginx.conf.example /etc/nginx/sites-available/oikos
sudo ln -s /etc/nginx/sites-available/oikos /etc/nginx/sites-enabled/
sudo nano /etc/nginx/sites-available/oikos   # Domain anpassen
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d oikos.deine-domain.de
sudo nginx -t && sudo systemctl reload nginx

Danach SESSION_SECURE=false aus der .env entfernen und Container neu starten.




Kalender-Synchronisation

Google Calendar
  1. Google Cloud Console → Neues Projekt → Google Calendar API aktivieren
  2. OAuth 2.0-Client-ID erstellen (Webanwendung), Redirect-URI:
    https://oikos.deine-domain.de/api/v1/calendar/google/callback
    
  3. In .env eintragen:
    GOOGLE_CLIENT_ID=deine-client-id.apps.googleusercontent.com
    GOOGLE_CLIENT_SECRET=dein-client-secret
    GOOGLE_REDIRECT_URI=https://oikos.deine-domain.de/api/v1/calendar/google/callback
    
  4. In Oikos: Einstellungen → Kalender-Synchronisation → Mit Google verbinden

Sync-Verhalten: Bidirektional. Erster Sync: 3 Monate zurück, 12 Monate voraus. Bei Konflikten gewinnt Google, lokale Ergänzungen bleiben erhalten.

Apple Calendar (iCloud)
  1. appleid.apple.com → App-spezifisches Passwort generieren
  2. In .env eintragen:
    APPLE_CALDAV_URL=https://caldav.icloud.com
    APPLE_USERNAME=deine@apple-id.de
    APPLE_APP_SPECIFIC_PASSWORD=xxxx-xxxx-xxxx-xxxx
    
  3. Container neu starten — Sync-Button erscheint in den Einstellungen



Wartung

Updates

cd oikos && git pull && docker compose up -d --build

Datenbank-Migrationen laufen automatisch. Alle Daten im Volume bleiben erhalten.

Backup & Restore

# Backup erstellen
docker run --rm -v oikos_oikos_data:/data -v $(pwd):/backup \
  alpine tar czf /backup/oikos-backup-$(date +%Y%m%d).tar.gz /data

# Backup wiederherstellen
docker compose down
docker run --rm -v oikos_oikos_data:/data -v $(pwd):/backup \
  alpine tar xzf /backup/oikos-backup-YYYYMMDD.tar.gz -C /
docker compose up -d

Familienmitglieder verwalten

Neue Accounts nur durch Admins — keine öffentliche Registrierung (by design).

  • In der App: Einstellungen → Familienmitglieder → Mitglied hinzufügen
  • Per Terminal: docker compose exec oikos node setup.js



Lokale Entwicklung

git clone https://github.com/ulsklyc/oikos.git && cd oikos
npm install
cp .env.example .env    # SESSION_SECRET setzen, DB_ENCRYPTION_KEY leer lassen
npm run dev             # Auto-Reload bei Änderungen
npm test                # 146 Tests, 7 Suiten (In-Memory-SQLite)



FAQ

Brauche ich Docker-Erfahrung? Nein. Die Installation besteht aus wenigen Befehlen, die du kopieren und einfügen kannst.
Läuft Oikos auf einem Raspberry Pi? Ja — Raspberry Pi 4 (ARM64) funktioniert problemlos. Der Build dauert dort ~5 Min, danach läuft die App flüssig.
Ist Oikos auf dem Handy nutzbar? Ja. Oikos ist eine PWA — installierbar auf dem Homescreen, mit Offline-Grundfunktionen. Keine App-Store-Abhängigkeit.
Wie viele Familienmitglieder werden unterstützt? Konzipiert für 26 Personen. Kein technisches Limit, aber das UI ist für kleine Familien und WGs optimiert.
Ist die Kalender-Synchronisation Pflicht? Nein. Der integrierte Kalender funktioniert eigenständig. Google- und Apple-Sync sind optional.
Kann ich das Design anpassen? Ja. Alle Farben, Abstände und Schriften sind als CSS Custom Properties in public/styles/tokens.css definiert — ohne Build-Step änderbar.
Was passiert bei einem Update mit meinen Daten? Daten liegen in einem Docker-Volume und bleiben erhalten. Migrationen laufen automatisch. Vor Updates empfehlen wir ein Backup.



Oikos ist Open Source und wird mit Sorgfalt entwickelt.

Deine Familiendaten gehören dir — nicht einem Cloud-Anbieter.


Feedback, Ideen und Beiträge sind willkommen — Issues · MIT-Lizenz

S
Description
Friborg-maintained Oikos core mirror/branch stack for upstreamable modular home-planning work
Readme 112 MiB
Languages
JavaScript 76.9%
CSS 17.5%
HTML 4.9%
Shell 0.7%