https://github.com/killwolfvlad/actions-runner-compose
Like Kubernetes controller for GitHub Actions self-hosted runners but for Docker Compose
https://github.com/killwolfvlad/actions-runner-compose
compose docker docker-compose github-actions
Last synced: 3 months ago
JSON representation
Like Kubernetes controller for GitHub Actions self-hosted runners but for Docker Compose
- Host: GitHub
- URL: https://github.com/killwolfvlad/actions-runner-compose
- Owner: KillWolfVlad
- License: apache-2.0
- Created: 2025-08-12T16:47:18.000Z (11 months ago)
- Default Branch: master
- Last Pushed: 2025-08-13T20:16:04.000Z (11 months ago)
- Last Synced: 2025-08-13T21:24:44.955Z (11 months ago)
- Topics: compose, docker, docker-compose, github-actions
- Language: Go
- Homepage:
- Size: 1.49 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# actions-runner-compose
[](https://github.com/KillWolfVlad/actions-runner-compose/actions/workflows/deploy-image.yaml)
Like [Kubernetes controller for GitHub Actions self-hosted runners](https://github.com/actions/actions-runner-controller) but for Docker Compose.
## Install
### On Your Server
1. `mkdir actions-runner-compose && cd actions-runner-compose`
2. `nano .env` with content from [.env.example](./.env.example)
3. `nano compose.yaml` with content below (you can find versions in [GitHub Packages](https://github.com/users/KillWolfVlad/packages/container/package/actions-runner-compose))
```yaml
name: actions-runner-compose
services:
actions-runner-compose:
container_name: arc
image: ghcr.io/killwolfvlad/actions-runner-compose:latest
restart: unless-stopped
environment:
PORT: "8080"
WEBHOOK_PATH: ${WEBHOOK_PATH}
WEBHOOK_SECRET: ${WEBHOOK_SECRET}
MAX_RUNNERS: ${MAX_RUNNERS}
RUNNER_IMAGE: ${RUNNER_IMAGE}
REPOSITORY_0: ${REPOSITORY_0}
REPOSITORY_1: ${REPOSITORY_1}
ports:
- 8080:8080
volumes:
- /var/run/docker.sock:/var/run/docker.sock
```
4. `docker compose up -d`
5. Setup Caddy or any other reverse proxy
```caddy
yourdomain.com {
reverse_proxy http://localhost:8080
}
```
### Setup Webhook in GitHub Repository
- Payload URL: `https://yourdomain.com/${WEBHOOK_PATH}`
- Content type: `application/json`
- Secret: `${WEBHOOK_SECRET}`
- SSL verification: `Enable SSL verification`
- Which events would you like to trigger this webhook: `Let me select individual events.`
- `Workflow jobs`
- Active: `true`
## Maintainers
- [@KillWolfVlad](https://github.com/KillWolfVlad)
## License
This repository is released under version 2.0 of the
[Apache License](https://www.apache.org/licenses/LICENSE-2.0).