Zum Inhalt springen

Distribution & Pull-Token

TeamVis wird als Multi-Tenant-Container-Image in der zfx-Gitea-Registry ausgeliefert. Du brauchst keinen Build, kein Repo-Klon, keine Rebuild-Pipeline — pulle das Image, setze deine .env, starte.

Image-Adresse

git.zoesch.de/zfx-services/teamvis:<version>
git.zoesch.de/zfx-services/teamvis:latest

Verfügbar für linux/amd64 und linux/arm64 (Apple Silicon, Raspberry Pi 5, Hetzner CAX, AWS Graviton).

Pull-Token erhalten

Pro Kunde generieren wir einen Read-Only-Token, der ausschließlich zum Pullen aus der Registry berechtigt — kein Zugriff auf den Source-Code, keine Push-Rechte.

Du erhältst:

  • Username (z. B. kunde-musterstadt-pull)
  • Token (32-Zeichen-String, beginnend mit gtea_…)
  • Login-Befehl zum Kopieren

Bei Vertragsende oder Token-Verlust wird der Token serverseitig widerrufen — der Pull schlägt sofort mit 401 fehl.

Login + Pull

Terminal-Fenster
# Einmalig auf jeder Maschine, die das Image braucht:
docker login git.zoesch.de -u <dein-username> -p <dein-token>
# Image holen:
docker pull git.zoesch.de/zfx-services/teamvis:latest

Der Login speichert die Credentials unter ~/.docker/config.json. Bei Headless-Servern reicht das einmal pro Maschine.

docker-compose.yml für ein Deployment

services:
app:
image: git.zoesch.de/zfx-services/teamvis:latest
container_name: teamvis
restart: unless-stopped
env_file: .env
ports:
- "127.0.0.1:3000:3000"

Die zugehörige .env:

# Supabase (eigenes Projekt — siehe Installation)
SUPABASE_URL=https://<dein-projekt>.supabase.co
SUPABASE_ANON_KEY=eyJhbGc…
SUPABASE_SERVICE_ROLE_KEY=eyJhbGc…
# Session (≥ 32 Zeichen Zufallsstring)
SESSION_SECRET=…
# Site
SITE_URL=https://team.deine-domain.de
# SMTP (optional, für Self-Service-Portal)
SMTP_HOST=mail.deine-domain.de
SMTP_PORT=587
SMTP_USER=noreply@deine-domain.de
SMTP_PASS=…
SMTP_FROM_EMAIL=noreply@deine-domain.de
SMTP_FROM_NAME=TeamVis

docker compose up -d reicht — kein Build, kein npm install. Image läuft.

Updates ziehen

Terminal-Fenster
docker compose pull
docker compose up -d --force-recreate

Bei größeren Versionssprüngen (Major-Updates): vorher die Migration-Notes prüfen — manche Releases verlangen DB-Migrations vor dem Container-Start.

Token rotieren

Falls dein Token kompromittiert wird:

  1. Sofort melden an hallo@zfx.services
  2. Wir widerrufen den alten Token
  3. Du erhältst einen neuen
  4. docker logout git.zoesch.de + neuen docker login

Stolperfallen

  • unauthorized: authentication required beim Pull → Token abgelaufen oder widerrufen. Neuen anfordern
  • Token im Klartext im Repo / Skripten — niemals einchecken. Nutze ~/.docker/config.json (von docker login) oder Secret-Stores (Docker Swarm Secrets, K8s Secrets, Hashicorp Vault)
  • CI/CD eines Kunden, das aus zfx-Registry pullen will — eigenes Service-Account-Token, separat vom interaktiven Login
  • Image-Größe: ~280 MB komprimiert (Next.js standalone + node-Runtime). Sollte für die meisten VPS unkritisch sein