---

# Sources:
# - https://github.com/semaphoreui/semaphore
# - https://docs.semaphoreui.com/administration-guide/installation#docker

services:
  postgres:
    restart: unless-stopped
    image: postgres:16
    hostname: postgres
    volumes:
      - semaphore-postgres:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: semaphore
      POSTGRES_PASSWORD: semaphore
      POSTGRES_DB: semaphore
  semaphore:
    depends_on:
      - postgres
    restart: unless-stopped
    ports:
      - '3000:3000'
    image: semaphoreui/semaphore:latest
    environment:
      TZ: Europe/Berlin
      SEMAPHORE_DB_USER: semaphore
      SEMAPHORE_DB_PASS: semaphore
      SEMAPHORE_DB_HOST: postgres
      SEMAPHORE_DB_PORT: 5432
      SEMAPHORE_DB_DIALECT: postgres
      SEMAPHORE_DB: semaphore
      SEMAPHORE_PLAYBOOK_PATH: /tmp/semaphore/
      SEMAPHORE_ADMIN_PASSWORD: changeme
      SEMAPHORE_ADMIN_NAME: admin
      SEMAPHORE_ADMIN_EMAIL: admin@localhost
      SEMAPHORE_ADMIN: admin
      SEMAPHORE_ACCESS_KEY_ENCRYPTION:  # generate with `head -c32 /dev/urandom | base64`
    volumes:
      - ./data/etc/semaphore:/etc/semaphore # config.json location
volumes:
  semaphore-postgres:
