Gitea : votre petit serveur Git !

Tutoriel Gitea

Tutorial Thumbnail

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 😉


Prérequis

Afin de réaliser l'installation de Gitea sur votre serveur, quelques prérequis sont nécessaires :

  • Une machine Linux : Ubuntu, Debian ou autre distribution.
  • 1 cƓur CPU.
  • 512MB de mĂ©moire vive (RAM) de disponible.
  • 8GB de libre sur le disque (sans prendre en charge les futures dĂ©pĂŽts qui seront crĂ©Ă©s sur le serveur).
  • Permissions sudo.


Connexion en SSH Ă  la machine

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


Commandes internes au Linux

Mise Ă  jour du systĂšme

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



Installation des dépendances

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


Installation de MariaDB

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.



Installation du paquet

On effectue l'installation du serveur et ainsi que du client de connexion MariaDB :

sudo apt install mariadb-{client,server}


Configuration du serveur SQL

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 :

  • Enter current password for root (enter for none) : EntrĂ©e.
  • Set root password? [Y/n] Y.
  • Saisir 2 fois le mot de passe pour le compte "root".
  • Remove anonymous users? Y.
  • Disallow root login remotely? Y.
  • Remove test database and access to it? Y.
  • Reload privilege tables now? Y.


Création et configuration de la base de données

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.


Connexion Ă  MariaDB

On effectue la connexion en tant que "root" :

sudo mysql -u root -p


Suite à cette commande votre mot de passe root, vous sera demandé.


Création et configuration de la base données

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;


Configuration de MariaDB

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


Installation du serveur Gitea

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.


Création de l'utilisateur git

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...


Téléchargement du binaire

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


Création du service pour 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.


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 ! 😎

Niveau DĂ©butant

Technologie utilisée :

Proposer une modification
Antoine
Par Antoine
Rédigé le Mardi 15 Novembre 2022