From f25466ca76350d5c7fdbe68fa4ac5d9bc07c1dea Mon Sep 17 00:00:00 2001 From: Emi Griffith Date: Sat, 1 Aug 2026 11:50:42 -0700 Subject: [PATCH] forgejo: make the desktop runner unit restart-always, fix the vps2 config path MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Both runners exist and are up; these are the two defects found while verifying that. The desktop's systemd --user unit had Restart=on-failure. That is the same distinction that took Forgejo down for 27 hours on 2026-07-29 (docker-stack.yml records it for the db service): a daemon that exits 0 is not "finished successfully", and on-failure cannot tell that from a clean shutdown. The failure mode is silent — unit inactive (dead), runner offline in the UI, and every protected-branch merge blocked on a check nothing will produce. The StartLimit directives that bound that retry loop were in [Service], where systemd accepts them without complaint and ignores them; the live unit was running the 10s default rather than the intended 300s. Moved to [Unit], which is where they are read. runner-vps2/README told you to copy config.yaml next to docker-compose.yml, but the compose file mounts ./data:/data and loads --config /data/config.yaml, so a config there is invisible to the container — the daemon starts on defaults with no --add-host, and every registry push then fails as if the credential were wrong. vps2 had a stray copy at the documented path proving the instruction had been followed. --- infra/deploy/forgejo/register-lan-runner.sh | 18 +++++++++++++++++- infra/deploy/forgejo/runner-vps2/README.md | 15 +++++++++++++-- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/infra/deploy/forgejo/register-lan-runner.sh b/infra/deploy/forgejo/register-lan-runner.sh index 611155d..8d63550 100755 --- a/infra/deploy/forgejo/register-lan-runner.sh +++ b/infra/deploy/forgejo/register-lan-runner.sh @@ -93,6 +93,13 @@ cat > "$HOME/.config/systemd/user/forgejo-runner.service" <