Tutoriel Gitea
Gitea est une forge logicielle libre en Go sous licence MIT, pour l'hébergement de développement logiciel, basé sur le logiciel de gestion de versions Git pour la gestion du code source, comportant un systÚme de suivi des bugs, un wiki, ainsi que des outils pour la relecture de code.
Ce tutoriel présentera l'installation et la configuration d'un petit serveur Git, sympa pour y héberger des projets perso comme des petits projets pro avec Git
Afin de réaliser l'installation de Gitea sur votre serveur, quelques prérequis sont nécessaires :
Afin de faciliter l'installation, il est conseillé de se connecter en SSH à la machine avec la commande suivante :
ssh nom_d_utilisateur@adresse_ip_de_la_machine -p numéro_de_port
Afin de se tenir aux derniÚres mises à jour, on mets à jour dans un premier temps la liste des dépÎts afin de prendre en compte nos ajouts et ainsi que la mise à jour des programmes existants sur la machine :
sudo apt update
sudo apt upgrade -y
Pour commencer dans l'installation de notre serveur Git "Gitea", on effectue l'installation des différentes dépendances sur le systÚme :
sudo apt install git unzip gnupg2
MariaDB est un systĂšme de gestion de base de donnĂ©es Ă©ditĂ© sous licence GPL. Il s'agit d'un fork communautaire de MySQL. La gouvernance du projet est assurĂ©e par la fondation MariaDB, et sa maintenance par la sociĂ©tĂ© Monty Program AB, crĂ©ateur du projet. Cette gouvernance confĂšre au logiciel lâassurance de rester libre.
On effectue l'installation du serveur et ainsi que du client de connexion MariaDB :
sudo apt install mariadb-{client,server}
AprÚs que l'installation est terminée, il faut effectuer ensuite la configuration de base de MariaDB :
sudo mysql_secure_installation
à la suite de cette commande, quelques questions seront posées :
Entrée
.Y
.Y
.Y
.Y
.Y
.Gitea fonctionne avec le moteur SQL. Pour son bon fonctionnement, il est donc nécessaire de créer une base de données qui lui sera réservée sur le serveur.
On effectue la connexion en tant que "root" :
sudo mysql -u root -p
Suite à cette commande votre mot de passe root, vous sera demandé.
Une fois connecté, nous voilà dans la console SQL. Activez la table InnoDB en utilisant la commande suivante :
SET GLOBAL innodb_file_per_table = ON;
InnoDB joue un rĂŽle trĂšs important pour stocker des donnĂ©es dans MySQL. InnoDB est un sous-systĂšme de stockage qui sâest distinguĂ©, ces derniĂšres annĂ©es, pour ses performances et sa fiabilitĂ© supĂ©rieures Ă ses concurrents. InnoDB a fini par devenir un vĂ©ritable moteur de stockage polyvalent pour MySQL. Au vu de sa grande fiabilitĂ© et de ses performances Ă©levĂ©es, MySQL en a fait son moteur de stockage par dĂ©faut Ă partir de sa version 5.6.
Ensuite, créez une base de données et ainsi que le compte utilisateur qui sera dédié à la base de Gitea, avec les commandes suivantes :
CREATE DATABASE gitea;
CREATE USER 'gitea'@'localhost' IDENTIFIED BY '{YOUR_PASSWORD_HERE}';
On accorde ensuite l'ensemble des privilÚges CRUD à la base de données à l'utilisateur et on n'oublie pas ensuite de définir le jeu de caractÚres de la base en utf8mb4
:
GRANT ALL ON gitea.* TO 'gitea'@'localhost' IDENTIFIED BY '{YOUR_PASSWORD_HERE}' WITH GRANT OPTION;
ALTER DATABASE gitea CHARACTER SET = utf8mb4 COLLATE utf8mb4_unicode_ci;
Maintenant, afin que les nouveaux droits attribuĂ©s soient pris en compte, il est nĂ©cessaire de lancer la requĂȘte FLUSH :
FLUSH PRIVILEGES;
EXIT;
AprÚs la création de la base de données, il faut éditer le fichier de configuration par défaut de MariaDB et y modifier certains paramÚtres :
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Ajoutez les lignes suivantes dans la section [mysqld]
:
innodb_file_format = Barracuda
innodb_large_prefix = 1
innodb_default_row_format = dynamic
On n'oublie pas de sauvegarder les modifications effectuées dans le fichier et on redémarre le service MariaDB afin d'appliquer les changements :
sudo systemctl restart mariadb
Une fois la base de donnĂ©es MariaDB fraichement installĂ©e, nous sommes prĂȘt dĂšs maintenant Ă effectuer l'installation de Gitea sur le serveur.
Avant de télécharger et d'installer Gitea, vous devrez créer un utilisateur distinct afin d'exécuter Gitea. Vous pouvez créer un nouvel utilisateur avec la commande suivante :
sudo adduser --system --group --disabled-password --shell /bin/bash --home /home/git --gecos 'Git Version Control' git
Cette commande ajoute un utilisateur au nom de "git", utilisateur systĂšme (--system
) appartenant Ă un groupe portant le nom d'utilisateur (--group
), sans mot de passe (--disabled-password
). On spécifie également le Shell avec le paramÚtre --shell
et ainsi que le chemin du dossier de travail de l'utilisateur (--home
). L'option --gecos
permets de spécifier directement l'information de compte tel que le nom complet, le numéro de téléphone...
Afin de démarrer l'installation, on commence par récupérer les différents fichiers afin d'installer le serveur. On effectuera ensuite quelques actions de configuration de fichiers (droits fichiers, création du service...). Enfin, une fois l'opération effectué, l'assistant Web sera accessible.
AprÚs avoir créé un nouvel utilisateur dédié au service, téléchargez la derniÚre version de Gitea, disponible sur le dépÎt de Gitea : https://dl.gitea.io/gitea :
Attention Ă bien prendre la version : "Current Release".
On va effectuer la récupération du binaire sur le serveur avec WGET
. Par exemple, si nous souhaitons récupérer la derniÚre version (ici la 1.17.2
) de Gitea, effectuez la commande suivante :
sudo wget https://dl.gitea.io/gitea/<VERSION>/gitea-<VERSION>-linux-amd64
Remplacez <VERSION> par le numéro de la derniÚre version de Gitea la plus récente.
Une fois téléchargé, copiez le binaire téléchargé dans le chemin du systÚme :
cp gitea-<VERSION>-linux-amd64 /usr/bin/gitea
On définit la permission d'exécution pour le binaire de Gitea :
sudo chmod 755 /usr/bin/gitea
Maintenant, créez un répertoire afin d'y stocker les différentes données et ainsi que les journaux d'évÚnements de Gitea :
sudo mkdir -p /etc/gitea /var/lib/gitea/{custom,data,indexers,public,log}
Enfin, il faut définir la propriété et la permission appropriées à tous les répertoires :
sudo chown git:git /etc/gitea /var/lib/gitea/{custom,data,indexers,public,log}
sudo chmod 750 /var/lib/gitea/{data,indexers,log}
sudo chmod 770 /etc/gitea
Il est nécessaire de créer un fichier de service systemd
afin de gérer Gitea à l'aide du gestionnaire System Daemon
:
sudo nano /etc/systemd/system/gitea.service
On ajoute ensuite les lignes suivantes :
[Unit]
Description=Gitea
After=syslog.target
After=network.target
After=mysql.service
[Service]
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/bin/gitea web -c /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
[Install]
WantedBy=multi-user.target
On sauvegarde, on ferme le fichier puis rechargez le démon systemd
avec la commande suivante :
sudo systemctl daemon-reload
Pour finir, il faut activer le service au démarrage et le démarrer :
sudo systemctl start gitea
sudo systemctl enable gitea
sudo systemctl status gitea
Le service doit normalement apparaitre comme étant en cours d'exécution.
Rendez-vous sur la page : http://<IP>:3000/
Suivez ensuite le setup d'installation :
Et voilĂ ! Gitea est installĂ© ! Maintenant vous avez votre propre serveur Git et vous ĂȘtes prĂȘt Ă vous lancer dans votre futur projet de dĂ©veloppement collaboratif avec la puissance de git !