services: semaphore_db: container_name: semaphore_db image: mysql:8 environment: PUID: ${PUID} PGID: ${PGID} MYSQL_USER: ${SEMAPHORE_DB_USER} MYSQL_PASSWORD: ${SEMAPHORE_DB_PASS} MYSQL_DATABASE: ${SEMAPHORE_DB_NAME} MYSQL_RANDOM_ROOT_PASSWORD: yes volumes: - semaphore_mysql:/var/lib/mysql networks: - semaphore_network restart: unless-stopped semaphore: container_name: semaphore ports: - 3000:3000 image: semaphoreui/semaphore:v2.12.14 environment: PUID: ${PUID} PGID: ${PGID} SEMAPHORE_DB_DIALECT: mysql SEMAPHORE_DB_HOST: ${SEMAPHORE_DB_HOST} SEMAPHORE_DB_NAME: ${SEMAPHORE_DB_NAME} SEMAPHORE_DB_USER: ${SEMAPHORE_DB_USER} SEMAPHORE_DB_PASS: ${SEMAPHORE_DB_PASS} SEMAPHORE_EMAIL_SENDER: ${SEMAPHORE_EMAIL_SENDER} SEMAPHORE_EMAIL_HOST: ${SEMAPHORE_EMAIL_HOST} SEMAPHORE_EMAIL_PORT: ${SEMAPHORE_EMAIL_PORT} SEMAPHORE_EMAIL_USERNAME: ${SEMAPHORE_EMAIL_USERNAME} SEMAPHORE_EMAIL_PASSWORD: ${SEMAPHORE_EMAIL_PASSWORD} SEMAPHORE_EMAIL_SECURE: ${SEMAPHORE_EMAIL_SECURE} SEMAPHORE_OIDC_PROVIDERS: '{ "authentik": { "display_name": "Sign in with Authentik", "provider_url": ${AUTHENTIK_URL}, "client_id": ${AUTHENTIK_CLIENT_ID}, "client_secret": ${AUTHENTIK_CLIENT_SECRET}, "redirect_uri": ${AUTHENTIK_REDIRECT_URI}, "scopes": ["openid", "profile", "email"], "username_claim": "preferred_username", "name_claim": "preferred_username" } }' volumes: - semaphore_data:/var/lib/semaphore - semaphore_config:/etc/semaphore - semaphore_tmp:/tmp/semaphore networks: - semaphore_network restart: unless-stopped networks: semaphore_network: {driver: "bridge"} volumes: semaphore_mysql: semaphore_data: semaphore_config: semaphore_tmp: