Installation et configuration de Gitea
Pré requis
Les paquets suivants doivent être préalablement installés : * Mariadb * Git * Apache2 * Certbot (LetsEncrypt) * python3-certbot-apache
Mettre à jour Debian avec la commande apt update && apt upgrade -y
Création de la base de données
mysql -u root -p
CREATE DATABASE gitea;
CREATE USER 'gitea'@'localhost' IDENTIFIED BY 'mot_de_passe';
GRANT ALL PRIVILEGES ON gitea.* TO 'gitea'@'localhost';
FLUSH PRIVILEGES;
EXIT
Téléchargement et installation de Gitea
Télécharger le dernier binaire de Gitea depuis cette page de téléchargements
Exemple :
Rendre le fichier exécutable avec la commande chmod +x gitea
Déplacer le binaire dans un emplacement système avec la commande mv gitea /usr/local/bin/gitea
Création d'un utilisateur système pour Gitea
Configuration de Gitea
Créer les répertoires nécessaires
mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}
chown gitea:gitea /var/lib/gitea/{data,indexers,log}
chmod 750 /var/lib/gitea/{data,indexers,log}
Création d'un fichier de service systemd
Créer ce fichier avec la commande nano /etc/systemd/system/gitea.service
Ajouter le contenu suivant :
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
Requires=mariadb.service
[Service]
RestartSec=2s
Type=simple
User=gitea
Group=gitea
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
Restart=always
Environment=USER=gitea HOME=/home/gitea GITEA_WORK_DIR=/var/lib/gitea
[Install]
WantedBy=multi-user.target
Activation et démarrage du service Gitea
Configuration d'un hôte virtuel Apache
Depuis la console web du registrar, créer un enregistrement de type A pointant vers le serveur hébergeant Gitea pour l'adresse gitea.domaine.fr
Configuration de Apache
Activer le mode proxy de Apache
Activation du SSL
Créer un fichier de configuration pour l'hôte virtuel Gitea avec la commande nano /etc/apache2/sites-available/gitea.conf
Indiquer ceci :
<VirtualHost *:443>
ServerName gitea.domaine.fr
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:3000/
ProxyPassReverse / http://127.0.0.1:3000/
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/gitea.domaine.fr/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/gitea.domaine.fr/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"
</VirtualHost>
Indiquer à Certbot que nous ajoutons ce nouveau site gitea.domaine.fr avec la commande
Activer le nouvel hôte virtuel
Configuration de l'application
Cette étape permettra entre autre de générer le fichier de configuration /var/lib/gitea/custom/conf/app.ini
ou /etc/gitea/app.ini
Dans un navigateur, visiter le site créé http://gitea.domaine.fr
ou http://gitea.domaine.fr:3000
Indiquer le nom d'utilisateur de base de données, son mot de passe. Créer un administrateur.
Envoi d'un répertoire sur le repository Git
Pour ajouter un site mkdocs sur le repo Git, se rendre dans le répertoire de mkdocs.
Initialiser le dépôt pour mkdocs
Création d'un Dépôt sur Gitea
Aller sur l'instance Gitea, créer un nouveau dépôt pour le projet MkDocs.
Noter l'URL du dépôt (par exemple, http://gitea.domaine.com/username/mon-projet.git).
Lier le Dépôt Git au Dépôt Gitea
Lier le dépôt Git local au dépôt Gitea :
Pousser les changements sur Gitea
Pousser les changements du dépôt local vers Gitea :
Mise à Jour et Déploiement
Quand on met à jour la documentation, faire un commit des changements et les pousser sur Gitea :
Automatisation du Déploiement (Optionnel)
Pour automatiser le déploiement du site MkDocs chaque fois que l'on pousse des changements, utiliser des outils d'intégration continue/déploiement continu (CI/CD) compatibles avec Gitea, comme Drone CI, Jenkins, etc.
Ceci nécessite une configuration supplémentaire pour mettre en place des pipelines de déploiement automatique.
Drone est conseillé car il est hautement compatible avec Gitea.
Exemples concrets
Ajout d'un dossier local en tant que dépôt dans Git
Côté Gitea
Commencer par créer un dépôt depuis l'interface web de Gitea, par exemple mkdocs
.
Repérer l'URL sur la page du dépôt, nous en aurons besoin tout à l'heure. Elle ressemble à ceci : https://<serveur-gitea>/<utilisateur>/mkdocs.git
. Il peut être nécessaire de cliquer sur le bouton <> Code.
Côté serveur
Se rendre dans le répertoire contenant les données que l'on souhaite ajouter au dépôt Git. Par exemple cd /var/www/mkdocs
.
Initialiser un dépôt git avec la commande suivante :
.git
caché qui contiendra l'historique du dépôt.Ajouter les fichiers au dépôt avec cette commande :
Cela ajoute tous les fichiers et répertoires du répertoire /var/www/mkdocs au dépôt Git. Autrement dit, cela va permettre de générer un index des fichiers présents dans le répertoire où l'on est et enregistrer cet index dans le fichier
./.git/index
.Créer ensuite un premier "commit" avec la commande suivante :
Un commit est comme une sauvegarde de l'état du projet à un moment donné. Le message "-m" permet de décrire ce commit. Les fichiers sont alors copiés dans le répertoire
./.git/objects
.
Jonction du dépôt local avec le serveur Gitea
A présent que le dépôt existe localement et sur Gitea, il reste à établir la liaison entre les deux. Pour cela, nous aurons besoin de l'URL du dépôt Gitea visible depuis la page du dépôt sur Gitea. Dans le terminal, toujours dans le répertoire du dépôt, exécuter ceci :
Envoyer enfin les fichiers sur le serveur avec cette commande :
La branche "main" peut être adaptée. Cela envoie less fichiers et l'historique du dépôt local vers le dépôt Gitea. La première fois, l'option "-u" permet de créer la branche "main" sur Gitea et de la lier à la branche locale.
Conseils supplémentaires
.gitignore
Créer un fichier .gitignore dans /var/www/mkdocs
pour spécifier les fichiers et répertoires que l'on ne veut pas inclure dans le dépôt (fichiers temporaires, cache).
Mises à jour
Pour mettre à jour le dépôt Gitea après avoir apporté des modifications aux fichiers locaux, se dépacer dans le répertoire contenant les données puis lancer la commande git add .
, git commit
et git push
.