stammtisch-hersbruck/backend/docker-compose.yaml
Daniel Michelberger 279796111c wip: Der abgebrochene Kurbeler-Umbau, wie er hier liegengeblieben ist
Kein fertiger Stand, sondern ein Zwischenstand: Hier wurde im September 2026
angefangen, die App auf „Kurbeler" umzubenennen — Wortmarke, Icons, brand.ts,
Benachrichtigungen, das Benutzerverzeichnis. Weitergegangen ist es dann im
eigenen Repo `~/Dokumente/Projekte/kurbeler`, das die vollständige Historie
dieses Repos mitgenommen hat.

Committet wird das hier nicht, weil es gebraucht würde, sondern damit es nicht
als Haufen unversionierter Dateien im Arbeitsverzeichnis verrottet. Wer in
zwei Jahren nachsieht, findet so eine Geschichte statt eines Rätsels — und das
Stammtisch-Wappen, das nur hier je existiert hat.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LTw6xVYgjMy9AQtfs1Gdyu
2026-09-11 15:42:33 +02:00

46 lines
2.1 KiB
YAML

services:
pocketbase:
build:
context: .
args:
# Version-Pin. Update: hier bzw. im Dockerfile hochsetzen und committen.
PB_VERSION: ${PB_VERSION:-0.39.11}
restart: unless-stopped
ports:
- "8090:8090"
volumes:
# Persistenz der SQLite-DB inklusive aller Laufzeitdaten, Uploads,
# Mail-Settings und des Superusers. Ohne dieses Mapping ist nach jedem
# Redeploy alles weg — das Schema käme zwar aus pb_migrations zurück,
# die Daten aber nicht.
- ./pb_data:/pb/pb_data
# ACHTUNG: pb_migrations wird bewusst NICHT gemountet. Ein Bind-Mount
# überdeckt das Verzeichnis aus dem Image. Liegt auf dem Host kein
# ausgechecktes Repo daneben, legt Docker ein leeres Verzeichnis an —
# PocketBase findet dann keine einzige Migration und startet mit einer
# Datenbank ohne Collections. Genau das ist bei einem Deployment
# passiert, das nur die compose-Datei kennt.
#
# Die Migrationen kommen deshalb ausschließlich über COPY ins Image
# (siehe Dockerfile). Im Admin-UI erzeugte Migrationen landen damit nur
# im Container und müssen von Hand herausgeholt werden:
# docker compose cp pocketbase:/pb/pb_migrations/<datei> ./pb_migrations/
environment:
# Superuser wird nur beim allerersten Start angelegt (siehe entrypoint.sh)
SUPERUSER_EMAIL: ${SUPERUSER_EMAIL:-}
SUPERUSER_PASSWORD: ${SUPERUSER_PASSWORD:-}
# Adresse des Frontends. Aus ihr entstehen die Links in Mails —
# Einladung und Tageszusammenfassung. NICHT die Adresse von PocketBase:
# Ein Link dorthin führte auf die API statt auf die Seite. Fehlt die
# Variable, verweigern die Mail-Routen den Dienst, statt tote Links zu
# verschicken.
APP_URL: ${APP_URL:-}
# Name der Anwendung in Betreff und Mailtext. Nur setzen, wenn eine
# Instanz sich abheben soll ("Kurbeler (Test)").
APP_NAME: ${APP_NAME:-}
healthcheck:
test: ["CMD", "wget", "-qO-", "http://127.0.0.1:8090/api/health"]
interval: 30s
timeout: 5s
retries: 3
start_period: 10s