Konfiguration des Servers#
Die Konfiguration des Servers erfolgt entweder in einer .yaml Konfigurationsdatei in einem lokalen Verzeichnis, oder über Environment-Variablen, die vor dem Server Start gesetzt werden.
Die Konfigurationsdatei wird an folgenden Stellen gesucht:
/etc/live/config.yamlconfig/config.yaml./config.yaml
Einen abweichenden Pfad geben Sie über die Umgebungsvariable LIVE_PATHS_CONFIG_FILE oder das Flag --config-file an.
Die Werte werden in dieser Reihenfolge übersteuert: Konfigurationsdatei → Umgebungsvariablen → CLI-Flags. Umgebungsvariablen tragen alle das Präfix
LIVE_.
Parameter und Standardwerte#
server:
# Der Port, auf dem der Server lauscht (Default 8080)
port: 8080 # ENV: LIVE_SERVER_PORT
# Die Adresse, an die der Server bindet (Default 0.0.0.0)
bind: 0.0.0.0 # ENV: LIVE_SERVER_BIND
# Die externe Basis-URL. Wird zum Erstellen von Links
# und für die Origin-Bindung (WebAuthn) verwendet.
url: https://mein.server.de # ENV: LIVE_SERVER_URL
# Optionale CORS-Settings (JSON-Array), damit ggf. ein
# Client auch auf einen anderen Server zugreifen kann.
cors: [] # ENV: LIVE_SERVER_CORS_JSON
database:
# Verbindungs-URL zur CouchDB (Pflicht).
url: http://live:live@db:5984/live # ENV: LIVE_DATABASE_URL
# Optionales Verzeichnis für den Read-Model-Cache.
cache: ./data/cache # ENV: LIVE_DATABASE_CACHE
system:
# Wenn keine Lizenz angegeben ist,
# dann läuft der Server im Demo-Modus (max. 50 Aufträge).
license: "ABCD-1234-..." # ENV: LIVE_SYSTEM_LICENSE
# Beim ersten Start auf leerer Datenbank wird ein initiales Admin-Token
# vergeben und im Log ausgegeben. Sie können dieses Token auch vorgeben,
# z.B. um in einer Pipeline das Onboarding zu automatisieren.
# Wenn Sie es nicht setzen, wird eine GUID generiert.
initialAdminToken: "..." # ENV: LIVE_SYSTEM_INITIAL_ADMIN_TOKEN
# Das initiale Admin-Token kann auch mehrfach verwendet werden.
# Default ist false, dann ist es ein OTP (Einmaltoken).
initialAdminTokenMultiUse: false # ENV: LIVE_SYSTEM_INITIAL_ADMIN_TOKEN_MULTI_USE
log:
# Log-Level: trace | debug | info | warn | error (Default info)
level: info # ENV: LIVE_LOG_LEVEL
# Im Falle von Containern einfach leerlassen,
# dann wird wie üblich auf stdout geschrieben.
file: # ENV: LIVE_LOG_FILE
audit:
# Eine optionale Datei für das Audit-Log, also wer hat wann
# fachlich was geändert.
file: # ENV: LIVE_AUDIT_FILEWeitere Bereiche sind verfügbar, werden hier aber nicht vertieft:
capabilities.{pwa,docs,scalar,mcp,webdav,sftp}(Funktionsschalter),auth.session.*,webauthn.{rpId,rpName,origin},paths.*(u. a.paths.resourcesPath/LIVE_PATHS_RESOURCES_PATHfür optionale OEM-Ressourcen) undlocale.
Betrieb hinter einem Reverse Proxy#
Wird der Server hinter einem Reverse Proxy betrieben, beachten Sie:
- Der Host-Header muss unverändert durchgereicht werden (
proxy_set_header Host $host), da er für die WebAuthn-Origin-Bindung benötigt wird. - Große Uploads müssen erlaubt sein (
client_max_body_size 0bzw. ein ausreichend hoher Wert), damit Anhänge übertragen werden können. - Kein TLS-Intercept: Die TLS-Kette darf nicht aufgebrochen werden (keine SSL-Intercept-Proxies oder HTTPS-scannende Antivirus-Lösungen), sonst bricht die Origin-Bindung.
- Setzen Sie zusätzlich die externe Basis-URL über
server.url/LIVE_SERVER_URL.
Hier die Beispiel-Konfiguration des nginx-Proxys unserer URL https://app.inkasso.live:
server {
server_name app.inkasso.live;
# To allow special characters in headers
ignore_invalid_headers off;
# Allow any size file to be uploaded.
# Set to a value such as 1000m; to restrict file size to a specific value
client_max_body_size 0;
error_log /var/log/nginx/app.inkasso.live-error.log error;
access_log /var/log/nginx/app.inkasso.live-access.log combined;
if ( $is_bot ) { return 410; }
location /robots.txt { return 200 "User-agent: *\nDisallow: /"; }
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 10s;
proxy_send_timeout 600s;
proxy_read_timeout 600s;
proxy_buffering on;
proxy_pass http://192.168.10.80:8912;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/autodiscover.42i.org/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/autodiscover.42i.org/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = app.inkasso.live) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name app.inkasso.live;
listen 80;
return 404; # managed by Certbot
}