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.
  • Einen SMTP-Zugang, damit Aktivierungs- und Passwort-Mails verschickt werden können.

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. Die wichtigsten Einstellungen stehen im nächsten Abschnitt.

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

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. Sie wird für Links in Mails und beim Teilen verwendet.
SMTP_*, MAIL_FROMZugangsdaten und Absender für Aktivierungs- und Passwort-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.