1 min read · Automation

Self-hosted runner

Running the GitHub Actions runner on the VM, with Docker access.

Lets a workflow deploy without exposing SSH, since the runner dials out.

Install as a service

cd ~/actions-runner
sudo ./svc.sh install
sudo ./svc.sh start
sudo ./svc.sh status

Give the runner Docker access

The runner usually runs as its own user, not the account used to log in.

# Find the user the runner runs as
ps aux | grep Runner.Listener | head -1 | awk '{print $1}'

sudo usermod -aG docker <that-user>

# Restart so the new group membership is picked up
sudo systemctl restart actions.runner.*.service

Group membership is only re-read at process start — restarting the runner is what actually applies it.