Skip to main content

Installation

Installation von Mealie.io mit derPostgreSQL

PostgreSQl

Docker-compose.Compose.yaml im Überblick:

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:

Erklärung der wichtigsten Konfigurationen

Hauptanwendung mealie:

  • DasImage: Docker-compose.ymal ist wie folgt aufgebaut:

    Hauptanwendung:
    services:
    → Definiert die Dienste/Container, die gestartet werden sollen.
    mealie: image: ghcr.io/mealie-recipes/mealie:v2.8.0

    Nutzt das Docker-Image vonVerwendet Mealie in Version v2.8.0 aus demder GitHub Container Registry.

  • Container Name: container_name: mealie

    → Setzt den Namen des ContainersContainers.

    auf
  • Restart Policy: mealie.

    restart: always

    → Container wird bei Fehlern oder Neustarts automatisch neu gestartet, wenn er abstürzt oder das System neugestartet wird.gestartet.

  • Ports: ports:9925:9000 - "9925:9000"

    LeitetIntern Portläuft 9000 im ContainerMealie auf Port 99259000, amerreichbar Hostextern um. Du erreichst die App also unterauf http://localhost:9925.

  • Memory Limit: deploy: resources: limits: memory: 1000M

  • BegrenzungBegrenzt desden SpeichersRAM-Verbrauch auf 1000 MB. Das ist (optional, aber sinnvollnützlich auf kleinen Systemen.
    Systemen).

  • volumes:

    Volumes: - mealie-data:/app/data/

     Bindet das Volume mealie-data inswird Container-Dateisystem an den Pfadmit /app/data/. Dasim sichertContainer deine Daten persistentverbunden (überpersistente NeustartsDaten).

    hinweg).
  • environment:
    → Hier werden 

    UmgebungsvariablenEnvironment: gesetzt:

    • ALLOW_SIGNUP: "false"Deaktiviert dieKeine offene Registrierung (nur Admin kann Benutzer anlegen).

    • PUID /, PGID: SetztNutzer-/Gruppen-ID den User/Gruppen-ID, unter der der Container laufen soll. 1000 ist oft der erste Standardnutzer in Linux.

      (Linux)
    • TZ: Zeitzone.

      Zeitzone (z. B. Europe/Berlin)
    • BASE_URL: Setzt die Basis-URL für die App (z. B.für fürsLinks Sendenetc.)

    • von
    • Datenbankkonfiguration Links,(DB_ENGINE, z. B.POSTGRES_*) per E-Mail).PostgreSQL wird verwendet
  • depends_on: → Startet erst, wenn die Datenbank „healthy“ ist


  • Postgres-Datenbankdienst

    • Image: postgres:15

    • Restart Policy: DB_ENGINEalways: Gibt an, welche Datenbank verwendet wird – hier PostgreSQL.

    • DieVolumes: weiteren DB-Variablen (POSTGRES_USER, PASSWORDmealie-pgdata, etc.) sind die Zugangsdaten zur Datenbank – sie müssenwird mit dem Pfad postgres/var/lib/postgresql/data-Service übereinstimmen.verbunden

    • Environment Variablen:

      • Benutzername & Passwort = mealie
    • Healthcheck: → prüft alle 30 Sekunden mit pg_isready, ob DB verfügbar ist

    depends_on:
    postgres:

    Volumes condition:(Persistente 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.
    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
    Speicherorte)
    volumes:
      mealie-data:
      mealie-pgdata:
    
    → Definiert zwei persistente Speicherbereiche:
    • mealie-data für App-Daten

      Speichert die Anwendungsdaten
    • mealie-pgdata für→ Speichert die PostgreSQL-Datenbank



    Möchtest du daraus auch ein PDF generieren oder eine HTML-Version für deine Webseite?