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).
Pourquoi SQLite ?
Section intitulée « Pourquoi SQLite ? »| 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) |
Prérequis
Section intitulée « Prérequis »- 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).
1. Créer l’utilisateur système
Section intitulée « 1. Créer l’utilisateur système »Gitea tourne sous un utilisateur dédié, git, sans droits d’administration :
sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' \ --group --disabled-password --home /home/git git2. Créer les dossiers
Section intitulée « 2. Créer les dossiers »sudo mkdir -p /var/lib/gitea/{custom,data,log}sudo chown -R git:git /var/lib/giteasudo chmod -R 750 /var/lib/giteasudo mkdir /etc/giteasudo chown root:git /etc/giteasudo 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 |
3. Télécharger et vérifier le binaire
Section intitulée « 3. Télécharger et vérifier le binaire »Remplacer 28.0.0 par la dernière version indiquée sur dl.gitea.com/gitea.
VERSION=28.0.0cd /tmpcurl -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) :
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) :
gpg --keyserver keys.openpgp.org --recv 7C9E68152594688862D62AF62D9AE806EC1592E2gpg --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 :
sudo install -m 755 "gitea-${VERSION}-linux-amd64" /usr/local/bin/giteagitea --versionPour une machine ARM, remplacer amd64 par arm64.
4. Service systemd
Section intitulée « 4. Service systemd »sudo tee /etc/systemd/system/gitea.service <<'CONF'[Unit]Description=Gitea (Git with a cup of tea)After=network.target
[Service]Type=simpleUser=gitGroup=gitWorkingDirectory=/var/lib/gitea/ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.iniRestart=alwaysRestartSec=2sEnvironment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
[Install]WantedBy=multi-user.targetCONFsudo systemctl daemon-reloadsudo systemctl enable --now giteasystemctl status giteaGitea écoute alors sur http://127.0.0.1:3000 (adresse par défaut : toutes les interfaces, port 3000).
5. Assistant d’installation
Section intitulée « 5. Assistant d’installation »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 :
sudo chmod 750 /etc/giteasudo chmod 640 /etc/gitea/app.iniInstallation 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 :
alias gitea-cli='sudo -u git gitea --config /etc/gitea/app.ini --work-path /var/lib/gitea'gitea-cli admin user create --admin --username admin --email admin@exemple.com --random-password --must-change-passwordVérifier
Section intitulée « Vérifier »curl -s http://127.0.0.1:3000/api/v1/version # {"version":"28.0.0"}gitea-cli admin user listsudo journalctl -u gitea -n 50 --no-pagerExposer en HTTPS avec Caddy
Section intitulée « Exposer en HTTPS avec Caddy »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).
Désinstallation
Section intitulée « Désinstallation »sudo systemctl disable --now giteasudo rm /usr/local/bin/gitea /etc/systemd/system/gitea.serviceDépannage
Section intitulée « Dépannage »| 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.
Pour aller plus loin
Section intitulée « Pour aller plus loin »- Documentation officielle : docs.gitea.com
- Suite : Configuration