2026-03-28 22:30:24 +01:00
|
|
|
services:
|
|
|
|
|
gwoe-antragspruefer:
|
|
|
|
|
build: .
|
|
|
|
|
container_name: gwoe-antragspruefer
|
|
|
|
|
restart: unless-stopped
|
2026-04-10 23:20:23 +02:00
|
|
|
stop_grace_period: 15m # Laufende LLM-Jobs zu Ende laufen lassen
|
2026-03-28 22:30:24 +01:00
|
|
|
environment:
|
|
|
|
|
- DASHSCOPE_API_KEY=${DASHSCOPE_API_KEY}
|
|
|
|
|
- KEYCLOAK_URL=https://sso.toppyr.de
|
|
|
|
|
- KEYCLOAK_REALM=collaboration
|
|
|
|
|
- KEYCLOAK_CLIENT_ID=gwoe-antragspruefer
|
2026-04-25 20:55:57 +02:00
|
|
|
- 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}
|
2026-04-28 01:06:57 +02:00
|
|
|
# Gitea-Anbindung fuer Feedback-Widget (#149-Folge)
|
|
|
|
|
- GITEA_TOKEN=${GITEA_TOKEN}
|
|
|
|
|
- GITEA_API_URL=${GITEA_API_URL:-https://repo.toppyr.de/api/v1}
|
|
|
|
|
- GITEA_REPO_OWNER=${GITEA_REPO_OWNER:-tobias}
|
|
|
|
|
- GITEA_REPO_NAME=${GITEA_REPO_NAME:-gwoe-antragspruefer}
|
2026-03-28 22:30:24 +01:00
|
|
|
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
|
|
|
|
|
|
2026-04-10 09:47:06 +02:00
|
|
|
# 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/
|
2026-04-10 09:42:44 +02:00
|
|
|
gwoe-docs:
|
2026-04-10 09:47:06 +02:00
|
|
|
image: nginx:alpine
|
2026-04-10 09:42:44 +02:00
|
|
|
container_name: gwoe-docs
|
|
|
|
|
restart: unless-stopped
|
2026-04-10 09:45:12 +02:00
|
|
|
volumes:
|
2026-04-10 09:47:06 +02:00
|
|
|
- ./docs-site:/usr/share/nginx/html/gwoe-antragspruefer:ro
|
2026-04-10 09:42:44 +02:00
|
|
|
labels:
|
|
|
|
|
- "traefik.enable=true"
|
2026-04-10 09:47:06 +02:00
|
|
|
- "traefik.http.routers.gwoe-docs.rule=Host(`docs.toppyr.de`)"
|
2026-04-10 09:42:44 +02:00
|
|
|
- "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
|
|
|
|
|
|
2026-03-28 22:30:24 +01:00
|
|
|
networks:
|
|
|
|
|
collaboration_collaboration:
|
|
|
|
|
external: true
|