Skip to content
gtcnsl
EN RU

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.

Updated for v1.6.0

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-7 The 32-bit ARM build is published as …-linux-arm-7, not armv7. The install snippet and self-update already 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
i
armv7 ships but isn't in the container matrix
The 32-bit ARM binary is built and published every release, but the end-to-end container tests run on amd64 and arm64 only — armv7 is "likely fine but unverified", like the unlisted distros.
!
Alpine is host-mode only
gtcnsl on Alpine installs and manages a host-mode Gitea and a host-mode 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.service and gitea-runner.service through 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) and https://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.

i
Verify before you trust the host
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.