Overview
Gitea ships with its own built-in CI/CD system called Gitea Actions but it needs a runner to actually execute jobs. This guide covers deploying a dedicated act_runner LXC container on Proxmox and registering it to your Gitea instance, laying the groundwork for automated Hugo builds and deploys.
Hardware / Requirements
- Gitea already installed and running (see my Private Git Server with Gitea on Proxmox guide if you haven’t set this up yet).
- Admin access to your Gitea instance to enable Actions and generate a registration token.
🌐 Prerequisite: Gitea Actions is disabled by default and must be enabled in your instance’s configuration before a runner can connect to it.
Procedure
Step 1: Enable Gitea Actions
- Open your Gitea configuration (
app.ini) on the Gitea container. - Under the
[actions]section, setENABLED = true. - Restart the Gitea service to apply the change.
- In the Gitea web UI, go to your repository (or instance-wide) Settings → Actions to confirm it’s active.
Step 2: Create the Runner Container
- In Proxmox, click Create CT to spin up a new lightweight LXC container (e.g.
gitea-runner). - Allocate 1-2 vCPUs and 1-2GB RAM enough for building a static Hugo site.
- Start the container and open its console.
Step 3: Install and Register act_runner
- Download the latest act_runner binary inside the container.
- Make it executable and move it to a convenient location.
- In the Gitea web UI, go to Site Administration → Actions → Runners and click Create new Runner to generate a registration token.
- On the container, run the registration command with your Gitea instance URL and the token.
- Start
act_runneras a systemd service so it stays running and auto-starts on boot. - Confirm the new runner shows as Idle in the Gitea Runners page.