Installer Gitea sur Debian Stretch

Posté le sam., 09 déc. 2017

Mis à jour le 29 Dec 2017

Installer Gitea sur Debian Stretch

Pour les deux du fonds qui ne suivent pas, Gitea est un fork de Gogs, une forge logiciel écrite en Golang et tirant fortement son inspiration de Github. Pour en savoir plus sur les raisons de ce fork je vous invite à aller voir par là.

Nous allons installer gitea dans /opt, donc on créér le répertoire puis on télécharge le bon fichier

mkdir /opt/gitea && cd /opt/gitea
wget -O gitea https://dl.gitea.io/gitea/1.3.2/gitea-1.3.2-linux-amd64 && chmod +x gitea

Ensuite nous allons nous attaquer à la création de l’utilisateur et du groupe qui feront tourner gitea

addgroup gitea --system --quiet
adduser gitea --disabled-login --ingroup gitea --system --quiet --shell /bin/bash

On change les droits de /opt/gitea

chown -R gitea:gitea /opt/gitea

Ensuite il va falloir s’attaquer à la création du fichier de configuration, nous le mettrons dans /etc/gitea/conf. Donc même étape que pour /opt/gitea, on créer le répertoire et on attributs les bons droits

mkdir -p /etc/gitea/conf
chown -R gitea:gitea /etc/gitea

On télécharge le fichier de configuration

cd /etc/gitea/conf
wget -O app.ini https://raw.githubusercontent.com/go-gitea/gitea/master/custom/conf/app.ini.sample

Création de la base de donnée :

Ici, nous opterons pour MariaDB (fork de MySQL)

mysql -p
CREATE DATABASE gitea;
GRANT ALL PRIVILEGES ON gitea.* To 'gitea'@'localhost' IDENTIFIED BY 'MotDePasseUnique';

Pour la configuration on passe par le script d’installation via le navigateur. On pourra par la suite modifier le fichier de config pour ajuster certains paramètres.

Configuration du serveur web :

Plusieurs possibilités, en ce qui nous concerne on opte pour Apache qui va servir de proxy. On va ainsi rediriger les requêtes de notre domaine virtuel vers le port d’écoute de Gitea. Pour se faire, deux directives à ajouter à notre VirtualHost

ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/

Bien entendu, modifiez le port en fonction de votre configuration. Les configurations étant très variables d’une installation d’Apache à l’autre, je vous laisse le soin de faire la configuration complète. Un dernier point, vérifiez bien que le module proxy d’Apache est bien activé.

Création de l’admin :

Nous allons créer l’administrateur mais avant, ne pas oublier d’exporter les variables d’environnement USER et GITEA_CUSTOM

export USER=gitea
export GITEA_CUSTOM=/etc/gitea
./gitea admin create-user --name admin --password "MotDePasseUnique" --email p@àcrêpe.com --admin

Création du service :

On créér le fichier de configuration gitea.service dans /etc/systemd/system/ :

[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
After=mysqld.service
#After=postgresql.service
#After=memcached.service
After=redis.service

[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
RestartSec=2s
Type=simple
User=gitea
Group=gitea
WorkingDirectory=/opt/gitea
ExecStart=/opt/gitea/gitea web
Restart=always
Environment=USER=gitea GITEA_CUSTOM=/etc/gitea

[Install]
WantedBy=multi-user.target

Dans l’exemple ci-dessus, on peut voir que nous utilisons redis et mysql, si ce n’est pas le cas, commentez les lignes correspondantes. On ajoute ensuite gitea dans la liste des services démarrant automatiquement

systemctl enable gitea

On termine en relançant Apache et en démarrant le service gitea

systemctl restart apache2
systemctl start gitea

Vous devriez pouvoir vous connecter à Gitea en tant qu’administrateur et commencer à l’utiliser.

© octogene. Propulsé par Pelican. Thème adapté à partir de pelican-svbhack disponible sur github.