Services Linux 2024-06-10

Installation Gitea

Documentation d'installation du service Gitea sur Debian 13

Guide d'installation et de configuration de Gitea avec Apache2 et MariaDB


Informations Generales

  • IP : 10.193.127.12
  • ID : 17341
  • Administrateur : Root / Mathys : Not24get
  • Port SSH : 22000

Prerequis

Avant de commencer, assurez-vous d'avoir :

  • Une machine virtuelle avec Debian installée.
  • Les droits d'administration (root).
  • Une connexion Internet fonctionnelle.
  • Des connaissances de base en administration Linux.

Sommaire

  1. Partitionnement des disques et configuration LVM

    1.1 Partitionnement de base

    1.2 Configuration LVM

  2. Creation du volume logique pour Gitea

    2.1 Verification de l'espace disponible

    2.2 Creation du volume logique

    2.3 Formatage et montage

    2.4 Configuration du montage automatique

  3. Installation et configuration de MariaDB

    3.1 Installation du serveur

    3.2 Securisation basique

    3.3 Creation de la base de données

  4. Installation et configuration de Gitea

    4.1 Preparation des utilisateurs et repertoires

    4.2 Installation du binaire

    4.3 Configuration de base

    4.4 Configuration du service systemd

  5. Configuration d'Apache comme reverse proxy

    5.1 Installation d'Apache et des modules

    5.2 Configuration du certificat SSL

    5.3 Configuration du vhost

  6. Finalisation et tests

    6.1 Verification des permissions

    6.2 Activation des services

    6.3 Tests de fonctionnement


1. Partitionnement des disques et configuration LVM

1.1 Partitionnement de base

Lors de l'installation de Debian, configurez les partitions comme suit :

  1. Selection du disque.
  2. Creation d'une partition primaire de 2 Mo au debut de l'espace (Methode : ne pas utiliser).
  3. Creation d'une partition de 512 Mo en FAT32 (Methode : ne pas utiliser).
  4. Creation d'une partition de 512 Mo en ext4 (Point de montage : /boot).
  5. Creation d'une derniere partition sur tout l'espace restant (Methode : Volume physique pour LVM).

1.2 Configuration LVM

Activez le gestionnaire de volumes logiques et créez un groupe de volumes nommé vg00 sur la partition LVM (/dev/sda4). Créez ensuite les volumes logiques selon ce tableau :

Point de montageTailleVolume LogiqueÉtiquetteFS
/boot512 MB-BOOTEXT4
/4 Gblv_rootROOTEXT4
/var3 Gblv_varVAREXT4
/var/log2 Gblv_var_logVARLOGEXT4
/tmp1 Gblv_tmpTMPEXT4
/usr3 Gblv_usrUSREXT4
/home2 Gblv_homeHOMEEXT4
/srv2 Gblv_srvSRVEXT4
/opt2 Gblv_optOPTEXT4
/var/www1 Gblv_var_wwwVARWWWEXT4
swap512 Mblv_swapSWAPswap

Terminez l'installation en installant GRUB sur /dev/sda.


2. Creation du volume logique pour Gitea

2.1 Verification de l'espace disponible

vgs lvs vgdisplay vg00 | grep -E 'VG Name|Free'

2.2 Creation du volume logique

lvcreate -L 512M -n lv_var_lib_gitea vg00

2.3 Formatage et montage

mkfs.ext4 /dev/vg00/lv_var_lib_gitea mkdir -p /var/lib/gitea

2.4 Configuration du montage automatique

Recuperez l'UUID avec blkid /dev/vg00/lv_var_lib_gitea et ajoutez-le dans /etc/fstab :

UUID=<UUID_RELEVE> /var/lib/gitea ext4 defaults,nodev,nosuid 0 2

Appliquez le montage :

mount -a


3. Installation et configuration de MariaDB

3.1 Installation du serveur

apt update && apt install -y mariadb-server systemctl enable --now mariadb

3.2 Securisation basique

mysql_secure_installation

3.3 Creation de la base de données

Connectez-vous à MariaDB : mysql -u root -p

CREATE DATABASE giteaDB; CREATE USER 'gitea'@'localhost' IDENTIFIED BY 'Not24get'; GRANT ALL PRIVILEGES ON giteaDB.* TO 'gitea'@'localhost'; FLUSH PRIVILEGES;


4. Installation et configuration de Gitea

4.1 Preparation des utilisateurs et repertoires

groupadd -f giteausers useradd -r -m -d /var/lib/gitea -s /usr/sbin/nologin -g giteausers gitea mkdir -p /etc/gitea /var/lib/gitea/{custom,data,log} chown -R gitea:giteausers /var/lib/gitea /etc/gitea chmod 750 /var/lib/gitea /etc/gitea

4.2 Installation du binaire

wget -O /usr/local/bin/gitea https://dl.gitea.com/gitea/1.24.5/gitea-1.24.5-linux-amd64 chmod +x /usr/local/bin/gitea

4.3 Configuration de base

Creez /etc/gitea/app.ini :

APP_NAME = Gitea
RUN_MODE = prod
RUN_USER = gitea

[database]
DB_TYPE  = mysql
HOST     = 127.0.0.1:3306
NAME     = giteaDB
USER     = gitea
PASSWD   = Not24get

[server]
PROTOCOL  = http
HTTP_ADDR = 127.0.0.1
HTTP_PORT = 3000
DOMAIN    = gitea.umpt.local
ROOT_URL  = https://gitea.umpt.local/`

4.4 Configuration du service systemd

Creez /etc/systemd/system/gitea.service :

[Unit]
Description=Gitea
After=network.target mariadb.service
Requires=mariadb.service

[Service]
User=gitea
Group=giteausers
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
Restart=always

[Install]
WantedBy=multi-user.target`

systemctl daemon-reload systemctl enable --now gitea


5. Configuration d'Apache comme reverse proxy

5.1 Installation d'Apache et des modules

apt install -y apache2 a2enmod proxy proxy_http ssl headers rewrite

5.2 Configuration du certificat SSL

Utilisation du certificat snakeoil par defaut :

  • /etc/ssl/certs/ssl-cert-snakeoil.pem
  • /etc/ssl/private/ssl-cert-snakeoil.key

5.3 Configuration du vhost

Creez /etc/apache2/sites-available/gitea-ssl.conf :

<VirtualHost *:443>
    ServerName gitea.umpt.local

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
    SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

    RequestHeader set X-Forwarded-Proto "https"
    RequestHeader set X-Forwarded-Ssl "on"

    ProxyPreserveHost On
    ProxyPass / [http://127.0.0.1:3000/](http://127.0.0.1:3000/)
    ProxyPassReverse / [http://127.0.0.1:3000/](http://127.0.0.1:3000/)
</VirtualHost>

a2ensite gitea-ssl.conf systemctl reload apache2


6. Finalisation et tests

6.1 Verification des permissions

chown -R gitea:giteausers /var/lib/gitea /etc/gitea chmod 750 /var/lib/gitea /etc/gitea

6.2 Activation des services

systemctl enable mariadb apache2 gitea

6.3 Tests de fonctionnement

ss -lntp | grep 3000 ss -lntp | grep ':443 '

Accedez à https://gitea.umpt.local/ pour finaliser via l'interface web, puis :

systemctl restart gitea