version: "3.8" services: frontend: image: atlargeresearch/opendc-web-ui:v2.1 restart: on-failure networks: - backend depends_on: - api environment: NEXT_PUBLIC_AUTH0_DOMAIN: ${OPENDC_AUTH0_DOMAIN} NEXT_PUBLIC_AUTH0_CLIENT_ID: ${OPENDC_AUTH0_CLIENT_ID} NEXT_PUBLIC_AUTH0_AUDIENCE: ${OPENDC_AUTH0_AUDIENCE} NEXT_PUBLIC_SENTRY_DSN: ${OPENDC_FRONTEND_SENTRY_DSN-} api: image: atlargeresearch/opendc-web-api:v2.1 restart: on-failure networks: - backend depends_on: - postgres environment: OPENDC_DB_USERNAME: ${OPENDC_DB_USERNAME:?No database username specified} OPENDC_DB_PASSWORD: ${OPENDC_DB_PASSWORD:?No database password specified} OPENDC_DB_URL: jdbc:postgresql://postgres:5432/opendc OPENDC_AUTH0_DOMAIN: ${OPENDC_AUTH0_DOMAIN:?No Auth0 domain specified} OPENDC_AUTH0_AUDIENCE: ${OPENDC_AUTH0_AUDIENCE:?No Auth0 audience specified} SENTRY_DSN: ${OPENDC_API_SENTRY_DSN-} runner: image: atlargeresearch/opendc:v2.1 restart: on-failure networks: - backend depends_on: - api volumes: - type: bind source: ./traces target: /opt/opendc/traces environment: OPENDC_API_URL: ${OPENDC_API_BASE_URL:-http://web:8080} AUTH0_DOMAIN: ${OPENDC_AUTH0_DOMAIN:?No Auth0 domain specified} AUTH0_AUDIENCE: ${OPENDC_AUTH0_AUDIENCE:?No Auth0 audience specified} AUTH0_CLIENT_ID: ${OPENDC_AUTH0_CLIENT_ID_RUNNER:?No client id for runner} AUTH0_CLIENT_SECRET: ${OPENDC_AUTH0_CLIENT_SECRET_RUNNER:?No client secret for runner} SENTRY_DSN: ${OPENDC_SIMULATOR_SENTRY_DSN-} postgres: image: postgres restart: on-failure environment: POSTGRES_USER: ${OPENDC_DB_USERNAME} POSTGRES_PASSWORD: ${OPENDC_DB_PASSWORD} networks: - backend volumes: - postgres:/var/lib/postgresql/data volumes: postgres: networks: backend: {}