Add gitea doc

This commit is contained in:
Romain de Laage 2020-07-22 18:57:13 +02:00
parent 1fec1e6da4
commit 5c1980ca7c
Signed by: rdelaage
GPG Key ID: 534845FADDF0C329
1 changed files with 88 additions and 0 deletions

View File

@ -0,0 +1,88 @@
---
title: "Mettre en place un serveur gitea"
---
# Gitea
Gitea est un service de forge logicielle basé sur Git. Il permet de gérer des dépôts, de gérer des organisations, des issues, des wikis, ... C'est un programme écrit en Go qui est assez simple d'installation et d'administration.
**On suppose qu'un serveur *PostgreSQL* a déjà été installé au préalable !**
Cette documentation est largement inspirée de la [documentation officielle](https://docs.gitea.io/en-us/).
## Préparer la base de données
On commence pour plus de sécurité par changer le type de chiffrement utilisé, en effet le chiffrment md5 est utilisé par défaut mais n'est plus le meilleur, on préfèrera utiliser le chiffrement SCRAM-SHA-256. Pour faire cela on édite le fichier `postgres.conf` (son emplacement peut changer selon la distribution) et on remplace
```
password_encryption = md5
```
par
```
password_encryption = scram-sha-256
```
puis on se connecte au shell postgres en entrant `sudo -u postgres psql` pour créer un utilisateur pour gitea :
```
CREATE ROLE gitea WITH LOGIN PASSWORD '<mot de passe fort>';
```
on crée ensuite la base de données :
```
CREATE DATABASE giteadb WITH OWNER gitea TEMPLATE template0 ENCODING UTF8 LC_COLLATE 'en_US.UTF-8' LC_CTYPE 'en_US.UTF-8';
```
Enfin on autorise les connection en éditant le fichier `pg_hba.conf` :
* S'il s'agit d'une bdd locale :
```
local giteadb gitea scram-sha-256
```
* S'il s'agit d'une bdd distante (penser à changer l'IP) :
```
host giteadb gitea 192.0.2.10/32 scram-sha-256
```
## Mettre en place le serveur
{{< hint warning >}}
D'abord pensez à vérifier que Git est installé (`git --version` par exemple) sinon faites le.
{{< /hint >}}
On va commencer par créer un utilisateur git pour le serveur :
```
adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git
```
On va baser notre installation dans le dossier /DATA/gitea qu'il faut donc créer au préalable et on s'y rend `cd /DATA/gitea`. Dans celui-ci on crée les dossiers config, custom, data, log et versions avec la commande `mkdir {config,custom,data,log,versions}`. On peut ensuite télécharger la dernière version de gitea (pensez à remplacer <version> et <arch> avec les numéros de version et l'architecture qui conviennent, par exemple 1.12.2 et arm-6) avec la commande `wget -O versions/gitea-<version> https://dl.gitea.io/gitea/<version>/gitea-<version>-linux-<arch>` que l'on rend exécutable en lançant `chmod +x versions/gitea-<version>` puis on termine en créant un lien symbolique à la racine du dossier `ln -s /DATA/versions/gitea-<versions> /DATA/gitea-latest`. Ainsi pour mettre à jour l'exécutable il suffira de télécharger la dernière versions de la même manière qu'ici et de mettre à jour le lien symbolique, aussi rétrograder son instance vers une ancienne version se fera très simplement.
On va attribuer le dossier de gitea à l'utilisateur git avec `chown -R git:git /DATA/gitea` puis changer les permissions avec `chmod -R 750 /DATA/gitea`. Enfin on crée un fichier `gitea.service` par exemple `nano /DATA/gitea/gitea.service` et on y place ce contenu :
```
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
Requires=postgresql.service
[Service]
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/DATA/gitea/
ExecStart=/DATA/gitea/gitea-latest web
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/DATA/gitea
[Install]
WantedBy=multi-user.target
```
On finit par activer le système en faisant `sudo systemctl enable --now /DATA/gitea/gitea.service`. On peut modifier les droit pour plus de sécurité maintenant avec `chmod 640 /DATA/gitea/config/app.ini`.