services:
  # uncomment this section and comment out the mysql section to use postgres instead of mysql
  postgres:
    restart: unless-stopped
    image: postgres:14
    hostname: postgres
    volumes:
      - ./semaphore-postgres:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: dsk
      POSTGRES_PASSWORD: dskadmin1234
      POSTGRES_DB: semaphore
  # if you wish to use postgres, comment the mysql service section below 
  #mysql:
  #  restart: unless-stopped
  #  image: mysql:8.0
  #  hostname: mysql
  #  volumes:
  #    - semaphore-mysql:/var/lib/mysql
  #  environment:
  #    MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
  #    MYSQL_DATABASE: semaphore
  #    MYSQL_USER: semaphore
  #    MYSQL_PASSWORD: semaphore
  semaphore:
    restart: unless-stopped
    ports:
      - 3000:3000
    image: semaphoreui/semaphore:latest
    environment:
      SEMAPHORE_SLACK_ACTIVATED: true
      SEMAPHORE_SLACK_WEBHOOK_URL: https://chat.exem.io/hooks/zryyy65p3prhi8cr9pf1iwjode
      SEMAPHORE_DB_USER: dsk
      SEMAPHORE_DB_PASS: dskadmin1234
      SEMAPHORE_DB_HOST: postgres # for postgres, change to: postgres
      SEMAPHORE_DB_PORT: 5432 # change to 5432 for postgres
      SEMAPHORE_DB_DIALECT: postgres # for postgres, change to: postgres
      SEMAPHORE_DB: semaphore
      SEMAPHORE_PLAYBOOK_PATH: /tmp/semaphore/
      SEMAPHORE_ADMIN_PASSWORD: dskadmin1234
      SEMAPHORE_ADMIN_NAME: dsk
      SEMAPHORE_ADMIN_EMAIL: admin@localhost
      SEMAPHORE_ADMIN: dsk
      SEMAPHORE_ACCESS_KEY_ENCRYPTION: thbR3lS7El5pAhJSKhqRHrWnFzMXTlTd29ocB0Y4PmU=
      #SEMAPHORE_LDAP_ACTIVATED: 'no' # if you wish to use ldap, set to: 'yes' 
      #SEMAPHORE_LDAP_HOST: 10.10.43.42
      #SEMAPHORE_LDAP_PORT: '636'
      #SEMAPHORE_LDAP_NEEDTLS: 'yes'
      #SEMAPHORE_LDAP_DN_BIND: 'uid=bind_user,cn=users,cn=accounts,dc=local,dc=shiftsystems,dc=net'
      #SEMAPHORE_LDAP_PASSWORD: 'ldap_bind_account_password'
      #SEMAPHORE_LDAP_DN_SEARCH: 'dc=ldap,dc=exemdev,dc=nas'
      #SEMAPHORE_LDAP_SEARCH_FILTER: "(\u0026(uid=%s)(memberOf=cn=ipausers,cn=groups,cn=accounts,dc=local,dc=example,dc=com))"
    depends_on:
      - postgres # for postgres, change to: postgres
volumes:
  semaphore-mysql: # to use postgres, switch to: semaphore-postgres
