Skip to content
gtcnsl
EN RU

v1.4.0

2026-08-04 latest ● stable

What changed

Added
  • **The TUI's start screen is now a live dashboard.** SERVICES (Gitea and gitea-runner: install status — not installed / inactive / active / unknown — plus binary version) and CONFIG (`app.ini` path + presence, `secrets.ini` managed-key count) render above the same six ACTIONS entries the menu always had. All data is read live from the host (no root required) and degrades honestly: nothing guessed, "unknown" when a probe itself fails, never a false "in sync" claim for config. Status refreshes on `r`; the first frame never blocks on the underlying `systemctl`/`exec` calls.
  • **Golden byte-for-byte TUI dashboard snapshots, plus a deterministic screenshot renderer, guard against the TUI and the marketing site drifting apart again.** `test/integration/scenarios/tui-golden.sh` captures the fresh-host dashboard from a real pty (tmux, ANSI codes included) and compares it byte-for-byte against a committed fixture (`test/integration/golden/dashboard-fresh.ans`); a plain-text sibling keeps failures human-readable, and `GOLDEN_UPDATE=1` refreshes both after a deliberate change. `test/integration/render-tui.sh` turns any such `.ans` capture into a reproducible PNG via the new `cmd/tui-render` (a pure-Go renderer, `golang.org/x/image`, with a pinned/sha256-verified monospace font) — the canonical way to produce TUI screenshots for the site going forward. See ADR 0039.
  • **AlmaLinux 9/10 and Rocky 10 join the supported matrix**, alongside a `pkgmgr.Family` refactor (`FamilyDebian` / `FamilyRHEL`) that dispatches every package-manager command by family instead of by individual distro — adding a distro to an existing family is now one `Distro` constant plus one `Family` mapping entry. Docker/Podman install and the docker-rootless refusal in `internal/core` now dispatch the same way; the docker-rootless refusal wording generalises from "on Rocky 9" to "on the RHEL family (Rocky, AlmaLinux)" — it remains unimplemented by design (ADR 0040). Existing Debian/Ubuntu/Rocky behaviour is unchanged byte-for-byte.
  • **Ubuntu 22.04 LTS and 26.04 LTS join the supported matrix**, riding the same `pkgmgr.Family` dispatch the AlmaLinux/Rocky work above introduced: no product-code change was needed, since the Debian-family apt path covers both releases as-is. The two new test images follow the existing ubuntu-24.04 pattern (official multi-arch bases, self-built systemd per ADR 0023). With this release the tested container matrix reaches eight images across four distro families (ADR 0040's "core on features, full matrix on release-prep" run policy, `docs/RELEASING.md`). Note the horizon: 22.04's standard support ends 2027-04 — it becomes a removal candidate then.
Changed
  • `GiteaInspection`/`RunnerInspection` (used internally by install/upgrade/register/reconfigure) gained an `Active *bool` field reporting the live unit's `IsActive` state.

Download

Pick your architecture. Direct links point at the release assets.

$ curl -fsSL https://dl.gtcnsl.com/v1.4.0/gtcnsl-v1.4.0-linux-amd64 -o /usr/local/bin/gtcnsl && chmod +x /usr/local/bin/gtcnsl
i
Verify
Compare against the checksum manifest before you run anything. checksums.txt