Add Forgejo Actions runner and systemd-managed compose stacks #1

Merged
josh merged 1 commit from add-forgejo-runner into main 2026-06-15 14:31:48 -05:00
Owner

Run a self-hosted Forgejo Actions runner on Foundry alongside the Forgejo server, deployed through the existing docker role.

  • docker/forgejo-runner.yml: act_runner + Docker-in-Docker sidecar so CI jobs run against an isolated daemon (no host socket). Connects declaratively via config.yml (instance url + uuid + token); uuid/token live in the vault.
  • docker/forgejo.yml: enable Forgejo Actions.
  • docker role: render runner config.yml, load uuid/token from the vault, and supervise every managed compose file as an instanced systemd stack (foundry-compose@.service) that starts on boot and restarts only stacks whose file/env/config changed.
  • .forgejo/workflows/ci.yml: target the docker runner label instead of Codeberg's codeberg-tiny.
  • ansible/README.md: document registration, vault values, capacity scaling, and the systemd units.
Run a self-hosted Forgejo Actions runner on Foundry alongside the Forgejo server, deployed through the existing docker role. - docker/forgejo-runner.yml: act_runner + Docker-in-Docker sidecar so CI jobs run against an isolated daemon (no host socket). Connects declaratively via config.yml (instance url + uuid + token); uuid/token live in the vault. - docker/forgejo.yml: enable Forgejo Actions. - docker role: render runner config.yml, load uuid/token from the vault, and supervise every managed compose file as an instanced systemd stack (foundry-compose@<file>.service) that starts on boot and restarts only stacks whose file/env/config changed. - .forgejo/workflows/ci.yml: target the docker runner label instead of Codeberg's codeberg-tiny. - ansible/README.md: document registration, vault values, capacity scaling, and the systemd units.
Add Forgejo Actions runner and systemd-managed compose stacks
All checks were successful
CI / validate (push) Successful in 27s
9900723526
Run a self-hosted Forgejo Actions runner on Foundry alongside the Forgejo
server, deployed through the existing docker role.

- docker/forgejo-runner.yml: act_runner paired with a Docker-in-Docker
  sidecar so CI jobs run against an isolated daemon (no host socket). The
  runner connects declaratively via config.yml (instance url + uuid + token);
  uuid/token are minted once with `forgejo forgejo-cli actions register` and
  stored in the vault. Runs as the data-dir owner so it can persist state.
- docker/forgejo.yml: enable Forgejo Actions so the runner sees jobs.
- docker role: render the runner config.yml (connection, labels, capacity),
  load the runner uuid/token from the vault, and supervise every managed
  compose file as an instanced systemd stack (foundry-compose@<file>.service)
  that starts on boot and restarts only stacks whose file/env/config changed.
- .forgejo/workflows/ci.yml: target the `docker` runner label instead of the
  Codeberg-specific `codeberg-tiny`.
- ansible/README.md: document registration, the vault values, capacity
  scaling, and the systemd stack units.
josh merged commit 0367875189 into main 2026-06-15 14:31:48 -05:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
josh/foundry!1
No description provided.