Prepare Kalendartool for MPM and disable invites
This commit is contained in:
@@ -1,29 +1,24 @@
|
||||
# Eigenständiger Betrieb außerhalb von MPM:
|
||||
# docker compose -f docker-compose.yml up --build
|
||||
services:
|
||||
db:
|
||||
image: postgres:16-alpine
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile.postgres
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
POSTGRES_USER: calendar
|
||||
POSTGRES_PASSWORD: calendar
|
||||
POSTGRES_USER: calendar_admin
|
||||
POSTGRES_PASSWORD: ${CALENDAR_ADMIN_PASSWORD:?CALENDAR_ADMIN_PASSWORD fehlt}
|
||||
POSTGRES_DB: calendar
|
||||
# KEIN Port-Mapping: Die DB ist nur im internen Compose-Netz
|
||||
# erreichbar (App verbindet ueber den Hostnamen "db"). Fuer
|
||||
# lokalen Zugriff bei Bedarf: docker compose exec db psql ...
|
||||
CALENDAR_DB_PASSWORD: ${CALENDAR_DB_PASSWORD:?CALENDAR_DB_PASSWORD fehlt}
|
||||
volumes:
|
||||
- pgdata:/var/lib/postgresql/data
|
||||
# Legt den least-privilege-App-User an (nur bei initialer
|
||||
# Volume-Initialisierung; siehe Script fuer Bestands-Volumes).
|
||||
- ./docker/postgres/init:/docker-entrypoint-initdb.d:ro
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U calendar -d calendar"]
|
||||
test: ["CMD-SHELL", "pg_isready -U calendar_admin -d calendar"]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
|
||||
# Taeglicher DB-Backup-Service: erstellt um 02:00 Uhr ein
|
||||
# pg_dump-Backup im Named Volume "pgbackups". Aeltere Backups werden
|
||||
# automatisch nach 7 Tagen geloescht (Retention). Die Backups
|
||||
# ueberleben Neustarts des Stacks, da sie im Volume liegen.
|
||||
db-backup:
|
||||
image: prodrigestivill/postgres-backup-local:16-alpine
|
||||
restart: unless-stopped
|
||||
@@ -33,46 +28,39 @@ services:
|
||||
environment:
|
||||
POSTGRES_HOST: db
|
||||
POSTGRES_DB: calendar
|
||||
POSTGRES_USER: calendar
|
||||
POSTGRES_PASSWORD: calendar
|
||||
# Taeglich um 02:00 Uhr (Cron).
|
||||
POSTGRES_USER: calendar_admin
|
||||
POSTGRES_PASSWORD: ${CALENDAR_ADMIN_PASSWORD:?CALENDAR_ADMIN_PASSWORD fehlt}
|
||||
SCHEDULE: "@daily"
|
||||
# Backups nach 7 Tagen automatisch loeschen.
|
||||
BACKUP_KEEP_DAYS: 7
|
||||
# Zusaetzlich die letzten 4 Wochensicherungen behalten.
|
||||
BACKUP_KEEP_WEEKS: 4
|
||||
# Monats-Sicherungen der letzten 3 Monate behalten.
|
||||
BACKUP_KEEP_MONTHS: 3
|
||||
# Kompression aktivieren (platzsparend).
|
||||
POSTGRES_EXTRA_OPTS: "-Z6"
|
||||
TZ: Europe/Berlin
|
||||
volumes:
|
||||
- pgbackups:/backups
|
||||
|
||||
app:
|
||||
build: .
|
||||
build:
|
||||
context: .
|
||||
args:
|
||||
HUB_BASE_PATH: ${HUB_BASE_PATH:-}
|
||||
MPM_AUTH_MODE: "false"
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
DATABASE_URL: postgresql://calendar_app:calendar_app@db:5432/calendar?schema=public
|
||||
# KEIN Fallback-Secret: Ohne gesetztes SESSION_SECRET failt die
|
||||
# App hart beim Start (lib/config.ts), statt JWTs mit einem
|
||||
# oeffentlich bekannten Secret zu signieren.
|
||||
SESSION_SECRET: ${SESSION_SECRET:?SESSION_SECRET muss gesetzt sein (z. B. in .env, siehe .env.example)}
|
||||
APP_URL: ${APP_URL:-http://localhost:3000}
|
||||
MPM_AUTH_MODE: "false"
|
||||
HUB_BASE_PATH: ${HUB_BASE_PATH:-}
|
||||
SESSION_SECRET: ${SESSION_SECRET:?SESSION_SECRET fehlt}
|
||||
CALENDAR_DB_PASSWORD: ${CALENDAR_DB_PASSWORD:?CALENDAR_DB_PASSWORD fehlt}
|
||||
ALLOW_OPEN_REGISTRATION: ${ALLOW_OPEN_REGISTRATION:-true}
|
||||
# Optional: Admin-Account beim ersten Start anlegen (First-Run).
|
||||
# Nicht-destruktiv: Legt den Admin nur an, wenn noch keiner
|
||||
# existiert. Bestehende User werden niemals geloescht.
|
||||
# Wenn NICHT gesetzt, laeuft das Seed-Script ohne Nebeneffekte durch.
|
||||
SEED_ADMIN_EMAIL: ${SEED_ADMIN_EMAIL:-}
|
||||
SEED_ADMIN_PASSWORD: ${SEED_ADMIN_PASSWORD:-}
|
||||
NODE_ENV: production
|
||||
ports:
|
||||
- "3000:3000"
|
||||
- "${APP_PORT:-3000}:3000"
|
||||
|
||||
volumes:
|
||||
pgdata:
|
||||
pgbackups:
|
||||
pgbackups:
|
||||
|
||||
Reference in New Issue
Block a user