26 lines
1.2 KiB
SYSTEMD
26 lines
1.2 KiB
SYSTEMD
|
|
# homelab-deploy-runner.service — host-side executor for control-plane `redeploy`
|
||
|
|
# actions (docs/architecture/RECON-multiagent-2026-07-27.md D14/D15).
|
||
|
|
#
|
||
|
|
# Host-level and NOT a container, deliberately: it runs `docker compose` the way
|
||
|
|
# a human deploy does, so relative bind mounts and the compose project name
|
||
|
|
# resolve identically. A containerised runner would resolve them against its own
|
||
|
|
# filesystem and hand the daemon host paths that do not exist.
|
||
|
|
#
|
||
|
|
# Install: see ../README.md (copy this + the timer to /etc/systemd/system/,
|
||
|
|
# create /opt/homelab/config/deploy-runner/env from env.example, daemon-reload,
|
||
|
|
# enable the TIMER — not this unit).
|
||
|
|
[Unit]
|
||
|
|
Description=Homelab deploy runner (executes approved redeploy actions on this node)
|
||
|
|
After=network-online.target docker.service
|
||
|
|
Wants=network-online.target
|
||
|
|
|
||
|
|
[Service]
|
||
|
|
Type=oneshot
|
||
|
|
User=oskar
|
||
|
|
# Runtime config: NODE_NAME, REPO_PATH, VPS_EVENTS_HOST, ... (see env.example).
|
||
|
|
EnvironmentFile=/opt/homelab/config/deploy-runner/env
|
||
|
|
ExecStart=/home/oskar/homelab-codex-ws/jobs/deploy-runner/deploy-runner.sh
|
||
|
|
# Slightly above the runner's own per-action DEPLOY_TIMEOUT_SECS (default 600)
|
||
|
|
# so the script always gets to report a result before systemd intervenes.
|
||
|
|
TimeoutStartSec=900
|