blob: f87bbb843a091f88c96f29d72fab9838090a7cbe [file] [log] [blame]
Matthias Andreas Benkard7b455cd2026-08-09 08:33:37 +02001# systemd-Unit für den ÄndGgner-Webserver.
2#
3# Installation (Beispiel):
4# sudo cp deploy/aendggner-web.service /etc/systemd/system/
5# sudo useradd --system --home /opt/aendggner --shell /usr/sbin/nologin aendggner
6# sudo cp -r . /opt/aendggner && sudo chown -R aendggner:aendggner /opt/aendggner
7# sudo systemctl daemon-reload
8# sudo systemctl enable --now aendggner-web
9#
10# Erwartet, dass zuvor "mvn package" gelaufen ist, sodass target/aendggner-*.jar
11# und target/libs/* existieren.
12
13[Unit]
14Description=AendGgner Web-App
15After=network.target
16
17[Service]
18Type=simple
19User=aendggner
20Group=aendggner
21WorkingDirectory=/opt/aendggner
22ExecStart=/bin/sh -c 'exec java -cp "target/aendggner-*.jar:target/libs/*" eu.mulk.aendggner.web.WebMain'
23Environment=AENDGGNER_WEB_PORT=8080
24Environment=AENDGGNER_WEB_BIND=127.0.0.1
25Restart=on-failure
26RestartSec=5
27
28# Ressourcen-Obergrenzen: hält den Dienst auf einem kleinen Server in Schach,
29# selbst wenn die Anwendungs- und Proxy-seitigen Limits einmal nicht greifen.
30MemoryMax=512M
31CPUQuota=150%
32TasksMax=128
33
34# Härtung
35NoNewPrivileges=true
36PrivateTmp=true
37ProtectSystem=strict
38ProtectHome=true
39
40[Install]
41WantedBy=multi-user.target