Quickstart
From a freshly installed binary to a running Gitea with CI — three commands and a couple of checks.
Before you start
You need gtcnsl on PATH (see Installation), a domain pointing at the box, and root. Everything else gtcnsl sets up for you.
Install Gitea
gtcnsl gitea install --yes
Pulls the verified Gitea binary from the official mirror, creates the git user, writes a default app.ini, deploys the systemd unit, and starts Gitea — auto-rolled-back if the health check fails. (--yes confirms the destructive, unattended operation.)
install writes a default app.ini. Point it at your host afterwards with gtcnsl config set server.DOMAIN git.example.com --yes — or apply a whole template (see Configuration).Install the runner
gtcnsl runner install --executor=docker --yes
Installs act_runner and its gitea-runner systemd unit with the chosen executor (--executor is required: host, docker, docker-rootless, podman). The unit is enabled but stays stopped — no CI jobs run until it is registered.
Register the runner
gtcnsl runner register --instance https://git.example.com --token <fresh-token> --yes
Registers the runner with your instance and starts it. Get a token from Gitea → Site Admin → Runners → Create new runner (tokens are typically single-use).
Check it worked
gtcnsl doctor
Reports PASS / WARN / FAIL across systemd, the binaries, app.ini, secrets, and both units (gitea, gitea-runner). Open https://git.example.com to finish the web setup.
Next steps
Keep app.ini in Git and let gtcnsl reconcile drift. Configuration docs land soon; until then, see the declarative example on the landing page.