gwoe-antragspruefer/docker-compose.dev.yml
Dotty Dotter 238f99023c feat(feedback): separater Gitea-Bot-Account fuer Feedback-Issues
Bisher wurden Issues aus dem Feedback-Widget unter Tobias' Identitaet
angelegt (GITEA_TOKEN ist sein persoenlicher Token). Folge: echte
Tobias-Issues und User-Feedback waren in der Authoren-Spalte nicht
mehr unterscheidbar.

Neuer Gitea-Account 'gwoe-feedback' (Display: Gast-Feedback) bekommt
seinen eigenen Token mit Scope write:issue+write:repository, ist
Collaborator mit write-Perm auf das Repo. Code nimmt diesen Token
bevorzugt; wenn er leer ist, faellt er auf gitea_token zurueck
(Rueckwaerts-Kompat fuer noch-nicht-konfigurierte Umgebungen).

ENV: GITEA_FEEDBACK_TOKEN — in beide Compose-Files reingereicht,
in beide .env-Files eingetragen.
2026-05-10 22:14:41 +02:00

55 lines
2.5 KiB
YAML

# Dev-Compose fuer gwoe-dev.toppyr.de.
# Auto-Deploy via Cron: docker compose -f docker-compose.dev.yml up -d --build
# Datenbank, Wahlprogramme, Reports: separate Volumes (am Server: /opt/gwoe-antragspruefer-dev/{data,reports})
# Mail: bewusst nicht aktiv (kein SMTP-Block)
# Keycloak: eigener Public-Client gwoe-antragspruefer-dev
services:
gwoe-antragspruefer-dev:
build: .
container_name: gwoe-antragspruefer-dev
restart: unless-stopped
stop_grace_period: 15m
environment:
- DASHSCOPE_API_KEY=${DASHSCOPE_API_KEY}
- KEYCLOAK_URL=https://sso.toppyr.de
- KEYCLOAK_REALM=collaboration
- KEYCLOAK_CLIENT_ID=${KEYCLOAK_CLIENT_ID:-gwoe-antragspruefer-dev}
- KEYCLOAK_CLIENT_SECRET=${KEYCLOAK_CLIENT_SECRET}
- KEYCLOAK_ADMIN_USER=${KEYCLOAK_ADMIN_USER}
- KEYCLOAK_ADMIN_PASSWORD=${KEYCLOAK_ADMIN_PASSWORD}
- EMBEDDING_MODEL_WRITE=${EMBEDDING_MODEL_WRITE:-text-embedding-v4}
- EMBEDDING_MODEL_READ=${EMBEDDING_MODEL_READ:-text-embedding-v3}
- BASE_URL=${BASE_URL:-https://gwoe-dev.toppyr.de}
- GITEA_TOKEN=${GITEA_TOKEN}
- GITEA_FEEDBACK_TOKEN=${GITEA_FEEDBACK_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}
- GITEA_FEEDBACK_LABELS=${GITEA_FEEDBACK_LABELS:-feedback,dev}
# ElevenLabs-TTS fuer die Tour-Sprachausgabe (#185, ADR 0014).
- ELEVENLABS_API_KEY=${ELEVENLABS_API_KEY}
- ELEVENLABS_VOICE_ID=${ELEVENLABS_VOICE_ID:-AZnzlk1XvdvUeBnXmlld}
- ELEVENLABS_MODEL_ID=${ELEVENLABS_MODEL_ID:-eleven_multilingual_v2}
- APP_ENV=dev
# Dev-Bypass für Diagnose-Sessions: wenn gesetzt, akzeptiert
# require_auth/require_admin einen Header `X-Debug-Token: <secret>`
# oder Query-Param `?__debug_token=<secret>` und liefert einen
# Admin-Mock-User. NUR auf dev. Default leer = inaktiv.
- DEBUG_AUTH_TOKEN=${DEBUG_AUTH_TOKEN:-}
volumes:
- ./data:/app/data
- ./reports:/app/reports
labels:
- "traefik.enable=true"
- "traefik.http.routers.gwoe-dev.rule=Host(`gwoe-dev.toppyr.de`)"
- "traefik.http.routers.gwoe-dev.entrypoints=websecure"
- "traefik.http.routers.gwoe-dev.tls=true"
- "traefik.http.routers.gwoe-dev.tls.certresolver=letsencrypt"
- "traefik.http.services.gwoe-dev.loadbalancer.server.port=8000"
networks:
- collaboration_collaboration
networks:
collaboration_collaboration:
external: true