Zum Inhalt springen

Selbst hosten

CookPal selbst hosten

CookPal läuft mit Docker Compose auf deinem eigenen Server. Deine Rezepte, dein Wochenplan und deine Einkaufslisten bleiben bei dir.

Was du brauchst

  • Einen Server oder Rechner mit Docker und Docker Compose.
  • Für den öffentlichen Betrieb eine Domain und einen Reverse Proxy mit HTTPS. Er muss X-Forwarded-For setzen, damit CookPal Anmeldeversuche pro Besucher zählt; Traefik, Caddy und Nginx Proxy Manager tun das von selbst.
  • Optional einen SMTP-Zugang, damit Mails verschickt werden können. Ohne ihn läuft CookPal auch, siehe Erster Start.

Docker Compose startet fünf Container: den Proxy, das Web-Frontend, den API-Server, PostgreSQL und einen Dienst für den Rezeptimport.

Installation

1. Lade das Projekt herunter und wechsle in den Ordner compose.

git clone https://github.com/steve192/opencookbook
cd opencookbook/compose

2. Passe die Datei .env an. Ändere mindestens DB_PASSWORD und setze INSTANCE_URL auf die öffentliche Adresse ohne /app (z. B. https://kochbuch.example.com oder http://<Server>:3009). Die wichtigsten Einstellungen stehen im Abschnitt „Wichtige Einstellungen“.

3. Starte CookPal.

docker compose up -d

Die App ist danach auf dem Port erreichbar, den httpPort festlegt (Standard 3009). Stelle für den öffentlichen Betrieb einen Reverse Proxy mit HTTPS davor.

Ordner compose auf GitHub

Erster Start

Öffne direkt nach dem Start https://<deine Domain>/admin, ohne Domain http://<Server>:3009/admin. Wer zuerst dort ist, wird Administrator, also tu das sofort. Bis dahin bleibt die App geschlossen. Die Administration ist nur auf Englisch.

  • Lege das Administrator-Konto an.
  • Prüfe die Übersicht unter „Instance“: Sie zeigt deine Konfiguration und ob Mailserver, Rezeptimport und Rezeptscan funktionieren.
  • Wähle die Registrierung: „Open“ (jeder kann sich registrieren) oder „Invitation only“ (nur mit Einladung).
  • Lade Leute unter „Invitations“ ein: Du erzeugst einen Link und gibst ihn weiter. Ein Link gilt einmal und läuft nach 1, 7 oder 30 Tagen ab. Wer ihn öffnet, wählt E-Mail-Adresse und Passwort.

Mail ist optional. Mails brauchen SMTP_* und INSTANCE_URL. Ohne sie bleiben offene Registrierungen gesperrt, bis ein Administrator sie unter „Users“ in der Administration aktiviert. Einladungs- und Passwort-Links werden nicht verschickt, sondern in der Administration angezeigt, damit du sie weitergeben kannst.

Wichtige Einstellungen

EinstellungBedeutung
tagDie Version, die gestartet wird.
httpPortDer Port, auf dem die App erreichbar ist (Standard 3009).
DB_PASSWORDDas Passwort der Datenbank. Ändere es.
INSTANCE_URLDie öffentliche Adresse ohne /app. Immer setzen: Einladungs- und Passwort-Links, jede Mail und geteilte Rezepte nutzen sie, und ohne sie werden keine Mails verschickt.
SMTP_*, MAIL_FROMOptional: Zugangsdaten und Absender für Mails. Zusammen mit INSTANCE_URL nötig, sonst verschickt CookPal keine Mails.
LANDING_ENABLEDZeigt diese Projektseite unter /. Standardmäßig aus, dann öffnet / die App.
LEGAL_DIROrdner mit den rechtlichen Texten, die in der App angezeigt werden (Standard ./legal).
MAX_UPLOAD_SIZE_MBDie größte Datenmenge pro Upload in Megabyte.

Alle Einstellungen in der .env

Android-App mit eigenem Server

Die Android-App verbindet sich mit deinem Server, wenn du in den Anmeldeeinstellungen (Zahnrad-Symbol) die Serveradresse einträgst.

Updates

Aktualisiere immer alle Images gemeinsam, denn App und Server einer Version gehören zusammen. Setze bei Bedarf tag auf die neue Version, dann:

docker compose pull && docker compose up -d

Ein Reverse Proxy muss die Cache-Control-Header des Frontends unverändert durchreichen, sonst zeigen Browser nach einem Update teils noch die alte Version.

Backups

Sichere zwei Verzeichnisse: das Datenbankverzeichnis (DATABASE_MOUNT_DIR) und das Bilderverzeichnis (IMAGES_MOUNT_DIR). Stoppe die Container vor dem Kopieren der Datenbank am besten kurz.