version: "3.9" services: api: image: ${BACKEND_IMAGE:-ghcr.io/your-namespace/word-versioning-backend:latest} environment: ASPNETCORE_ENVIRONMENT: Production ConnectionStrings__Default: Host=${DB_HOST:-db};Port=${DB_PORT:-5432};Database=${DB_NAME:-wordversioning};Username=${DB_USER:-wordversioning};Password=${DB_PASSWORD} MinIO__Endpoint: ${MINIO_ENDPOINT:-minio:39000} MinIO__AccessKey: ${MINIO_ROOT_USER} MinIO__SecretKey: ${MINIO_ROOT_PASSWORD} MinIO__UseSSL: "false" Authentication__Authority: ${KEYCLOAK_AUTHORITY:-https://keycloak:8443/realms/word-versioning} Authentication__ValidAudiences__0: ${AUTH_AUDIENCE_0:-word-addin-officejs} Authentication__ValidAudiences__1: ${AUTH_AUDIENCE_1:-word-versioning-web} Cors__AllowedOrigins__0: ${WEB_URL:-http://localhost:5173} Cors__AllowedOrigins__1: ${ADDIN_URL:-https://localhost:3000} OpenLinks__Secret: ${OPENLINKS_SECRET} OpenLinks__BaseUrl: ${OPENLINKS_BASE_URL} OpenLinks__ExpirySeconds: ${OPENLINKS_EXPIRY_SECONDS:-120} DevHttps__Enabled: "false" ports: - "8080:8080" depends_on: - db - minio - keycloak web: image: ${WEB_IMAGE:-ghcr.io/your-namespace/word-versioning-web:latest} environment: NUXT_PUBLIC_API_BASE_URL: ${NUXT_PUBLIC_API_BASE_URL:-http://api:8080} NUXT_PUBLIC_KEYCLOAK_AUTHORITY: ${NUXT_PUBLIC_KEYCLOAK_AUTHORITY:-https://keycloak:8443/realms/word-versioning} NUXT_PUBLIC_KEYCLOAK_CLIENT_ID: ${NUXT_PUBLIC_KEYCLOAK_CLIENT_ID:-word-versioning-web} NUXT_PUBLIC_OPEN_IN_WORD: ${NUXT_PUBLIC_OPEN_IN_WORD:-on} ports: - "5173:3000" depends_on: - api db: image: postgres:16 environment: POSTGRES_USER: ${DB_USER:-wordversioning} POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_DB: ${DB_NAME:-wordversioning} volumes: - postgres_data:/var/lib/postgresql/data minio: image: quay.io/minio/minio:latest command: server /data --address ":39000" --console-address ":39001" environment: MINIO_ROOT_USER: ${MINIO_ROOT_USER} MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD} volumes: - minio_data:/data ports: - "39000:39000" - "39001:39001" keycloak: image: quay.io/keycloak/keycloak:26.2 command: start-dev --import-realm environment: KC_BOOTSTRAP_ADMIN_USERNAME: ${KC_BOOTSTRAP_ADMIN_USERNAME} KC_BOOTSTRAP_ADMIN_PASSWORD: ${KC_BOOTSTRAP_ADMIN_PASSWORD} KC_HTTPS_CERTIFICATE_FILE: /certs/localhost.crt KC_HTTPS_CERTIFICATE_KEY_FILE: /certs/localhost.key volumes: - ./keycloak/realm-export.json:/opt/keycloak/data/import/realm-export.json:ro - ${HOME:-${USERPROFILE}}/.office-addin-dev-certs:/certs:ro ports: - "8443:8443" volumes: postgres_data: minio_data: