Skip to main content
Installation
Installation von Mealie.io mit der PostgreSQl
Docker-compose.yaml im Überblick:
services:
mealie:
image: ghcr.io/mealie-recipes/mealie:v2.8.0 #
container_name: mealie
restart: always
ports:
- "9925:9000" #
deploy:
resources:
limits:
memory: 1000M #
volumes:
- mealie-data:/app/data/
environment:
# Set Backend ENV Variables Here
ALLOW_SIGNUP: "false"
PUID: 1000
PGID: 1000
TZ: America/Anchorage
BASE_URL: https://mealie.yourdomain.com
# Database Settings
DB_ENGINE: postgres
POSTGRES_USER: mealie
POSTGRES_PASSWORD: mealie
POSTGRES_SERVER: postgres
POSTGRES_PORT: 5432
POSTGRES_DB: mealie
depends_on:
postgres:
condition: service_healthy
postgres:
container_name: postgres
image: postgres:15
restart: always
volumes:
- mealie-pgdata:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: mealie
POSTGRES_USER: mealie
PGUSER: mealie
healthcheck:
test: ["CMD", "pg_isready"]
interval: 30s
timeout: 20s
retries: 3
volumes:
mealie-data:
mealie-pgdata:
Das Docker-compose.ymal ist wie folgt aufgeteilt:aufgebaut:
Hauptanwendung:
services:
→ Definiert die Dienste/Container, die gestartet werden sollen.
Hauptanwendung:
yaml:
mealie: mealie:image: image: ghcr.io/mealie-recipes/mealie:v2.8.0
→ Nutzt das Docker-Image von Mealie in Version v2.8.0 aus dem GitHub Container Registry.
→ Setzt den Namen des Containers auf mealie.
→ Container wird automatisch neu gestartet, wenn er abstürzt oder das System neugestartet wird.
ports: - "9925:9000"
→ Leitet Port 9000 im Container auf Port 9925 am Host um. Du erreichst die App also unter http://localhost:9925.
deploy: resources: limits: memory: 1000M
→ Begrenzung des Speichers auf 1000 MB. Das ist optional, aber sinnvoll auf kleinen Systemen.
yaml:
volumes: volumes:- - mealie-data:/app/data/
→ Bindet das Volume mealie-data ins Container-Dateisystem an den Pfad /app/data/. Das sichert deine Daten persistent (über Neustarts hinweg).
environment:
→ Hier werden Umgebungsvariablen gesetzt:
-
ALLOW_SIGNUP: "false" → Deaktiviert die offene Registrierung (nur Admin kann Benutzer anlegen).
-
PUID / PGID: Setzt den User/Gruppen-ID, unter der der Container laufen soll. 1000 ist oft der erste Standardnutzer in Linux.
-
TZ: Zeitzone.
-
BASE_URL: Setzt die Basis-URL für die App (z. B. fürs Senden von Links, z. B. per E-Mail).
-
DB_ENGINE: Gibt an, welche Datenbank verwendet wird – hier PostgreSQL.
-
Die weiteren DB-Variablen (POSTGRES_USER, PASSWORD, etc.) sind die Zugangsdaten zur Datenbank – sie müssen mit dem postgres-Service übereinstimmen.
depends_on: postgres: condition: service_healthy
→ Mealie wartet, bis die postgres-Datenbank bereit und gesund ist, bevor es selbst startet.
Postgres – Datenbankdienst
postgres: container_name: postgres image: postgres:15 restart: always
→ Nutzt PostgreSQL Version 15, startet sich bei Fehlern neu.
yaml:
volumes: volumes:- - mealie-pgdata:/var/lib/postgresql/data
→ Speichert die Datenbankdaten dauerhaft in mealie-pgdata.
environment: POSTGRES_PASSWORD: mealie POSTGRES_USER: mealie PGUSER: mealie
→ Setzt Benutzername und Passwort für den Datenbankzugang.
healthcheck: test: ["CMD", "pg_isready"] interval: 30s timeout: 20s retries: 3
→ Prüft alle 30 Sekunden, ob die Datenbank bereit ist. Maximal 3 Versuche à 20 Sekunden.
Speicher Ort
volumes: mealie-data: mealie-pgdata:
→ Definiert zwei persistente Speicherbereiche:
Docker-compose.yaml im Überblick:
services:
mealie:
image: ghcr.io/mealie-recipes/mealie:v2.8.0 #
container_name: mealie
restart: always
ports:
- "9925:9000" #
deploy:
resources:
limits:
memory: 1000M #
volumes:
- mealie-data:/app/data/
environment:
# Set Backend ENV Variables Here
ALLOW_SIGNUP: "false"
PUID: 1000
PGID: 1000
TZ: America/Anchorage
BASE_URL: https://mealie.yourdomain.com
# Database Settings
DB_ENGINE: postgres
POSTGRES_USER: mealie
POSTGRES_PASSWORD: mealie
POSTGRES_SERVER: postgres
POSTGRES_PORT: 5432
POSTGRES_DB: mealie
depends_on:
postgres:
condition: service_healthy
postgres:
container_name: postgres
image: postgres:15
restart: always
volumes:
- mealie-pgdata:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: mealie
POSTGRES_USER: mealie
PGUSER: mealie
healthcheck:
test: ["CMD", "pg_isready"]
interval: 30s
timeout: 20s
retries: 3
volumes:
mealie-data:
mealie-pgdata: