Zum Inhalt springen

Technische Installationsanleitung

Für IT-Dienstleister und Administratoren — nicht für Endkunden gedacht.

Diese Seite richtet sich an IT-Dienstleister und interne Administratoren, die GutachtenOS auf eigener Infrastruktur betreiben. Endkunden finden unter Betrieb & Hosting eine verständliche Übersicht der drei Betriebsmodelle.

Architektur (Kurzüberblick)

Die Anwendung besteht aus zwei Teilen, die Sie getrennt oder gemeinsam auf einem Server betreiben können:

  • Next.js-App — Frontend, Server Actions, API-Routes (Node 22, standalone Docker-Image).
  • Supabase-Stack — PostgreSQL mit RLS, Auth (E-Mail/OTP, optional Entra SSO), Object Storage für Fotos und PDFs.

Empfehlung für Produktion: mindestens 2 vCPU und 8 GB RAM auf dem VPS, wenn App und Supabase auf derselben Maschine laufen. Nur die App allein: ca. 2 vCPU / 2 GB RAM für den Container, plus Puffer für Peaks beim PDF-Export.

Installation — Schritt für Schritt

  1. Schritt 01

    Server vorbereiten

    Linux-VPS mit Docker (Docker Compose, Kubernetes oder Deployment-Plattform Ihrer Wahl). Reverse Proxy mit TLS (Traefik, Caddy, nginx). Firewall: 80/443, SSH nur per Key.

  2. Schritt 02

    Datenbank & Auth (Supabase-Stack)

    Self-hosted Supabase oder kompatibler Stack: PostgreSQL, GoTrue (Auth), PostgREST, Storage. Eigenes Schema gutachtenos anlegen. Auth-Domain und Redirect-URLs auf Ihre App setzen.

  3. Schritt 03

    Migrationen einspielen

    Alle SQL-Dateien aus supabase/migrations/ der Lizenz in numerischer Reihenfolge gegen Ihre Postgres-Instanz ausführen (Schema, RLS, Storage-Buckets, Demo optional weglassen).

  4. Schritt 04

    App deployen

    Next.js als Docker-Image (Dockerfile.build im Repo). Build mit NEXT_PUBLIC_* als Build-Args. Container Port 3000, Health-Check GET /api/health.

  5. Schritt 05

    E-Mail & Cron

    SMTP oder Resend für Auth-Mails und App-Benachrichtigungen. Täglicher Cron: POST /api/cron/appointment-reminders mit Authorization: Bearer CRON_SECRET.

  6. Schritt 06

    Go-Live prüfen

    Registrierung, Tenant anlegen, Test-Akte durchlaufen, PDF-Export, optional Integrationen (DATEV, sevDesk, M365) konfigurieren.

Pflicht-Umgebungsvariablen

VariableZweck
NEXT_PUBLIC_SUPABASE_URLURL Ihrer Supabase-/PostgREST-API
NEXT_PUBLIC_SUPABASE_ANON_KEYÖffentlicher Anon-Key (Client)
NEXT_PUBLIC_SUPABASE_DB_SCHEMAPostgreSQL-Schema, Standard: gutachtenos
SUPABASE_SERVICE_ROLE_KEYService-Role-Key — nur serverseitig, geheim halten
NEXT_PUBLIC_APP_URLÖffentliche App-URL (https://ihre-domain.de)

Optionale Variablen

VariableZweck
RESEND_API_KEYTransaktionale Mails (Portal, Rechnung, Einladungen)
MAIL_FROMAbsender-Adresse für App-Mails
AI_PROVIDERFallback — Cloud: /admin/system (Plattform-Admin)
AZURE_OPENAI_ENDPOINTAzure OpenAI Resource-URL (ohne trailing slash)
AZURE_OPENAI_API_KEYAzure OpenAI API-Key
AZURE_OPENAI_TEXT_DEPLOYMENTDeployment-Name für Text (z. B. gpt-4o-mini)
AZURE_OPENAI_VISION_DEPLOYMENTDeployment für Vision/OCR (optional, sonst Text-Deployment)
AZURE_OPENAI_REGIONAnzeige in KI-Einstellungen, z. B. westeurope
OPENAI_API_KEYNur bei AI_PROVIDER=openai
MISTRAL_API_KEYNur bei AI_PROVIDER=mistral
CRON_SECRETBearer-Token für /api/cron/appointment-reminders

Microsoft-Integrationen (Outlook, SharePoint, Entra SSO) konfigurieren Sie pro Büro in der App — Azure App-Registration mit Redirect auf /api/integrations/microsoft/callback.

Updates & Migrationen

Neue Versionen bringen ggf. SQL-Migrationen mit. Reihenfolge: Backup → Migrationen auf Postgres → neues App-Image deployen → Smoke-Test (Login, Akte, PDF). Mit Wartungsvertrag übernimmt PXL.systems die Koordination und stellt Release Notes bereit.

Release Notes und Migrations-Reihenfolge erhalten IT-Partner mit der Lizenz bzw. auf Anfrage unter hello@pxl.systems.

Backups & Sicherheit

  • Tägliche Postgres-Backups (pg_dump oder Anbieter-Snapshot) — Aufbewahrung nach Ihrer Policy
  • Storage-Bucket für Fotos/PDFs separat sichern oder Replikation nutzen
  • Service-Role-Key und CRON_SECRET nie im Client oder Git committen
  • TLS auf allen öffentlichen Endpunkten; Fail2ban/UFW auf dem VPS empfohlen
  • Row Level Security (RLS) ist Pflicht — nicht deaktivieren

Details zum Löschen personenbezogener Daten: Datenschutzerklärung und Löschkonzept auf Anfrage.

Partner-Support

Lizenz, Wartungsvertrag oder Setup-Hilfe: hello@pxl.systems