Quand on écrit des scripts, des pages web ou des petits programmes, on finit toujours par avoir des dossiers « projet-final », « projet-final-v2 » et « projet-final-vraiment ». Git règle ce problème en gardant l’historique de chaque modification. Gitea, c’est l’étape d’après : un serveur Git à soi, avec une interface web, installé sur sa propre machine. En clair, c’est son propre GitHub à la maison.
À quoi ça sert ?
- Garder l’historique de tous ses projets : on peut revenir à la version d’hier, voir ce qui a changé et pourquoi.
- Avoir une copie ailleurs que sur son PC : si le disque lâche, le code est toujours sur le serveur.
- Travailler depuis plusieurs machines : le PC du bureau, le portable, un Raspberry Pi… tout le monde récupère la même version.
- Consulter son code dans le navigateur : fichiers, différences entre versions, recherche, coloration syntaxique.
- Garder ses projets chez soi : rien ne part chez un hébergeur extérieur, les dépôts privés restent vraiment privés.
Gitea propose aussi des tickets (pour noter les bugs et les idées), un wiki par projet et même de l’automatisation, mais rien n’oblige à s’en servir. Il est écrit en Go, tient dans un seul programme et se contente de très peu : un vieux PC ou un Raspberry Pi suffit largement.
Comment ça fonctionne
Il faut distinguer deux choses. Git est le logiciel installé sur votre PC : c’est lui qui enregistre l’historique. Gitea est le serveur qui reçoit une copie de cet historique et l’affiche dans une page web. On travaille toujours en local, puis on « pousse » ses modifications vers le serveur.
| Mot | Ce que ça veut dire |
|---|---|
| Dépôt (repository) | Un projet suivi par Git : ses fichiers et tout leur historique. |
| Commit | Une photo du projet à un instant donné, avec un message qui explique le changement. |
| Push | Envoyer ses commits du PC vers le serveur Gitea. |
| Pull | Récupérer sur le PC les commits présents sur le serveur. |
| Clone | Télécharger un dépôt complet depuis le serveur, la première fois. |
| Branche | Une ligne de travail parallèle, pour tester une idée sans toucher à la version principale. |
Installer Gitea en deux minutes
Le plus simple est de passer par Docker (voir Docker simplement expliqué). Une seule commande suffit :
docker run -d --name gitea --restart unless-stopped \
-p 3000:3000 -p 2222:22 \
-v gitea:/data \
gitea/gitea:latest
On ouvre ensuite http://adresse-du-serveur:3000 dans le navigateur. Un assistant demande quelques réglages (la base SQLite par défaut convient très bien pour un usage personnel), puis on crée son compte. Le premier compte créé devient administrateur.
Variante : sur Proxmox, dans un conteneur LXC
Si vous avez un serveur Proxmox VE, il existe aussi un script tout prêt de la communauté community-scripts (voir aussi Les scripts Proxmox VE incontournables pour votre homelab). Il crée un conteneur LXC dédié et y installe Gitea, sans Docker. À lancer dans le Shell du nœud Proxmox (pas dans une VM) :
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/gitea.sh)"
Le script pose quelques questions (Debian 13 ou Alpine, réglages par défaut ou avancés) puis crée un conteneur non privilégié : 1 cœur, 1 Go de RAM et 8 Go de disque sous Debian, seulement 256 Mo et 1 Go sous Alpine. À la fin, il affiche l’adresse à ouvrir, du type http://ip-du-conteneur:3000, et on retombe sur le même assistant de configuration qu’avec Docker. Pour mettre Gitea à jour plus tard, il suffit de relancer la même commande à l’intérieur du conteneur.
Les commandes de base
Tout se fait avec la commande git, qui s’installe en une ligne (sudo apt install git sur Debian ou Ubuntu). À faire une seule fois, pour signer ses commits :
git config --global user.name "Votre nom"
git config --global user.email "vous@exemple.fr"
Mettre un projet existant sur Gitea
On crée d’abord un dépôt vide dans l’interface web de Gitea (bouton + puis Nouveau dépôt). Gitea affiche alors son adresse. Dans le dossier du projet, sur le PC :
cd mon-projet
git init # le dossier devient un dépôt Git
git add . # on sélectionne tous les fichiers
git commit -m "Premier commit"
git remote add origin http://adresse-du-serveur:3000/moi/mon-projet.git
git push -u origin main # envoi vers Gitea
Le -u n’est utile que la première fois : il mémorise la destination. Ensuite, un simple git push suffit. Si votre branche s’appelle master et non main, remplacez simplement le nom.
Le travail de tous les jours
Une fois le dépôt en place, on répète toujours le même petit cycle : modifier, enregistrer, envoyer.
git status # qu'est-ce qui a changé ?
git add fichier.py # ou « git add . » pour tout
git commit -m "Corrige le calcul de la fréquence"
git push # envoi vers le serveur
Le message du commit est important : dans six mois, c’est lui qui vous dira ce que vous avez fait. Mieux vaut « Corrige le calcul de la fréquence » que « modif ».
Sur une autre machine
git clone http://adresse-du-serveur:3000/moi/mon-projet.git # la première fois
git pull # ensuite, pour récupérer les dernières modifications
Regarder l’historique, revenir en arrière
git log --oneline # la liste des commits, un par ligne
git diff # ce qui a changé depuis le dernier commit
git restore fichier.py # annule les modifications pas encore enregistrées
Tout cela se voit aussi dans Gitea : chaque commit est cliquable et montre les lignes ajoutées en vert et supprimées en rouge.
Astuce : créer le dépôt directement par un push
Passer par l’interface web pour chaque nouveau projet devient vite lassant. Gitea peut créer le dépôt tout seul au premier git push. L’administrateur ajoute dans le fichier de configuration app.ini, section [repository] :
[repository]
ENABLE_PUSH_CREATE_USER = true
DEFAULT_PUSH_CREATE_PRIVATE = true
Après un redémarrage de Gitea, un git push vers une adresse qui n’existe pas encore crée le dépôt, privé par défaut.
Et GitHub, GitLab dans tout ça ?
Ils reposent exactement sur le même Git : les commandes ci-dessus fonctionnent à l’identique, seule l’adresse du serveur change. GitHub (Microsoft) est le grand service en ligne où vit l’essentiel des projets open source. GitLab existe en ligne et en version à installer soi-même, mais il est bien plus lourd et vise surtout les équipes et les entreprises.
Gitea, lui, c’est un Git personnel : léger, installé chez soi, pour ses propres projets. Rien n’empêche d’ailleurs de combiner les deux, en gardant tout sur son Gitea et en publiant sur GitHub seulement ce qu’on veut partager.