version: '3.3' networks: data-hub_net: shared-observability: traefik_public: external: true services: data: image: thedevilisdero/avic-data-connector environment: DATABASE_PORT: ${DATABASE_PORT} DATABASE_HOST: ${DATABASE_HOST} DATABASE_USERNAME: ${DATABASE_USERNAME} DATABASE_PASSWORD: ${DATABASE_PASSWORD} DATABASE_DATABASE: ${DATABASE_DATABASE} DATABASE_URL: ${DATABASE_URL} REDIS_HOST: ${REDIS_HOST} REDIS_PORT: ${REDIS_PORT} STORAGE_PATH: ${STORAGE_PATH} MAIL_FROM: ${MAIL_FROM} SMTP_HOST: ${SMTP_HOST} SMTP_PORT: ${SMTP_PORT} SMTP_USER: ${SMTP_USER} SMTP_PASS: ${SMTP_PASS} DISPO_LIVE_BASE_URL: ${DISPO_LIVE_BASE_URL} DISPO_LIVE_USERNAME: ${DISPO_LIVE_USERNAME} DISPO_LIVE_PASSWORD: ${DISPO_LIVE_PASSWORD} DISPO_LIVE_API_KEY: ${DISPO_LIVE_API_KEY} DYFLEXIS_V0_BASE_URL: ${DYFLEXIS_V0_BASE_URL} DYFLEXIS_V2_BASE_URL: ${DYFLEXIS_V2_BASE_URL} DYFLEXIS_V0_API_KEY: ${DYFLEXIS_V0_API_KEY} DYFLEXIS_V2_API_KEY: ${DYFLEXIS_V2_API_KEY} OTEL_EXPORTER_OTLP_ENDPOINT: ${OTEL_EXPORTER_OTLP_ENDPOINT} OTLP_SERVICE_NAME: "avicenna.data-connector.prod" volumes: - /mnt/cephfs/dashboard/prod/files:/data networks: - data-hub_net - shared-observability - traefik_public deploy: labels: - "traefik.enable=true" - "traefik.swarm.network=traefik_public" - "traefik.http.routers.avic-data-con.rule=(Host(`avicenna.genius.ceo`) && PathPrefix(`/api/`)) || (Host(`avicenna.genius.ceo`) && Path(`/graphql`))" - "traefik.http.routers.avic-data-con.entrypoints=https" - "traefik.http.routers.avic-data-con.tls=true" - "traefik.http.routers.avic-data-con.tls.certresolver=main" - "traefik.http.services.avic-data-con.loadbalancer.server.port=3000" web: image: thedevilisdero/avic-app-dashboard:latest networks: - traefik_public environment: - COLLECTOR_SECRET - OTLP_ENDPOINT - OTLP_SERVICE_NAME - API_BASEURL - GRAPHQL_ENDPOINT - GRAPHQL_WS_ENDPOINT - MS_AUTHENTICATION_CLIENT_ID - MS_AUTHENTICATION_AUTHORITY - MS_AUTHENTICATION_REDIRECT_URI - MS_AUTHENTICATION_POST_LOGOUT_REDIRECT_URI deploy: labels: - "traefik.enable=true" - "traefik.swarm.network=traefik_public" - "traefik.http.routers.avicenna-web.rule=Host(`avicenna.genius.ceo`)" - "traefik.http.routers.avicenna-web.entrypoints=https" - "traefik.http.routers.avicenna-web.tls=true" - "traefik.http.routers.avicenna-web.tls.certresolver=main" - "traefik.http.services.avicenna-web.loadbalancer.server.port=80" db: image: postgres:16.3 environment: POSTGRES_HOST: ${DATABASE_HOST} POSTGRES_PASSWORD: ${DATABASE_PASSWORD} POSTGRES_USER: ${DATABASE_USERNAME} POSTGRES_DB: ${DATABASE_DATABASE} PG_DATA: /var/lib/postgresql/data volumes: - /mnt/cephfs/dashboard/prod/db:/var/lib/postgresql/data networks: - data-hub_net cache: image: valkey/valkey:8.1.2-alpine networks: - data-hub_net