SharedInbox CI Runner
This directory contains the configuration for a self-hosted Codeberg (Forgejo) Actions runner.
Strategy: "Thin CI, Heavy Taskfile"
We use a self-hosted runner to bypass the resource limits of hosted CI. The CI workflow is a thin wrapper that invokes nix develop --command task check. This ensures that CI environments are identical to local development environments.
Prerequisites
- Docker and Docker Compose installed.
- Systemd (for persistence).
- A registration token from Codeberg (Settings > Actions > Runners).
- A
.envfile in the project root containingCODEBERG_CI_RUNNER_TOKEN.
Installation & Setup
Run these commands as a user with sudo to install the runner on your laptop or VPS:
# 1. Create the system directory
sudo mkdir -p /opt/sharedinbox-runner
# 2. Copy the runner configuration and your .env file
# (Run this from the root of your local sharedinbox3 project)
sudo cp -r sharedinbox-runner /opt/sharedinbox-runner/
sudo cp .env /opt/sharedinbox-runner/
# 3. Install the systemd service
sudo cp /opt/sharedinbox-runner/sharedinbox-runner/sharedinbox-runner.service /etc/systemd/system/
# 4. Reload systemd and start the service
sudo systemctl daemon-reload
sudo systemctl enable --now sharedinbox-runner.service
Management
- Check status:
systemctl status sharedinbox-runner.service - View logs:
journalctl -u sharedinbox-runner.service -f - Restart:
sudo systemctl restart sharedinbox-runner.service - Stop:
sudo systemctl stop sharedinbox-runner.service