Zum Inhalt

Konfiguration

Die Konfiguration von calServer v2 erfolgt primär über Umgebungsvariablen in der .env-Datei des Laravel-Containers.

Umgebungsvariablen

Datenbank

Variable Beschreibung Beispiel
DB_HOST MySQL-Hostname mysql
DB_PORT MySQL-Port 3306
DB_DATABASE Datenbankname calserver
DB_USERNAME Datenbankbenutzer calserver
DB_PASSWORD Datenbankpasswort <DB-PASSWORT>
DB_PREFIX Tabellenpräfix thermo_

Redis

Variable Beschreibung Beispiel
REDIS_HOST Redis-Hostname redis
REDIS_PORT Redis-Port 6379
REDIS_PASSWORD Redis-Passwort null

Broadcasting / Pusher (Live-Updates)

Live-Updates im Grid sind standardmäßig aus. Neue Meldungen und ihre Zähler holt die Oberfläche im Minutentakt ab; das kostet keinen Dauerprozess und funktioniert auch hinter Reverse-Proxys, die WebSockets blocken. Listen zeigen Änderungen anderer Benutzer ohne Broadcaster erst nach dem Neuladen.

Variable Beschreibung Standard
BROADCAST_CONNECTION Broadcaster: null (aus), log, redis oder pusher null (Container), log (Laravel-Default)
PUSHER_APP_ID Pusher Application ID —
PUSHER_APP_KEY Pusher App Key —
PUSHER_APP_SECRET Pusher App Secret —
PUSHER_APP_CLUSTER Pusher Cluster (z. B. eu) eu

Pusher braucht ein Paket, das nicht mitgeliefert wird

BROADCAST_CONNECTION=pusher wirkt nur, wenn alle drei Zugangsdaten gesetzt sind und pusher/pusher-php-server installiert ist. Fehlt etwas davon, wählt calServer den null-Treiber, statt Broadcast-Aufträge zu erzeugen, die garantiert scheitern. Sind Zugangsdaten da und nur das Paket fehlt, steht der Grund unter Administration → Betrieb → Warteschlange.

DMS (Dokumentenmanagement)

Variable Beschreibung Standard
DMS_INBOX_ENABLED Automatische Verarbeitung des Posteingangs. Bleibt aus, solange calServer V1 daneben läuft: Beide würden denselben Ordner leerräumen false
DMS_INBOX_SCHEDULE Wie oft der Lauf ansteht (Laravel-Scheduler-Methode, z. B. everyFiveMinutes, hourly) everyFiveMinutes
DMS_INBOX_ARCHIVE Übernommene Quelldateien nach {Posteingang}/_archive verschieben statt löschen. false ist das Verhalten von V1 true
DMS_STORAGE_MODE Wo die DMS-Ablage liegt: own (eigener Baum unter storage/app) oder v1-tree (V2 schreibt im V1-Dateimanager-Baum weiter) own
DMS_PATH DMS-Ablage, übersteuert den Modus. Pfad im Container; leer lassen, wenn der Modus gelten soll aus dem Modus abgeleitet
DMS_INBOX_PATH Posteingang, übersteuert den Modus. Ebenfalls ein Pfad im Container aus dem Modus abgeleitet
DMS_CERT_IMPORT_PATH Wartebereich der Kalibrierschein-Übernahme, bewusst kein Unterordner des Posteingangs storage/app/certificate-imports
FILE_MANAGER_PATH Host-Pfad des Dateimanager-Baums, also die Quelle des Mounts. Nicht mit dem Ziel im Container zu verwechseln (/app/storage/app/filemanager) keiner, muss gesetzt sein
FILEMANAGER_MOUNT_MODE Wie das Dateimanager-Volume eingehängt wird. Abgeleitet, nicht setzen: deploy.sh schreibt die Zeile bei jedem Lauf aus DMS_STORAGE_MODE in die .env ro bzw. rw
FILEMANAGER_MOUNT_MODE_PIN Setzt den Mount-Modus bewusst abweichend vom Betriebsmodus. Bleibt stehen und gewinnt über die Ableitung leer

Welcher Modus wann richtig ist und wie die Dokumente einer bestehenden V1 herüberkommen, steht unter Betrieb → Dateispeicher.

Allgemein

Variable Beschreibung Standard
APP_ENV Umgebung production
APP_DEBUG Debug-Modus false
APP_URL Basis-URL https://ihre-instanz.example.com

Nginx-Proxy-Routing

Das URL-Routing erfolgt über den Nginx-Proxy:

# calServer v1 (Standard)
location / {
    proxy_pass http://calserver:8080;
}

# API v2
location /api/v2/ {
    proxy_pass http://calserver-api-v2:8081;
}

# Frontend v2
location /v2/ {
    proxy_pass http://calserver-frontend:3000;
}

Scheduler

Der Laravel-Scheduler muss im Container aktiviert sein:

* * * * * cd /var/www/html && php artisan schedule:run >> /dev/null 2>&1

In Docker wird dies automatisch über Supervisor gesteuert.

Konfigurationsänderungen

Nach Änderungen an der .env-Datei muss der Container neu gestartet werden:

docker compose restart calserver-api-v2