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/compose2. Passe die Datei .env an. Ändere mindestens DB_PASSWORD. Die wichtigsten Einstellungen stehen im nächsten Abschnitt.
3. Starte Cookpal.
docker compose up -dDie App ist danach auf dem Port erreichbar, den httpPort festlegt (Standard 3009). Stelle für den öffentlichen Betrieb einen Reverse Proxy mit HTTPS davor.
Wichtige Einstellungen
| Einstellung | Bedeutung |
|---|---|
| tag | Die Version, die gestartet wird. |
| httpPort | Der Port, auf dem die App erreichbar ist (Standard 3009). |
| DB_PASSWORD | Das Passwort der Datenbank. Ändere es. |
| INSTANCE_URL | Die öffentliche Adresse ohne /app. Sie wird für Links in Mails und beim Teilen verwendet. |
| SMTP_*, MAIL_FROM | Zugangsdaten und Absender für Aktivierungs- und Passwort-Mails. |
| LANDING_ENABLED | Zeigt diese Projektseite unter /. Standardmäßig aus, dann öffnet / die App. |
| LEGAL_DIR | Ordner mit den rechtlichen Texten, die in der App angezeigt werden (Standard ./legal). |
| MAX_UPLOAD_SIZE_MB | Die größte Datenmenge pro Upload in Megabyte. |
Rechtliche Texte
In LEGAL_DIR liegen drei Dateien: terms.html, privacy.html und imprint.html. Die App zeigt sie als Nutzungsbedingungen, Datenschutzerklärung und Impressum an.
Eine öffentlich erreichbare Instanz braucht diese Texte in der Regel. Was darin stehen muss, hängt von deinem Land und deinem Betrieb ab.
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 -dEin 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.