Timer-App unter Versionsverwaltung stellen
Stand der laufenden Anwendung von 192.168.1.5:/opt/timer-app (systemd-Dienst timer-app, Port 3003). Zeiterfassung mit Kostenberechnung: Node/Express, SQLite, Anmeldung ausschliesslich ueber Authentik (OIDC, PKCE, RP-Logout) - der frueher vorhandene Passwort-Login ist entfernt. Nicht im Repo, bewusst: - backend/.env und die .env-Sicherung: enthalten Session-Secret und die Authentik-Zugangsdaten. Vorlage ist backend/.env.example. - data/: die Datenbank mit den echten Zeiterfassungen. - node_modules/. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
[Unit]
|
||||
Description=Timer App - Zeiterfassung
|
||||
Documentation=file:///opt/timer-app/DEPLOY.md
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
|
||||
# --- Anpassen ---------------------------------------------------------------
|
||||
WorkingDirectory=/opt/timer-app/backend
|
||||
ExecStart=/usr/bin/node server.js
|
||||
User=timerapp
|
||||
Group=timerapp
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
|
||||
Environment=NODE_ENV=production
|
||||
# Zeitzone bestimmt die Tagesgrenzen im Historien-Filter
|
||||
Environment=TZ=Europe/Berlin
|
||||
|
||||
# Ausgabe landet im Journal: journalctl -u timer-app -f
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
|
||||
# --- Härtung ----------------------------------------------------------------
|
||||
NoNewPrivileges=true
|
||||
PrivateTmp=true
|
||||
ProtectSystem=strict
|
||||
ProtectHome=true
|
||||
ProtectKernelTunables=true
|
||||
ProtectKernelModules=true
|
||||
ProtectControlGroups=true
|
||||
RestrictSUIDSGID=true
|
||||
RestrictNamespaces=true
|
||||
LockPersonality=true
|
||||
|
||||
# Einziger Pfad mit Schreibrecht: das Datenverzeichnis
|
||||
ReadWritePaths=/opt/timer-app/data
|
||||
|
||||
LimitNOFILE=4096
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
Reference in New Issue
Block a user