avicenna/service/docker-compose.deploy.yml

94 lines
3.1 KiB
YAML

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