78 lines
2.9 KiB
YAML
78 lines
2.9 KiB
YAML
# =====================================================================
|
|
# TeamVis — All-in-One Self-Hosting (Override für den offiziellen
|
|
# Supabase-Stack)
|
|
# =====================================================================
|
|
# Dieses Override legt zwei Dienste ÜBER den unveränderten
|
|
# supabase/docker-Stack (github.com/supabase/supabase → docker/):
|
|
# - teamvis : die App (gleiches Image wie SaaS, alles via Runtime-ENV)
|
|
# - caddy : TLS-Ingress für App- und Supabase-Domain (Auto-HTTPS)
|
|
#
|
|
# Datei NEBEN die supabase/docker/docker-compose.yml legen (gleiches
|
|
# Verzeichnis), dann startet `docker compose up -d` beide zusammen.
|
|
# Service-Namen db/kong/storage stammen aus dem Supabase-Stack.
|
|
#
|
|
# WICHTIG zu SMTP: der Supabase-Stack belegt SMTP_* selbst (GoTrue-Mailer,
|
|
# das TeamVis NICHT nutzt). Damit sich die beiden nicht in die Quere kommen,
|
|
# liest die App ihre SMTP-Werte aus TEAMVIS_SMTP_*-Variablen — NICHT aus den
|
|
# SMTP_*-Werten der Supabase-.env. Deshalb hier KEIN env_file, sondern
|
|
# explizite environment-Map.
|
|
|
|
services:
|
|
teamvis:
|
|
image: git.zoesch.de/zfx-services/teamvis:${TEAMVIS_VERSION:-0.12.0}
|
|
container_name: teamvis-app
|
|
restart: unless-stopped
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
kong:
|
|
condition: service_started
|
|
storage:
|
|
condition: service_started
|
|
environment:
|
|
# Supabase-Anbindung — SUPABASE_PUBLIC_URL muss die ÖFFENTLICHE
|
|
# HTTPS-URL sein (steht in den Foto-URLs der Karten, next/image
|
|
# erlaubt nur https auf /storage/v1/object/public/**).
|
|
SUPABASE_URL: ${SUPABASE_PUBLIC_URL}
|
|
NEXT_PUBLIC_SUPABASE_URL: ${SUPABASE_PUBLIC_URL}
|
|
NEXT_PUBLIC_SUPABASE_ANON_KEY: ${ANON_KEY}
|
|
SUPABASE_SERVICE_ROLE_KEY: ${SERVICE_ROLE_KEY}
|
|
# App-Session (>= 32 Zeichen, pro Instanz EINMALIG).
|
|
SESSION_SECRET: ${SESSION_SECRET}
|
|
# Öffentliche Basis-URL der Karten/QR/vCard.
|
|
NEXT_PUBLIC_SITE_URL: ${SITE_URL}
|
|
# SMTP der App (eigene Variablen, s.o.). Fehlt es, landen
|
|
# Magic-Links nur im Container-Log.
|
|
SMTP_HOST: ${TEAMVIS_SMTP_HOST:-}
|
|
SMTP_PORT: ${TEAMVIS_SMTP_PORT:-587}
|
|
SMTP_SECURE: ${TEAMVIS_SMTP_SECURE:-}
|
|
SMTP_USER: ${TEAMVIS_SMTP_USER:-}
|
|
SMTP_PASS: ${TEAMVIS_SMTP_PASS:-}
|
|
SMTP_FROM_EMAIL: ${TEAMVIS_SMTP_FROM_EMAIL:-noreply@example.com}
|
|
SMTP_FROM_NAME: ${TEAMVIS_SMTP_FROM_NAME:-TeamVis}
|
|
# Optional zusätzliche next/image-Hosts (i.d.R. nicht nötig, da
|
|
# next.config bereits jeden https-Host auf dem public-Storage-Pfad
|
|
# erlaubt).
|
|
SUPABASE_IMAGE_HOSTS: ${SUPABASE_IMAGE_HOSTS:-}
|
|
expose:
|
|
- "3000"
|
|
|
|
caddy:
|
|
image: caddy:2-alpine
|
|
container_name: teamvis-caddy
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- teamvis
|
|
- kong
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
volumes:
|
|
- ./Caddyfile:/etc/caddy/Caddyfile:ro
|
|
- caddy-data:/data
|
|
- caddy-config:/config
|
|
|
|
volumes:
|
|
caddy-data:
|
|
caddy-config:
|