d3718da1f8
Passkey-Login analog zu werte-next: auf der Login-Seite "Mit Passkey anmelden", Verwaltung der eigenen Passkeys im neuen Tab Einstellungen. Das Passwort bleibt als Alternative bestehen. - lib/webauthn.ts, lib/passkeys.ts sowie API-Routen unter /api/passkey - proxy.ts: /api/passkey/authenticate ohne Session erreichbar - TabLayout: dritter Tab Einstellungen (Index-Tabs statt Route wie werte) - RP-Konfiguration ueber AUSGABEN_RP_*, da sich die .env auf dem Server mit anderen Apps teilt, die RP_ID/RP_ORIGIN bereits belegen - Eigene Tabelle ausgaben_passkeys aus demselben Grund: werte-next nutzt in der gemeinsamen Datenbank RXF bereits die Tabelle passkeys - eslint.config.mjs auf die Flat-Config von eslint-config-next umgestellt Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
47 lines
1.8 KiB
YAML
47 lines
1.8 KiB
YAML
# Docker Compose für Production Server mit Traefik
|
|
services:
|
|
ausgaben-app:
|
|
image: docker.citysensor.de/ausgaben-next:latest
|
|
container_name: ausgaben-next-app
|
|
restart: unless-stopped
|
|
expose:
|
|
- 3000
|
|
environment:
|
|
- NODE_ENV=production
|
|
- DB_HOST=${DB_HOST}
|
|
- DB_USER=${DB_USER}
|
|
- DB_PASS=${DB_PASS}
|
|
- DB_NAME=${DB_NAME}
|
|
- AUTH_USERS=${AUTH_USERS}
|
|
- AUTH_SECRET=${AUTH_SECRET}
|
|
# Passkeys (WebAuthn): Host bzw. volle URL der Anwendung.
|
|
# Achtung: Die .env auf dem Server wird von mehreren Apps im selben Stack
|
|
# geteilt und belegt RP_ID/RP_ORIGIN bereits für werte-next. Deshalb hier
|
|
# die app-eigenen Namen AUSGABEN_RP_* verwenden.
|
|
- RP_ID=${AUSGABEN_RP_ID:-ausgaben.fuerst-stuttgart.de}
|
|
- RP_ORIGIN=${AUSGABEN_RP_ORIGIN:-https://ausgaben.fuerst-stuttgart.de}
|
|
- RP_NAME=${AUSGABEN_RP_NAME:-Ausgaben-Log}
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.ausgaben.entrypoints=http
|
|
- traefik.http.routers.ausgaben.rule=Host(`ausgaben.fuerst-stuttgart.de`)
|
|
- traefik.http.middlewares.ausgaben-https-redirect.redirectscheme.scheme=https
|
|
- traefik.http.routers.ausgaben.middlewares=ausgaben-https-redirect
|
|
- traefik.http.routers.ausgaben-secure.entrypoints=https
|
|
- traefik.http.routers.ausgaben-secure.rule=Host(`ausgaben.fuerst-stuttgart.de`)
|
|
- traefik.http.routers.ausgaben-secure.tls=true
|
|
- traefik.http.routers.ausgaben-secure.tls.certresolver=letsencrypt
|
|
- traefik.http.routers.ausgaben-secure.service=ausgaben
|
|
- traefik.http.services.ausgaben.loadbalancer.server.port=3000
|
|
networks:
|
|
- proxy
|
|
- gitea-internal
|
|
|
|
networks:
|
|
proxy:
|
|
name: dockge_default
|
|
external: true
|
|
gitea-internal:
|
|
name: gitea_gitea-internal
|
|
external: true
|