gtcnsl
EN RU

Changelog

Notable changes to gtcnsl, newest first. Format follows Keep a Changelog; versions follow Semantic Versioning.

Keep a Changelog · SemVer
v0.6.3 2026-05-30
Fixed
  • The release pipeline now uploads each binary from its real build path and refuses to publish a missing or empty file — the root cause of the empty downloads across v0.6.0–v0.6.2.
Read more →
v0.6.2 2026-05-30
Fixed
  • gtcnsl --version now exists and prints the same line as gtcnsl version.
  • self-update no longer always rolls back — its post-swap version check was failing because the --version flag was missing.
  • Release binaries report their version with the leading v, fixing the self-update "already latest" and tag-match checks.
Read more →
v0.6.1 2026-05-30
Fixed
  • The mirror step no longer relies on a shell feature missing from the release image, so binaries actually reach dl.gtcnsl.com (v0.6.0 published on Gitea but was never mirrored).
Read more →
v0.6.0 2026-05-30
Added
  • gtcnsl self-update replaces the running binary with the latest (or a specific --to vX.Y.Z) release from dl.gtcnsl.com: download → verify SHA-256 → atomic swap → confirm it runs → roll back on any failure. Flags: --dry-run, --rollback, --yes, --dl-host.
  • Discovery and download read a versions.json manifest from the download host and never call the Git API, so self-update survives the host going private.
  • A Self-update screen in the TUI (Check / Apply / Rollback) driving the same flow as the CLI.
  • The release workflow mirrors every published binary + checksums.txt to the download host (the Gitea release stays the source of truth).
Changed
  • Release binaries are now named gtcnsl-vX.Y.Z-linux-<arch> (with the leading v), matching the download host’s contract.
Read more →
v0.5.0 2026-05-24
Added
  • Interactive TUI: run gtcnsl with no arguments to drive Gitea, Runner, Config, Secrets and Doctor from a menu — every v0.1–v0.4 operation, with colour-coded logs, scrollable output and a spinner.
  • gtcnsl config get / set / toggle — read or change a single app.ini key, with the same backup → atomic write → restart → health-check rollback as the declarative flow. Secret and compound keys are refused with a redirect.
  • gtcnsl doctor — host pre-flight checks (systemd, outbound HTTPS, disk, root) plus installed-Gitea and runner checks; --fix --yes auto-remediates common problems (missing ca-certificates, missing secrets).
  • A config schema catalog backs the config screens with defaults, types and key descriptions; gtcnsl config sync-schema fetches a newer Gitea’s schema.
Fixed
  • Config and secrets writes now preserve file ownership after the atomic rename, so Gitea can still read its own config after an apply (previously the file could be left root-owned).
  • doctor --fix now re-checks outbound HTTPS correctly within the same run after installing ca-certificates.
Read more →
v0.4.1 2026-05-23
Added
  • Every release is mirrored to S3-compatible object storage alongside the Gitea release, with a /latest/ prefix and a versions.json discovery manifest for the upcoming self-update.
  • Pre-release tags (-rc / -beta / -alpha) get a pinned upload but are kept out of /latest/ and versions.json, so a candidate never becomes the default install target.
Read more →
v0.4.0 2026-05-23
Added
  • gtcnsl config apply --template — render and apply a declarative app.ini with ${VAR} substitution, a diff, a backup, a restart and automatic rollback on health-check failure.
  • Managed secrets: gtcnsl secrets generate / check / rotate for Gitea’s four core secrets in /etc/gitea/secrets.ini; rotate re-applies config and rolls back both files on failure.
  • An embedded Gitea config-schema catalog (defaults, types, descriptions), with gtcnsl config sync-schema to fetch a newer version.
  • gtcnsl runner install --executor=podman (Tier 3, experimental).
Read more →
v0.3.1 2026-05-23
Added
  • Container egress and disk-space health probes during runner setup, with copy-paste fixes on failure (non-fatal warnings).
  • gtcnsl runner reconfigure --admin-token cleans up the orphaned Gitea-side runner registration after a re-register.
  • docs/VPS-CHECKLIST.md — an operator checklist for setting up a gtcnsl-managed runner on a VPS.
Read more →
v0.3.0 2026-05-23
Added
  • gtcnsl gitea install / upgrade — install the latest Gitea (GPG + SHA-256 verified) with a hardened systemd unit and a post-start health check; atomic version upgrades with rollback on failure.
  • gtcnsl runner install / register / reconfigure / upgrade for act_runner, with host, docker and docker-rootless executors.
  • Per-distro package-manager support (apt / dnf) with pre-existing-Docker detection.
  • A single static binary for amd64, arm64 and armv7, distributed through the project’s own Gitea releases.
Read more →