Direkt zum Hauptinhalt

PLESK · Node.js-Einstellungen

PLESK · Node.js-Einstellungen

Hinweis (Stand 2026-05-23): Aktuelle Produktion läuft mit Node.js 18.x LTS (siehe .gitlab-ci.yml). Plesk-Node.js-Toolkit muss installiert sein.

Application-Settings im Plesk-UI

Im Plesk-Vhost unter Node.js folgende Felder setzen:

Feld Wert
Node.js Version 18.x (LTS)
Document Root /var/www/vhosts/agrarforschung.at/dess.agrarforschung.at
Application Root /var/www/vhosts/agrarforschung.at/dess.agrarforschung.at
Application Startup File index.js
Application Mode production

Custom Environment Variables

DESS liest seine Konfiguration über config/config.js aus, dort werden bestimmte Felder über process.env überschreibbar gehalten. Im Plesk-UI unter Node.js → Custom environment variables mindestens setzen:

Variable Beispiel Zweck
NODE_ENV production Aktiviert Production-Logging + Caching
PORT 3000 interner Node-Port (Plesk-nginx-Proxy davor)
DB_HOST 127.0.0.1 MariaDB-Host
DB_USER dess DB-User
DB_PASSWORD <secret> aus OpenBao, niemals im Vault im Klartext
DB_NAME dess DB-Name
OIDC_ENABLED true Aktiviert Keycloak-Login (seit 1.0.9)
OIDC_ISSUER https://sso.agrarforschung.at/realms/bab Keycloak-Realm
OIDC_CLIENT_ID dess KC-Client
OIDC_CLIENT_SECRET <secret> aus OpenBao
PROXY true hinter nginx-Reverse-Proxy
SESSION_SECRET <random> Express-Session-Secret, nicht hardcoden

Restart-Mechanismus

Plesk Passenger erkennt Neustart-Triggerdatei:

touch /var/www/vhosts/agrarforschung.at/dess.agrarforschung.at/tmp/restart.txt

Die CI-Pipeline .gitlab-ci.yml setzt dieses File automatisch nach jedem erfolgreichen SCP-Upload.

Bekannte Hardening-Punkte

  • trust proxy Flag: Express muss app.set('trust proxy', 1) setzen, damit req.protocol hinter dem nginx-Reverse-Proxy korrekt https liefert. Siehe Incident DESS SSO-Login defekt nach Keycloak 26 Upgrade bzw. Vault wiki/incidents/2026/2026-05-21-dess-sso-broken-after-kc26.md.
  • OIDC iss-Parameter: KC26 sendet iss in der Auth-Response. Aktuell ist das auf KC-Seite per Client-Attribut exclude.issuer.from.auth.response=true deaktiviert; ein Hardening-Fix in login.component.ts + Joi-Schema ist offen.

Stand: 2026-05-23 · Audit: Roland Neissl · Quelle: GitLab dess/dess Commit-Historie + Vault wiki/concepts/integration-dess-openproject.md + Vault wiki/incidents/2026/2026-05-21-dess-sso-broken-after-kc26.md