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:
./config.yaml./config/config.yaml/etc/live/config.yaml/etcd/live.cfg$HOME/.live/config.yaml
Parameter und Standardwerte#
database:
# Im Standard wird sqlite verwendet
driver: sqlite # ENV: DATABASE_DRIVER
path: ./data/live.db # ENV: DATABASE_PATH
# # Alternativ kann mit Postgres gearbeitet werden:
# driver: postgres
# host: db.example.local
# port: 5432
# user: live
# password: secret
# name: live
# sslmode: require
server:
# Der Port, auf dem der Server laeuft
# Default ist 8080
port: 8080 # ENV: SERVER_PORT
# Die interne URL des Servers. Wird beim Testen und Debuggen
# z.B. für CORS Zugriffe verwendet
internalUrl: http://localhost:8080 # ENV: SERVER_INTERNAL_URL
# Die externe URL wird für CORS und zum Erstellen von Links verwendet
externalUrl: https://mein.server.de # ENV: SERVER_EXTERNAL_URL
# OptionaleCORS Settings, damit ggf. ein
# Client auch auf einen anderen Server zugreifen kann
cors:
- https://alternativer.server.de
system:
# Wenn keine Lizenz angegeben ist,
# dann läuft der Server im Demo-Modus
license: "ABCD-1234-..." # ENV: SYSTEM_LICENSE
# Wenn eine neue Datenbank eingerichtet wird, wird ein initiales Admin Token vergeben
# Dieses Token ist nur einmal gültig und wird auf StdOut ausgegeben, beim initialen Start
# Sie können dieses initiale Token auch übergeben, z.B. um in einer Pipeline den Seeding-Prozess
# zu automatisieren. Wenn Sie dieses Token nicht setzen, wird eine GUID generiert.
initialAdminToken: 4569 # ENV: SYSTEM_INITIAL_ADMIN_TOKEN
# Das initiale Admin Token kann auch mehrfach verwendet werden.
# Default ist false, dann ist es ein OTP (One-Time-Password / Einmaltoken)
initialAdminTokenMultiUse: true # ENV: SYSTEM_INITIAL_ADMIN_TOKEN_MULTI_USE
log:
# Log Level kann trace | debug | warn | info | error sein
# info ist default
level: info # ENV: LOG_LEVEL
# Im Falle von Containern einfach leerlassen,
# dann wird wie üblich auf stdout geschrieben
file: /var/log/live/app.log # ENV: LOG_FILE
audit:
# Eine optionale Datei für das Audit Log, also wer hat wann
# fachlich was geändert
file: /var/log/live/audit.log # ENV: AUDIT_FILE
res:
# Der resource path, der die optionale OEM Dateien enthalten
# kann. Ressourcen werden - wenn vorhanden - erst in diesem
# Verzeichnis gesucht, bevor sie im Server-Verzeichnis gesucht werden
# Default ist <nicht gesetzt>
path: ./resources # ENV: RES_PATHBetrieb hinter einem Reverse Proxy#
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
}