Aller au contenu

Gitea : installation sur Ubuntu

Gitea est un service d’hébergement Git léger (dépôts, demandes de fusion, tickets, CI). Ce guide l’installe sur Ubuntu 24.04 et 26.04 à partir du binaire officiel, avec la base de données SQLite par défaut : aucun serveur de base de données à installer. Les exemples utilisent des noms génériques (git.exemple.com).

Base Convient pour
SQLite (défaut) Un usage personnel ou une petite équipe (quelques dizaines d’utilisateurs) : installation immédiate, sauvegarde simple, aucun service supplémentaire
MySQL, PostgreSQL Beaucoup d’utilisateurs ou d’activité, besoin de haute disponibilité (voir Mise à jour et maintenance pour migrer plus tard)
  • Ubuntu 24.04 ou 26.04, un utilisateur avec sudo.
  • Git installé (voir Installer Git sur Ubuntu) : sudo apt install git.
  • Un nom de domaine pointant vers le serveur, pour un accès en HTTPS (via Caddy).

Gitea tourne sous un utilisateur dédié, git, sans droits d’administration :

Fenêtre de terminal
sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' \
--group --disabled-password --home /home/git git
Fenêtre de terminal
sudo mkdir -p /var/lib/gitea/{custom,data,log}
sudo chown -R git:git /var/lib/gitea
sudo chmod -R 750 /var/lib/gitea
sudo mkdir /etc/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea
Dossier Contenu
/var/lib/gitea/data Base SQLite, dépôts, pièces jointes, index
/var/lib/gitea/custom Personnalisation (modèles, logo)
/var/lib/gitea/log Journaux
/etc/gitea Configuration app.ini

Remplacer 28.0.0 par la dernière version indiquée sur dl.gitea.com/gitea.

Fenêtre de terminal
VERSION=28.0.0
cd /tmp
curl -fsSLO "https://dl.gitea.com/gitea/${VERSION}/gitea-${VERSION}-linux-amd64"
curl -fsSLO "https://dl.gitea.com/gitea/${VERSION}/gitea-${VERSION}-linux-amd64.sha256"
curl -fsSLO "https://dl.gitea.com/gitea/${VERSION}/gitea-${VERSION}-linux-amd64.asc"

Vérifier l’empreinte (somme de contrôle) :

Fenêtre de terminal
sha256sum -c "gitea-${VERSION}-linux-amd64.sha256"

Vérifier la signature (le résultat doit indiquer « Bonne signature de Teabot » et l’empreinte principale 7C9E 6815 2594 6888 62D6 2AF6 2D9A E806 EC15 92E2) :

Fenêtre de terminal
gpg --keyserver keys.openpgp.org --recv 7C9E68152594688862D62AF62D9AE806EC1592E2
gpg --verify "gitea-${VERSION}-linux-amd64.asc" "gitea-${VERSION}-linux-amd64"

Un avertissement « clef non certifiée » est normal ; ce qui compte est la bonne signature avec l’empreinte ci-dessus. Installer :

Fenêtre de terminal
sudo install -m 755 "gitea-${VERSION}-linux-amd64" /usr/local/bin/gitea
gitea --version

Pour une machine ARM, remplacer amd64 par arm64.

Fenêtre de terminal
sudo tee /etc/systemd/system/gitea.service <<'CONF'
[Unit]
Description=Gitea (Git with a cup of tea)
After=network.target
[Service]
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
Restart=always
RestartSec=2s
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
[Install]
WantedBy=multi-user.target
CONF
sudo systemctl daemon-reload
sudo systemctl enable --now gitea
systemctl status gitea

Gitea écoute alors sur http://127.0.0.1:3000 (adresse par défaut : toutes les interfaces, port 3000).

Ouvrir http://adresse-du-serveur:3000/install dans un navigateur (par un tunnel SSH si le serveur n’est pas joignable : ssh -L 3000:127.0.0.1:3000 utilisateur@serveur, puis http://127.0.0.1:3000/install).

Réglage Valeur conseillée
Type de base de données SQLite3 (chemin par défaut /var/lib/gitea/data/gitea.db)
Titre du site Libre
Dossier racine des dépôts /var/lib/gitea/data/gitea-repositories
Utilisateur d’exécution git
Domaine du serveur, URL de base Le nom de domaine public et son URL HTTPS (https://git.exemple.com/)
Port d’écoute HTTP 3000
Compte administrateur Créer le premier administrateur ici

Dans les paramètres facultatifs, cocher « Désactiver l’inscription » si le serveur ne doit pas accepter de nouveaux comptes ouverts.

Après l’installation, restreindre les droits du fichier de configuration :

Fenêtre de terminal
sudo chmod 750 /etc/gitea
sudo chmod 640 /etc/gitea/app.ini

Installation sans assistant : configuration préparée

Section intitulée « Installation sans assistant : configuration préparée »

Pour un serveur automatisé, écrire /etc/gitea/app.ini avant le premier démarrage (voir Configuration) avec INSTALL_LOCK = true, puis créer l’administrateur en ligne de commande :

Fenêtre de terminal
alias gitea-cli='sudo -u git gitea --config /etc/gitea/app.ini --work-path /var/lib/gitea'
Fenêtre de terminal
gitea-cli admin user create --admin --username admin --email admin@exemple.com --random-password --must-change-password
Fenêtre de terminal
curl -s http://127.0.0.1:3000/api/v1/version # {"version":"28.0.0"}
gitea-cli admin user list
sudo journalctl -u gitea -n 50 --no-pager
git.exemple.com {
reverse_proxy 127.0.0.1:3000
request_body {
max_size 100MB
}
}

Voir Installer Caddy sur Ubuntu. max_size limite la taille des envois par HTTP (dépôts volumineux : augmenter la valeur).

Fenêtre de terminal
sudo systemctl disable --now gitea
sudo rm /usr/local/bin/gitea /etc/systemd/system/gitea.service
Symptôme Piste
Le service ne démarre pas sudo journalctl -u gitea -n 50, puis vérifier les droits de /var/lib/gitea (propriétaire git)
Failed to initialize ... permission denied sudo chown -R git:git /var/lib/gitea
La page d’installation n’apparaît pas Port 3000 fermé : sudo ufw allow 3000/tcp (provisoirement) ou tunnel SSH
Après installation : liens de dépôt en localhost ROOT_URL et DOMAIN à corriger dans app.ini (voir Configuration)
Git version too old Mettre à jour Git (sudo apt install git, ou PPA pour Ubuntu 24.04)

Ubuntu 24.04 et 26.04 : différences à connaître

Section intitulée « Ubuntu 24.04 et 26.04 : différences à connaître »

L’installation est identique sur les deux versions. Git est fourni en version 2.43 (24.04) et 2.53 (26.04), toutes deux compatibles avec Gitea : consulter la documentation de la version de Gitea pour la version minimale de Git.