services: semaphore: image: semaphoreui/semaphore:latest container_name: semaphore restart: unless-stopped ports: - "4011:3000" environment: SEMAPHORE_SCHEDULE_TIMEZONE: "Africa/Johannesburg" SEMAPHORE_DB_USER: "${SEMAPHORE_DB_USER}" SEMAPHORE_DB_PASS: "${SEMAPHORE_DB_PASSWORD}" SEMAPHORE_DB_HOST: "${SEMAPHORE_DB_HOST}" SEMAPHORE_DB_PORT: "5432" SEMAPHORE_DB_DIALECT: "postgres" SEMAPHORE_DB: "${SEMAPHORE_DB_NAME}" SEMAPHORE_ADMIN: "${SEMAPHORE_ADMIN_USERNAME}" SEMAPHORE_ADMIN_PASSWORD: "${SEMAPHORE_ADMIN_PASSWORD}" SEMAPHORE_ADMIN_NAME: "${SEMAPHORE_ADMIN_USERNAME}" SEMAPHORE_ADMIN_EMAIL: "${SEMAPHORE_ADMIN_EMAIL}" SEMAPHORE_ACCESS_KEY_ENCRYPTION: "${SEMAPHORE_ACCESS_KEY_ENCRYPTION}" volumes: - semaphore-tmp:/tmp/semaphore - semaphore-ssh:/home/semaphore/.ssh volumes: semaphore-tmp: semaphore-ssh: