Run your own CI
Codebahn’s hosted runners are available on workspace plans. If you are on the Personal plan, or you want jobs to run on your own hardware, you have two options: register a Forgejo runner that polls Codebahn for jobs, or point an external CI system at your repositories.
If you have hosted runners and want to get started with a workflow file instead, see Set up CI.
BYO runner
Section titled “BYO runner”A Forgejo runner polls your Codebahn instance for jobs, executes them in Docker containers, and reports results back. Follow the Forgejo runner installation guide for the binary, Docker, Podman, and systemd setup. This section covers what’s specific to Codebahn.
Connection config
Section titled “Connection config”Get a UUID and registration token from Settings > Actions > Runners (available at user, org, or repo level). Point the runner at your Codebahn instance:
server: connections: codebahn: url: https://codebahn.net/ uuid: YOUR_UUID token: YOUR_REGISTRATION_TOKENRunner image
Section titled “Runner image”Use the Codebahn runner image to get the same environment as the hosted runners, including pre-cached Go and Node toolchains:
runner: labels: - my-runner:docker://rg.fr-par.scw.cloud/codebahn-runner/ubuntu:24.04Substitute any Docker image you prefer. See CI runners for the image contents.
Job routing
Section titled “Job routing”ubuntu-latest, codebahn-small, codebahn-medium, and codebahn-large route to Codebahn’s hosted runners. Use a distinct label to keep your own hardware separate:
jobs: build: runs-on: my-runnerExternal CI
Section titled “External CI”If you already run Woodpecker, Jenkins, or another CI system, point it at your Codebahn repositories. You need two things: a clone token and a webhook.
Clone token
Section titled “Clone token”Go to Settings > Applications and create an access token with the read:repository scope. Use it in your CI system’s clone URL:
https://token:YOUR_TOKEN@codebahn.net/owner/repo.gitWebhook
Section titled “Webhook”Add a webhook under Settings > Webhooks on your repository, pointing at your CI system’s trigger URL. See Webhooks for payload verification and the full event list.
Provider notes
Section titled “Provider notes”- Woodpecker CI supports Forgejo natively. See Woodpecker’s Forgejo integration docs for server config. Create an OAuth2 application under Settings > Applications on Codebahn for the client credentials.
- Jenkins works via the clone token as a Git credential (username:
token, password: your access token) and a webhook trigger. - GitHub Actions works via a push mirror. Set one up under Settings > Repository > Mirror Settings on Codebahn; commits mirror to GitHub and run on GitHub’s runners.
Support boundary
Section titled “Support boundary”Next steps
Section titled “Next steps”- Set up CI: hosted runners on workspace plans.
- CI runners: runner sizes, image contents, and compatibility notes.
- Webhooks: payload format and signature verification.
- Workflow directories: precedence when multiple directories exist.