infrastructure

Gitea

Builder, operator 2024–Present Self-hosted, closed-loop
Gitea Docker CI/CD Container Registry

What It Is

Gitea running on the homelab at git.nexusno.de. It’s a self-hosted git server with an integrated CI runner and container registry.

The folio lives here. Code goes in, the act_runner picks up the push, builds a Docker image with Buildx, pushes it to Gitea’s built-in registry, and deploys it back to the same machine via SSH. The whole pipeline runs in about 90 seconds.

Why Not GitHub

GitHub is great, but the folio is the one thing I want to keep completely under my own control. Not because I don’t trust GitHub — because the whole point of the homelab is that I don’t need to.

The runner uses act_runner with Docker-in-Docker so each build gets a clean environment. The built-in registry replaces Docker Hub for everything that doesn’t need to be public.

How It Works

The CI workflow lives in .gitea/workflows/ in each repo. Push to beta branch, the runner builds the image, tags it, and pushes to git.nexusno.de/meher/folio:beta. Then it SSHs back to the homelab, runs docker compose pull && docker compose up -d, and Caddy serves it.

Nothing touches the internet except when it needs to pull base images. The registry caches those so even that is rare.

What Else Is There

A few other repos — homelab compose files, config snippets, things I don’t want to lose but don’t care enough about to put on GitHub. It’s a scratch repo, essentially. The CI pipeline is the only part that’s worth talking about.

contact

Pick a channel.