Die Demo-Instanz redet mit niemandem mehr: Solange DEMO_MODUS gilt, starten die Jobs fuer Zammad, Telegram und den Spiegel gar nicht erst. Sie ist mit erfundenen Daten gefuellt und steht nur fuer Bilder — ein Aufruf nach draussen waere bestenfalls sinnlos. Die Kopfleiste ist breiter als die Inhaltsspalte. Mit dem elften Eintrag passte sie dort nicht mehr, und "Einstellungen" verschwand stillschweigend am rechten Rand. Aufgefallen ist das erst im aufgenommenen Bild. Der Kartentext beschrieb noch den Weg von vor dem Kopplungscode. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
78 lines
2.6 KiB
YAML
78 lines
2.6 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'
|
||
# Damit die Karte "Benachrichtigungen" den Normalfall zeigt und nicht
|
||
# den Hinweis, dass nichts eingerichtet ist. Das Schluesselpaar erzeugt
|
||
# scripts/screenshots.ts fuer jeden Lauf neu – es steht bewusst nirgends
|
||
# im Verzeichnis.
|
||
VAPID_OEFFENTLICH: ${SCREENSHOT_VAPID_OEFFENTLICH:-}
|
||
VAPID_PRIVAT: ${SCREENSHOT_VAPID_PRIVAT:-}
|
||
VAPID_KONTAKT: mailto:planer@planer.invalid
|
||
# Ein Host, den es nie geben wird: die Oberflaeche zeigt E-Mail als
|
||
# moeglich, hinaus geht trotzdem nichts.
|
||
SMTP_HOST: smtp.planer.invalid
|
||
SMTP_ABSENDER: Planer <planer@planer.invalid>
|
||
# Erfundene Werte, damit die Seite "Integrationen" den eingerichteten
|
||
# Fall zeigt. Nach draussen geht davon nichts: Die Jobs schweigen,
|
||
# solange DEMO_MODUS true ist.
|
||
TELEGRAM_TOKEN: 000000:demo-token-ohne-funktion
|
||
SPIEGEL_GEHEIMNIS: demo-geheimnis-ohne-funktion
|
||
ports:
|
||
- '${SCREENSHOT_APP_PORT:-3200}:3000'
|