Add polling-based auto-deploy: server picks up pushes to master

scripts/auto-deploy.sh + a systemd timer (2min interval) that fetches
origin/master and, if ahead, pulls/rebuilds/migrates/restarts - same
sequence as the manual update steps in DEPLOYMENT.md, just scheduled.
Polling instead of a Gitea webhook deliberately: no extra exposed
service, no Docker socket mounted into a container, no shared secret
to manage - it's the same trust boundary as a manual SSH deploy.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
2026-08-05 20:24:25 -04:00
co-authored by Claude Sonnet 5
parent 820787c7bf
commit 016c9424ce
4 changed files with 63 additions and 0 deletions
@@ -0,0 +1,9 @@
[Unit]
Description=CI Agent auto-deploy (poll Gitea for new commits on master)
After=docker.service
Requires=docker.service
[Service]
Type=oneshot
WorkingDirectory=/opt/ci-agent
ExecStart=/opt/ci-agent/scripts/auto-deploy.sh