96043efe46
Passkey-Login wie in ausgaben-next/werte-next: auf der Login-Seite "Mit Passkey anmelden", Verwaltung der eigenen Passkeys unter /einstellungen (Button oben rechts). 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 - Styles als eigene CSS-Klassen in globals.css (kein Tailwind in diesem Projekt), passend zum vorhandenen login-*/app-*-Schema - Tabelle tabletten_passkeys in der DB medizin: app-spezifischer Name, damit sich Apps desselben Stacks nicht gegenseitig Passkeys anzeigen oder loeschen - RP-Konfiguration ueber TABLETTEN_RP_*, da sich die .env auf dem Server mit anderen Apps teilt, die RP_ID/RP_ORIGIN bereits belegen Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
51 lines
1.4 KiB
YAML
51 lines
1.4 KiB
YAML
# docker-compose.yml
|
|
# Multiplatform-Build: linux/amd64 + linux/arm64 (z.B. fuer M1/M2-Mac und x86-Server)
|
|
#
|
|
# Einmaliger Setup:
|
|
# docker buildx create --use --name multi
|
|
#
|
|
# Build & Push (Multi-Arch):
|
|
# docker buildx bake --push
|
|
#
|
|
# Lokaler Start (nur aktuelle Plattform):
|
|
# docker compose up --build
|
|
|
|
services:
|
|
app:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
args:
|
|
BUILD_DATE: "$(date +%d.%m.%Y)"
|
|
platforms:
|
|
- linux/amd64
|
|
- linux/arm64
|
|
image: docker.citysensor.de/tabletten_next:latest
|
|
restart: unless-stopped
|
|
ports:
|
|
- "3000:3000"
|
|
environment:
|
|
# MySQL
|
|
MYSQL_HOST: ${MYSQL_HOST}
|
|
MYSQL_PORT: ${MYSQL_PORT:-3306}
|
|
MYSQL_USER: ${MYSQL_USER}
|
|
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
|
|
MYSQL_DATABASE: ${MYSQL_DATABASE}
|
|
# E-Mail
|
|
SMTP_HOST: ${SMTP_HOST}
|
|
SMTP_PORT: ${SMTP_PORT:-587}
|
|
SMTP_USER: ${SMTP_USER}
|
|
SMTP_PASS: ${SMTP_PASS}
|
|
MAIL_TO: ${MAIL_TO}
|
|
# App
|
|
VORLAUF: ${VORLAUF:-14}
|
|
CHECK_SECRET: ${CHECK_SECRET}
|
|
AUTH_USERS: ${AUTH_USERS}
|
|
AUTH_SECRET: ${AUTH_SECRET}
|
|
# Passkeys (WebAuthn) — braucht HTTPS oder localhost
|
|
RP_ID: ${TABLETTEN_RP_ID:-localhost}
|
|
RP_ORIGIN: ${TABLETTEN_RP_ORIGIN:-http://localhost:3000}
|
|
RP_NAME: ${TABLETTEN_RP_NAME:-Tabletten-Check}
|
|
env_file:
|
|
- .env.local
|