Supported platforms
gtcnsl is a single static binary with no runtime dependencies. Here are the architectures it ships for and the systems it is tested on.
Architectures
Releases ship for three Linux architectures, named gtcnsl-v1.6.0-linux-<arch>:
| Arch | File suffix | Covers |
|---|---|---|
| amd64 | -linux-amd64 |
most cloud VPS and desktops |
| arm64 | -linux-arm64 |
modern ARM servers, Raspberry Pi 4/5 |
| armv7 | -linux-arm-7 |
32-bit ARM boards |
[!NOTE] The armv7 file is
-arm-7The 32-bit ARM build is published as…-linux-arm-7, notarmv7. The install snippet andself-updatealready use the right name for your machine.
Tested distributions
End-to-end tested on the systemd-based distros below, plus one OpenRC-based distro (Alpine — see the host-mode-only note). Other modern systemd distros are likely fine but unverified.
| Distro | Version | Arches | Init |
|---|---|---|---|
| Debian | 13 | amd64 · arm64 | systemd |
| Ubuntu | 22.04 LTS · 24.04 LTS · 26.04 LTS | amd64 · arm64 | systemd |
| Rocky | 9 · 10 | amd64 · arm64 | systemd |
| AlmaLinux | 9 · 10 | amd64 · arm64 | systemd |
| openSUSE Leap | 16 | amd64 · arm64 | systemd |
| Alpine | 3.22 | amd64 · arm64 | OpenRC |
gitea-runner — that's it. The docker, docker-rootless, podman, and
dind-rootless runner executors all refuse cleanly with an explanation
(Alpine has no systemd-logind session manager for the rootless/dind-rootless
setups those executors need). If you need a container-based runner executor,
use one of the systemd distros above.What the host needs
- systemd or OpenRC — gtcnsl manages
gitea.serviceandgitea-runner.servicethrough whichever one is running; it detects this automatically, no flag to set. On Alpine, that's OpenRC (see the host-mode-only note above). - root for service operations (install, config apply, secrets). Read-only commands (
config get,doctor) do not need it. - outbound HTTPS to
dl.gitea.com(Gitea + runner downloads) andhttps://dl.gtcnsl.com(gtcnsl self-update).
The binary is built with CGO disabled, so there is nothing to install alongside it — no libc version to match, no interpreter. This also means the static binary runs fine on Alpine's musl libc without any compatibility shim.
gtcnsl doctor probes all of the above (init system present, HTTPS reachability, disk, privileges) and reports PASS / WARN / FAIL.Next steps
Ready to install? The Installation guide covers download, verification, and PATH.