# Onyscribe Admin – Admin-Oberfläche + Postgres. Für Coolify (Docker-Compose-Ressource) und lokal. # Pflicht-Env: POSTGRES_PASSWORD, SECRET_KEY # SECRET_KEY erzeugen: python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())" # Backups: Volume `pgdata` (Postgres) sichern – darin liegt ALLES (Tenants, Versionen, verschlüsselte Secrets). # ACHTUNG: SECRET_KEY ebenfalls sichern – ohne ihn sind die Secrets in der DB nicht entschlüsselbar. services: admin: build: context: . # Standard: vendored Core (lokal). Produktion: ADMIN_DOCKERFILE=Dockerfile.fromcore + CORE_IMAGE=/transkript-platform: dockerfile: ${ADMIN_DOCKERFILE:-Dockerfile} args: CORE_IMAGE: ${CORE_IMAGE:-scratch} restart: unless-stopped depends_on: db: condition: service_healthy environment: DATABASE_URL: postgresql+psycopg://onyscribe:${POSTGRES_PASSWORD:?POSTGRES_PASSWORD setzen}@db:5432/onyscribe SECRET_KEY: ${SECRET_KEY:?SECRET_KEY setzen} PORT: "8300" # Login der Admin-Plattform (login.onyva.dev). Mit AUTH_ENABLED=true sind Client + Zugriffsregel Pflicht. AUTH_ENABLED: ${AUTH_ENABLED:-false} OIDC_ISSUER: ${OIDC_ISSUER:-https://login.onyva.dev} OIDC_CLIENT_ID: ${OIDC_CLIENT_ID:-} OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET:-} OIDC_REDIRECT_URI: ${OIDC_REDIRECT_URI:-} OIDC_LOGOUT_REDIRECT_URI: ${OIDC_LOGOUT_REDIRECT_URI:-} APP_COOKIE_SECURE: ${APP_COOKIE_SECURE:-true} ADMIN_ALLOWED_EMAILS: ${ADMIN_ALLOWED_EMAILS:-} ADMIN_REQUIRED_ROLE: ${ADMIN_REQUIRED_ROLE:-} # Deploys: ohne DEPLOY_LIVE=true nur Dry-Run. Token nur setzen, wenn lesende Dry-Run-Aufrufe gewünscht sind. DEPLOY_LIVE: ${DEPLOY_LIVE:-false} # Welche Tenants dürfen LIVE angefasst werden (Mittwald + Login-API)? leer = keiner · demo-admin,x = diese · * = alle DEPLOY_ALLOWED_TENANTS: ${DEPLOY_ALLOWED_TENANTS:-} MITTWALD_API_TOKEN: ${MITTWALD_API_TOKEN:-} # Core-CI meldet neue Images hierher (POST /api/core/releases, Bearer-Token) CORE_RELEASE_TOKEN: ${CORE_RELEASE_TOKEN:-} # OIDC-Clients automatisch verwalten (Developer-API von login.onyva.dev). Key = Admin-Passwort-Äquivalent! ONYVA_LOGIN_API_KEY: ${ONYVA_LOGIN_API_KEY:-} OIDC_SYNC_LIVE: ${OIDC_SYNC_LIVE:-false} # true erlaubt Schreiben im Login-System (auch ohne DEPLOY_LIVE) # Optional statt Eintrag unter Einstellungen → Geteilte Secrets CORTECS_API_KEY: ${CORTECS_API_KEY:-} expose: - "8300" # Coolify: Domain auf Service „admin“ legen, Port 8300 (https://:8300). Lokal veröffentlicht docker-compose.override.yml den Port. db: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_USER: onyscribe POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?POSTGRES_PASSWORD setzen} POSTGRES_DB: onyscribe volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U onyscribe -d onyscribe"] interval: 5s timeout: 5s retries: 10 volumes: pgdata: