Deploying a Lightweight Self-Hosted Git Platform with Gitea

Compiled in Go, Gitea delivers a self-contained, minimal-footprint alternative to heavyweight Git hosting platforms like GitHub Enterprise or GitLab CE, designed for deployment on everything from low-power single-board computers to enterprise-grade servers.

Key Capabilities

  • Minimal resource footprint: A single static binary consumes <100MB RAM at idle, with near-instant startup, ideal for resource-constrained environments
  • Flexible installation options: Supports Docker containers, single static binary deployment, source compiltaion, and pre-built OS packages
  • Multi-OS compatibility: Runs natively on Linux, macOS, Windows, and BSD variants
  • Secure authentication & transport: Built-in SSH key management, HTTPS support, OAuth2/OIDC integration with providers like GitHub, GitLab, and Google, plus two-factor authentication (2FA)
  • Robust project tooling: Full Git repository hosting, pull request-based code review, configurable webhooks, issue tracking with labels/milestones/assignees, wiki pages, and repository transfer/archiving
  • Localized interfaces: Over 50 language packs available, including simplified and traditional Chinese

Installation Methods

Docker (Recommended for Quick Setup)

Create a persistent volume to retain repositories, config, and user data, then launch the container:

docker volume create gitea-persistent
docker run -d \
  -p 3030:3000 \
  -p 2222:22 \
  --restart=unless-stopped \
  --name gitea-local \
  -v gitea-persistent:/data \
  gitea/gitea:latest

This exposes Gitea’s web UI on port 3030 and SSH access on 2222 to avoid clashing with the host’s default SSH port.

Compile from Source

Ensure Go 1.22+ is enstalled and ~/.local/bin is added to you're PATH environment variable:

go install gitea.io/gitea@latest
mkdir -p ~/.local/share/gitea
GITEA_WORK_DIR=~/.local/share/gitea gitea web

This runs Gitea with its working directory set to ~/.local/share/gitea for organized data storage.

Basic Git Repository Management

Initialize a Hosted Repository

After logging into Gitea, click the + icon in the top navigation bar, select New Repository, configure repository visibility (public/private/internal), optionally initialize with a .gitignore, license, or README, then click Create Repository.

Clone a Repository

Copy either the HTTPS or SSH URL from the repository’s landing page. For SSH, first add your public key to Gitea via Settings > SSH / GPG Keys:

git clone ssh://git@localhost:2222/your-username/your-repo-name.git

Push Local Changes

After committing changes locally, push them to the default origin remote:

git add .
git commit -m "feat: add initial project scaffolding"
git push origin main

Track Project Issues

Navigate to the repository’s Issues tab to open new tickets, assign them to team members, tag with custom labels, group into milestones, and comment to collaborate on bug fixes or feature requests.

Tags: Gitea Git Self-Hosted Go Language DevOps Tools

Posted on Sun, 07 Jun 2026 16:44:35 +0000 by clem_c_rock