Files
timer-app/deploy/timer-app.service
adminandClaude Opus 5 a7e77793a8 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>
2026-09-04 17:47:07 +02:00

46 lines
1.1 KiB
Desktop File

[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