Skip to main content

GITEA

Documentation GITEA

Eythan RONCIER-LEMEE | 15/09/2025 BTS SIO SISR | IIA Laval | TP-GITEA.pdf

1. Notions

1.1. Debian

Système d'exploitation basé sur Linux, réputé pour sa stabilité et sa fiabilité. Il utilise la gestion de paquets APT et le format .deb.

1.2. Gitea

Service Git auto-hébergé, léger et performant, écrit en Go. Fournit une interface web similaire à GitHub avec gestion des tickets et pull requests.

1.3. Apache

Serveur web open source utilisé pour traiter les requêtes HTTP/HTTPS. Utilisé ici comme reverse proxy.

1.4. SSH (Secure Shell)

Protocole de communication sécurisé et chiffré pour l'administration à distance.

1.5. LVM (Logical Volume Manager)

Couche d'abstraction entre disques physiques et systèmes de fichiers, permettant le redimensionnement flexible des volumes logiques.

1.6. FHS (Filesystem Hierarchy Standard)

Norme définissant l'organisation des répertoires sur Linux (ex: /etc pour les confs, /var pour les données).

2. Installation de Debian

2.1. Réseaux

En l'absence de DHCP, configuration manuelle des paramètres :

  • Adresse IP, Masque, Passerelle et DNS.

  • Fichier de configuration : /etc/network/interfaces.

2.2. Nom de machine et Utilisateurs

  • Modification du hostname dans /etc/hostname et /etc/hosts.

  • Création de l'utilisateur root et d'un utilisateur standard.

  • Utilisation de adduser et usermod -aG sudo pour les droits d'administration.

2.3. Partitionnement LVM manuel

Structure type mise en place :

  • sda1 : BIOS GRUB (2 Mo)

  • sda2 : BIOS UEFI (512 Mo)

  • sda3 : /boot (512 Mo - EXT4)

  • sda4 : Volume physique LVM (27,4 Go)

Volumes logiques (vg00) :

  • lv_root (4 Go), lv_var (3 Go), lv_var_log (2 Go), lv_tmp (1 Go), lv_home (2 Go), lv_swap (512 Mo).

3. SSH

3.1. Installation et activation

apt update && apt install ssh
systemctl enable ssh
systemctl status ssh

3.2. Sécurisation par clés

  1. Génération d'une paire de clés (ex: PuTTYgen).

  2. Création du dossier ~/.ssh (chmod 700).

  3. Ajout de la clé publique dans ~/.ssh/authorized_keys (chmod 600).

  4. Désactivation de l'authentification par mot de passe dans /etc/ssh/sshd_config : PasswordAuthentication no.

4. MariaDB

4.1. Installation et Sécurisation

apt install mariadb-server
mariadb-secure-installation

4.2. Base de données pour Gitea

CREATE DATABASE giteaDB CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'gitea'@'localhost' IDENTIFIED BY 'votre_mot_de_passe';
GRANT ALL PRIVILEGES ON giteaDB.* TO 'gitea'@'localhost';
FLUSH PRIVILEGES;

5. Gitea

5.1. Compte de service

Création d'un utilisateur système dédié :

groupadd giteausers
adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /var/lib/gitea gitea

5.2. Installation du binaire

cd /usr/local/bin
wget -O gitea [https://dl.gitea.com/gitea/1.24.5/gitea-1.24.5-linux-amd64](https://dl.gitea.com/gitea/1.24.5/gitea-1.24.5-linux-amd64)
chmod +x gitea

5.3. Service Systemd

Configuration du fichier /etc/systemd/system/gitea.service pour automatiser le lancement avec l'utilisateur gitea.

systemctl enable gitea
systemctl start gitea

6. Reverse Proxy - Apache

6.1. Modules et Virtual Host

Activation des modules proxy : a2enmod proxy proxy_http ssl.

Configuration du fichier /etc/apache2/sites-available/gitea.conf :

<VirtualHost *:443>
    ProxyPreserveHost On
    ProxyRequests Off
    AllowEncodedSlashes NoDecode
    ProxyPass / http://localhost:3000/ nocanon
</VirtualHost>

6.2. Mise en ligne

a2ensite gitea.conf
apache2ctl configtest
systemctl restart apache2