Kent, UK

Interface reference

What Gitea is

Gitea is a lightweight, self-hosted Git service written in Go. It provides repository hosting, issue tracking, pull requests, a web interface, webhook integrations and user management — essentially a private GitHub or GitLab that runs on minimal hardware with no external dependencies.

It is a community fork of Gogs, designed to be fast, easy to install and resource-efficient. A Gitea instance can run comfortably on a Raspberry Pi or an LXC container with 512MB of RAM.

Why I run it

I run Gitea as the central repository for all my infrastructure code: Ansible playbooks, shell scripts, Docker Compose files, configuration backups and documentation. Having version control for infrastructure means I can track every change I make, roll back mistakes, and keep a clear history of what was deployed and when.

It also means my infrastructure code never leaves my network — unlike pushing to GitHub, everything stays on my own hardware behind Tailscale.

Docker Compose

docker-compose.yml
services:
  gitea:
    image: gitea/gitea:latest
    container_name: gitea
    restart: unless-stopped
    ports:
      - "3000:3000"
      - "2222:22"
    volumes:
      - ./data:/data
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - TZ=Europe/London

What this gives you

Private, version-controlled infrastructure code with a web interface, issue tracking and SSH access — all running on minimal resources with no external service dependency. Every Ansible playbook, every script, every configuration file has a clear history.