Git hosting

Install Gitea on your VPS

Infraa installs Gitea on your VPS as a single Go binary: Git hosting with repositories, issues, pull requests, and CI via Gitea Actions. The binary (1.26.4) is pinned and verified against a checked-in SHA-256, runs as a dedicated non-root system user, and binds to localhost — first-run setup happens in Gitea's own web installer.

Versions
Gitea 1.26.4, a pinned single-binary release verified by SHA-256
Works on
Ubuntu 22.04, Ubuntu 24.04, and Debian 12
Package source
Pinned binary release

What does the Gitea install do?

  • Creates a dedicated, non-login system user (infraa-gitea) — Gitea never runs as root.
  • Installs git from your distro's repository (Gitea shells out to it) and downloads the pinned Gitea binary, verifying its SHA-256 before it's moved into place.
  • Installs a systemd unit (infraa-gitea.service) that binds Gitea to 127.0.0.1 on your chosen port, with all state — config, repos, database — in /var/lib/infraa-gitea.
  • Enables and starts the service, then verifies it's listening.

How do I install Gitea with Infraa?

  1. Connect your server

    Run the Infraa install one-liner (curl install.infraa.sh | sh) on your VPS. The agent registers over an outbound connection in about 30 seconds — no inbound ports, no SSH keys to share.

  2. Pick the service

    Choose it from the one-click catalog in the dashboard, or just ask in chat. Infraa turns your request into a concrete, reviewable plan.

  3. Review and approve

    Read exactly what will run, then approve. The agent executes only the approved, cryptographically signed steps and streams progress live.

What happens after the install?

Infraa checks Gitea every 60 seconds — the service unit and your chosen port. The install is localhost-only, so finish the first-run web installer over an SSH tunnel; to put it on the internet, install the nginx module and point a managed vhost with Let's Encrypt at the port.

Gitea on Infraa — common questions

01

Is Gitea exposed to the internet after the install?

No. Infraa binds Gitea to 127.0.0.1, so only processes on the server can reach it. To expose it publicly with a domain and TLS, install the nginx module and point a managed reverse-proxy vhost with Let's Encrypt at Gitea's port.

02

Where do my repositories live?

All Gitea state — repositories, configuration, and its database — lives in /var/lib/infraa-gitea, owned by the dedicated system user. Re-installing upgrades the binary without touching that data.

03

How does Infraa verify the Gitea binary?

The version, download URL, and SHA-256 checksum are pinned in the reviewed module catalog. The agent verifies the checksum before the binary is moved into place — nothing is fetched or trusted at install time beyond that pin.

Connect a server in 30 seconds, then install Gitea from the catalog or just ask in chat.