Skip to content

Commit c97443f

Browse files
Mossakaclaude
andcommitted
docs: add self-hosted runner requirements
Document the requirements for self-hosted runners (Linux, Docker, sudo, iptables) and note they are untested but should work. Also cover Docker-in-Docker scenarios. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 74de5ef commit c97443f

1 file changed

Lines changed: 17 additions & 0 deletions

File tree

docs/compatibility.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,23 @@ The minimum Node.js version is specified in `package.json` under `engines.node:
4848

4949
GitHub-hosted macOS runners are themselves virtual machines (`Apple M1 (Virtual)`) that do not support nested virtualization. AWF requires Docker for the Squid proxy container, agent container, and MCP Gateway — all of which need a Linux VM on macOS. Docker Desktop, colima (with both `vz` and `qemu` VM types), and Apple's `container` tool were all tested and none can provide Docker on these runners. The root cause error is: `Virtualization is not available on this hardware`.
5050

51+
### Self-hosted runners
52+
53+
Self-hosted runners are not tested by the gh-aw team, but should work if they meet these requirements:
54+
55+
| Requirement | Details |
56+
|-------------|---------|
57+
| **Operating system** | Linux (Ubuntu 22.04+ recommended). macOS and Windows are not supported. |
58+
| **Architecture** | x86_64 or arm64. AWF container images are published for both. |
59+
| **Docker** | Docker Engine 20.10+ and Docker Compose v2+ must be installed and running. |
60+
| **sudo access** | The runner user must have passwordless `sudo` for iptables manipulation. |
61+
| **iptables** | `iptables` must be available (standard on most Linux distributions). |
62+
| **Network** | Outbound HTTPS access to `ghcr.io` for pulling container images (unless using `--build-local`). |
63+
64+
If your self-hosted runner is a VM, nested virtualization is **not** required — Docker runs natively on Linux without a VM layer. This is unlike macOS, where Docker always needs a Linux VM.
65+
66+
If your self-hosted runner runs inside a Docker container itself (Docker-in-Docker), you need `--privileged` mode or the equivalent capabilities (`NET_ADMIN`, `SYS_ADMIN`) for iptables and container networking to work.
67+
5168
### Architecture
5269

5370
| Architecture | Status | Notes |

0 commit comments

Comments
 (0)