# Automatisches Produktions-Deployment Der Workflow `workflows/deploy-production.yml` aktualisiert bei jedem Push auf `main` den Git-Checkout `~/stechuhr3` auf dem Produktionsserver und startet dort `./deploy.sh update no-backup`. Dieses vorhandene Deploy-Skript kopiert den aktualisierten Code nach `/var/www/timeclock`, baut das Frontend und lädt den PM2-Prozess neu. Einmalig im Gitea-Repository konfigurieren: - Unter **Settings → Actions → Variables**: - `TIMECLOCK_DEPLOY_HOST`: Hostname des Produktionsservers - `TIMECLOCK_DEPLOY_USER`: Linux-Benutzer mit Zugriff auf den Checkout und PM2 - `TIMECLOCK_DEPLOY_SSH_KNOWN_HOSTS`: Ausgabe von `ssh-keyscan -H ` - Unter **Settings → Actions → Secrets**: - `TIMECLOCK_DEPLOY_SSH_PRIVATE_KEY`: privater SSH-Schlüssel dieses Deploy-Benutzers Der öffentliche Teil des Deploy-Schlüssels muss auf dem Produktionsserver in `~/.ssh/authorized_keys` des Deploy-Benutzers hinterlegt sein. Der Gitea Actions-Runner benötigt außerdem Netzwerkzugang per SSH zum Server. Vor dem ersten Push muss `~/stechuhr3` bereits der Checkout dieses Repositories sein. Das Deploy-Skript benötigt die Rechte, nach `/var/www/timeclock` zu kopieren und den PM2-Prozess neu zu laden.