services:
  db:
    image: postgres:13
    ports:
      - 5432
    networks:
      - dokploy-network
    environment:
      - POSTGRES_PASSWORD=listmonk
      - POSTGRES_USER=listmonk
      - POSTGRES_DB=listmonk
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U listmonk"]
      interval: 10s
      timeout: 5s
      retries: 6
    volumes:
      - listmonk-data:/var/lib/postgresql/data

  setup:
    image: listmonk/listmonk:v3.0.0
    networks:
      - dokploy-network
    volumes:
      - ../files/config.toml:/listmonk/config.toml
    depends_on:
      - db
    command:
      [
        sh,
        -c,
        "sleep 3 && ./listmonk --install --idempotent --yes --config config.toml",
      ]

  app:
    restart: unless-stopped
    image: listmonk/listmonk:v3.0.0
    environment:
      - TZ=Etc/UTC
    depends_on:
      - db
      - setup
    volumes:
      - ../files/config.toml:/listmonk/config.toml

volumes:
  listmonk-data:
    driver: local
