Files
2026-06-09 18:40:21 +02:00

5.6 KiB


title: Gitea created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, development, forge, git, ci-cd] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Development, https://github.com/go-gitea/gitea]

💻 Gitea

Forge Git légère et auto-hébergeable — clone communautaire de Gitea, écrite en Go, conçue pour tourner sur du petit matériel (Raspberry Pi, NAS).

📋 Informations Générales

Attribut Valeur
Nom Gitea
Slug gitea
Description Forge Git légère, écrite en Go, auto-hébergeable
Site officiel https://about.gitea.com
Repository https://github.com/go-gitea/gitea
Stars 56 155
Licence MIT
Langage principal Go
Catégorie Development
Tags [catalogue, development, forge, git, ci-cd]

📝 Description

Gitea est une forge Git légère écrite en Go, conçue pour s'auto-héberger sur du matériel modeste. Initialement dérivée de Gogs (2016), Gitea a depuis pris son indépendance technique et sa communauté, et constitue aujourd'hui l'une des forges open source les plus populaires, aux côtés de GitLab CE et Forgejo.

Fonctionnalités : hébergement de dépôts Git, pull requests, issues, wiki, releases, packages registry (Docker, npm, Maven, etc.), actions CI (Gitea Actions, compatible syntaxe GitHub Actions), projets kanban, pages statiques. Le tout fonctionne sur un binaire unique ~100 Mo avec SQLite, ou avec PostgreSQL/MySQL pour la production. RAM requise : ~256 Mo pour 100 utilisateurs.

Modèle de licence : 100 % MIT, pas de version payante. La société Gitea Ltd. (cofondée par les mainteneurs principaux) vend du support commercial et une offre cloud gitea.com, mais le code reste entièrement libre. Un fork communautaire, Forgejo, est né en 2022 suite à des divergences sur la gouvernance : Forgejo est plus conservateur, dirigé par une fondation à but non lucratif, sans société commerciale. Pour un self-host 100 % communautaire, beaucoup choisissent Forgejo.

🚀 Installation

Via Docker (recommandé)

# docker-compose.yml
version: "3.8"
services:
  gitea:
    image: gitea/gitea:1.22
    container_name: gitea
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - GITEA__database__DB_TYPE=sqlite3  # ou postgres
      - GITEA__server__ROOT_URL=https://git.example.com
      - GITEA__server__DOMAIN=git.example.com
    restart: unless-stopped
    volumes:
      - ./data:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"   # web UI
      - "2222:22"     # SSH Git

Installation manuelle

# Binaire Linux x86_64
wget -O gitea https://dl.gitea.com/gitea/1.22/gitea-1.22-linux-amd64
chmod +x gitea
sudo ./gitea web --port 3000

# Service systemd minimal
sudo tee /etc/systemd/system/gitea.service <<EOF
[Unit]
Description=Gitea
After=syslog.target
[Service]
User=git
ExecStart=/usr/local/bin/gitea web
Restart=always
[Install]
WantedBy=multi-user.target
EOF

⚙️ Configuration

  • ROOT_URL et DOMAIN : doivent pointer vers l'URL publique (HTTPS) — utilisé dans les webhooks et les liens d'email.
  • Base de données : SQLite pour <50 utilisateurs, basculer sur PostgreSQL au-delà (migration via gitea doctor --run-cli).
  • [service] DISABLE_REGISTRATION : true si l'instance est privée, ou utiliser une whitelist d'emails.
  • [server] SSH_DOMAIN / SSH_PORT : configurer pour git@git.example.com:user/repo (port 22 interne mappé en 2222 sur l'hôte).
  • Backups : gitea dump (commande intégrée) génère une archive complète (BDD + repos + LFS).

🔗 Alternatives

  • Forgejo — Fork communautaire de Gitea, gouvernance par fondation, plus conservateur.
  • Gogs — La forge « ancêtre » de Gitea, encore plus minimaliste, codebase différente aujourd'hui.
  • GitLab CE — Forge complète (CI/CD, registry, pages) mais lourde (~4 Go RAM minimum, plus complexe à maintenir).
  • OneDev — Forge DevOps intégrée (Git + CI/CD + Kanban + packages) en Java.

🔒 Sécurité

  • Deux points d'entrée : HTTP (UI + API) et SSH (push Git) — durcir les deux : HTTPS obligatoire pour le web, et le port SSH doit être exposé derrière un reverse-proxy ou mappé.
  • Clés SSH : Gitea peut gérer un serveur SSH interne, ou réutiliser OpenSSH de l'hôte (recommandé en production).
  • Mises à jour : Gitea publie des correctifs de sécurité fréquents, automatiser les updates via Watchtower ou Renovate.
  • 2FA : à activer pour tous les comptes admin ([openid] ENABLE_OPENID_SIGNIN, TOTP natif dans l'UI).
  • Webhook secrets : si vous reliez Gitea à un CI externe, toujours signer les webhooks (Gitea supporte HMAC-SHA256).

📚 Ressources

🔗 Pages Liées