services: gwoe-antragspruefer: build: . container_name: gwoe-antragspruefer restart: unless-stopped stop_grace_period: 15m # Laufende LLM-Jobs zu Ende laufen lassen environment: - DASHSCOPE_API_KEY=${DASHSCOPE_API_KEY} - KEYCLOAK_URL=https://sso.toppyr.de - KEYCLOAK_REALM=collaboration - KEYCLOAK_CLIENT_ID=gwoe-antragspruefer - KEYCLOAK_ADMIN_USER=${KEYCLOAK_ADMIN_USER} - KEYCLOAK_ADMIN_PASSWORD=${KEYCLOAK_ADMIN_PASSWORD} # Embedding-Modell-Switch (#123 Phase 1/2) - EMBEDDING_MODEL_WRITE=${EMBEDDING_MODEL_WRITE:-text-embedding-v4} - EMBEDDING_MODEL_READ=${EMBEDDING_MODEL_READ:-text-embedding-v3} # SMTP für E-Mail-Benachrichtigungen (#124) - SMTP_HOST=${SMTP_HOST:-smtp.1blu.de} - SMTP_PORT=${SMTP_PORT:-465} - SMTP_USER=${SMTP_USER} - SMTP_PASSWORD=${SMTP_PASSWORD} - SMTP_FROM_EMAIL=${SMTP_FROM_EMAIL:-noreply@toppyr.de} - SMTP_FROM_NAME=${SMTP_FROM_NAME:-GWÖ-Antragsprüfer} - UNSUBSCRIBE_SECRET=${UNSUBSCRIBE_SECRET} - BASE_URL=${BASE_URL:-https://gwoe.toppyr.de} volumes: - ./data:/app/data - ./reports:/app/reports labels: - "traefik.enable=true" - "traefik.http.routers.gwoe.rule=Host(`gwoe.toppyr.de`)" - "traefik.http.routers.gwoe.entrypoints=websecure" - "traefik.http.routers.gwoe.tls=true" - "traefik.http.routers.gwoe.tls.certresolver=letsencrypt" - "traefik.http.services.gwoe.loadbalancer.server.port=8000" networks: - collaboration_collaboration # Doku-Hosting (#62 Phase 2): mkdocs-Output als statische Site. # URL: https://docs.toppyr.de/gwoe-antragspruefer/ # Update: mkdocs build && scp -r site/* vserver:/opt/gwoe-antragspruefer/docs-site/ gwoe-docs: image: nginx:alpine container_name: gwoe-docs restart: unless-stopped volumes: - ./docs-site:/usr/share/nginx/html/gwoe-antragspruefer:ro labels: - "traefik.enable=true" - "traefik.http.routers.gwoe-docs.rule=Host(`docs.toppyr.de`)" - "traefik.http.routers.gwoe-docs.entrypoints=websecure" - "traefik.http.routers.gwoe-docs.tls=true" - "traefik.http.routers.gwoe-docs.tls.certresolver=letsencrypt" - "traefik.http.services.gwoe-docs.loadbalancer.server.port=80" networks: - collaboration_collaboration networks: collaboration_collaboration: external: true