npm run screenshots startet eine Wegwerf-Instanz in einem eigenen Compose-Projekt mit eigener Datenbank, spielt ausschließlich erfundene Daten ein, fährt die Seiten mit Playwright ab und räumt am Ende alles wieder weg. Je Seite entstehen vier Bilder: hell und dunkel, Schreibtisch und Handy. Die Uhr steht fest, damit sich zwischen zwei Läufen nur das ändert, was sich wirklich geändert hat. Der Demo-Seed verweigert den Dienst ohne DEMO_MODUS=true — er würde sonst erfundene Daten in eine echte Datenbank schreiben. Test- und Werkzeugordner sind jetzt aus dem Docker-Kontext ausgenommen. Ein Typfehler in scripts/screenshots.ts hatte den Bau des Abbilds blockiert, obwohl die Datei dort nichts zu suchen hat. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
62 lines
1.7 KiB
YAML
62 lines
1.7 KiB
YAML
# Wegwerf-Instanz nur für "npm run screenshots".
|
|
#
|
|
# Eigenes Compose-Projekt (planer-screenshots), eigenes Volume, eigene Ports.
|
|
# Sie kommt der Entwicklungs- oder Betriebsinstanz damit nicht in die Quere und
|
|
# wird nach dem Lauf samt Volume wieder entfernt.
|
|
services:
|
|
db:
|
|
image: postgres:16-alpine
|
|
restart: 'no'
|
|
environment:
|
|
POSTGRES_USER: demo
|
|
POSTGRES_PASSWORD: demo
|
|
POSTGRES_DB: demo
|
|
TZ: Europe/Berlin
|
|
ports:
|
|
- '${SCREENSHOT_DB_PORT:-5455}:5432'
|
|
healthcheck:
|
|
test: ['CMD-SHELL', 'pg_isready -U demo -d demo']
|
|
interval: 3s
|
|
timeout: 3s
|
|
retries: 20
|
|
start_period: 10s
|
|
|
|
migration:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
target: bauen
|
|
restart: 'no'
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
environment:
|
|
TZ: Europe/Berlin
|
|
DATABASE_URL: postgresql://demo:demo@db:5432/demo?schema=public
|
|
command: node node_modules/prisma/build/index.js migrate deploy
|
|
|
|
app:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
target: betrieb
|
|
restart: 'no'
|
|
depends_on:
|
|
migration:
|
|
condition: service_completed_successfully
|
|
environment:
|
|
NODE_ENV: production
|
|
TZ: Europe/Berlin
|
|
INSTANZ: daheim
|
|
APP_URL: http://127.0.0.1:${SCREENSHOT_APP_PORT:-3200}
|
|
DATABASE_URL: postgresql://demo:demo@db:5432/demo?schema=public
|
|
AUTH_SECRET: nur-fuer-die-screenshot-instanz-nicht-geheim
|
|
AUTH_TRUST_HOST: 'true'
|
|
ANMELDUNG_PASSWORT: 'true'
|
|
WEBAUTHN_RP_ID: 127.0.0.1
|
|
WEBAUTHN_RP_NAME: Planer
|
|
WEBAUTHN_ORIGIN: http://127.0.0.1:${SCREENSHOT_APP_PORT:-3200}
|
|
DEMO_MODUS: 'true'
|
|
ports:
|
|
- '${SCREENSHOT_APP_PORT:-3200}:3000'
|