Aprilas Wiki

Wiki personnel de Thibauld Feneuil

Outils pour utilisateurs

Outils du site


server:free:gitea

Ceci est une ancienne révision du document !


Gitea

Préliminaire

Pour pouvoir utiliser Gitea, il faut d'abord installé Git sinon il n'y a aucun espoir d'aller jusqu'au bout.

apt-get install get

Installation

Pour d'abord, télécharge Gitea (va sur ce site pour trouver la dernière version) et rend le fichier exécutable.

wget -O gitea https://dl.gitea.io/gitea/1.9.3/gitea-1.9.3-linux-amd64
chmod +x gitea

Il faut vérifier la signature GPG pour éviter toutes modifications non souhaitées sur le fichier téléchargé. Télécharge la signature

wget -O gitea https://dl.gitea.io/gitea/1.9.3/gitea-1.9.3-linux-amd64.asc

et teste le fichier

gpg --keyserver pgp.mit.edu --recv 7C9E68152594688862D62AF62D9AE806EC1592E2
gpg --verify gitea-1.9.3-linux-amd64.asc gitea-1.9.3-linux-amd64

Test

Et présent, il est préférable de faire un test. Lance la commande suivante (pour l'arrêter, utilise Ctrl+C).

./gitea web

Préparation de Apache2

Gitea sous Apache

Commence par créer le certificat SSL pour https://git.aprilas.fr.

sudo /etc/init.d/apache2 stop
/opt/letsencrypt/letsencrypt-auto --rsa-key-size 4096 certonly --standalone -d git.aprilas.fr
sudo /etc/init.d/apache2 start

Crée le fichier /etc/apache2/sites-available/gitea.conf avec le contenu suivant :

<VirtualHost *:80>
        ServerAdmin admin@aprilas.fr
        ServerName git.aprilas.fr

        RewriteEngine on
        RewriteRule ^(.*) https://%{SERVER_NAME}$1 [R,L]
</VirtualHost>

<VirtualHost *:443>
        ServerAdmin admin@aprilas.fr
        ServerName git.aprilas.fr

        Include /etc/letsencrypt/options-ssl-apache.conf
        SSLCertificateFile /etc/letsencrypt/live/git.aprilas.fr/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/git.aprilas.fr/privkey.pem

        ErrorLog /var/log/apache2/gitea.log

        ProxyPreserveHost On
        AllowEncodedSlashes NoDecode

        <Location />
                ProxyPass "http://localhost:3000/"
                Require all granted
                ProxyPassReverse "http://localhost:3000/"
                ProxyPassReverse "http://git.aprilas.fr/"
        </Location>
</VirtualHost>

Et maintenant,

a2ensite gitea
a2enmod rewrite ssl proxy proxy_http
/etc/init.d/apache2 reload

Configuration

Préparation de l'environnement

Crée un utilisateur pour Gitea (ex. git)

adduser \
   --system \
   --shell /bin/bash \
   --gecos 'Git Version Control' \
   --group \
   --disabled-password \
   --home /home/git \
   git

Création de l'arborescence des fichiers

mkdir -p /var/lib/gitea/{custom,data,log}
mv ~/gitea /var/lib/gitea/
chown -R git:git /var/lib/gitea/
chmod -R 750 /var/lib/gitea/

ln -s /var/lib/gitea/gitea /usr/local/bin/

Préparation de la base de données MySQL

Crée la base de données de Gitea sur le serveur MySQL.

En supposant que tu en dispose, connecte-toi à PHPmyAdmin en tant qu'administrateur. Crée une base de donnée avec

  • gitea comme nom
  • uft8_general_ci comme encodage

Puis, crée un utilisateur gitea et donne lui tous les droits sur la base “gitea”.

Configuration initiale

Lance Gitea manuellement

sudo -u git /var/lib/gitea/gitea web

puis, va sur le site https://git.aprilas.fr/install et renseigne les paramètres suivants :

Paramètres de la base de données

  • Type de base de données : MySQL
  • Hôte : localhost
  • Nom d'utilisateur : gitea
  • Mot de passe : ******
  • Nom de base de données : gitea
  • Jeu de caractères : utf8

Configuration générale

  • Titre du site : Gitea : Git with a cup of tea
  • Emplacement racine des dépôts : /home/git/gitea-repositories
  • Répertoire racine Git LFS : /var/lib/gitea/data/lfs
  • Exécuter avec le compte d'un autre utilisateur : git
  • Domaine du serveur SSH : git.aprilas.fr
  • Port du serveur SSH : 22
  • Port d'écoute HTTP de Gitea : 3000
  • URL de base de Gitea : https://git.aprilas.fr/
  • Chemin des fichiers log : /var/lib/gitea/log

Paramètres facultatifs

  • Hôte SMTP : aprilas.fr
  • Envoyer les e-mails en tant que : gitea@aprilas.fr
  • Utilisateur SMTP : aprilas
  • Mot de passe SMTP : ******
  • Exiger la confirmation de l'email lors de l'inscription : OUI
  • Activer les notifications par e-mail : OUI
  • Désactiver le formulaire d'inscription : OUI
  • Domaine pour les e-mails cachés : aprilas.fr
  • Nom d’utilisateur administrateur : admin
  • Mot de passe : ******
  • Confirmer le mot de passe : ******
  • Adresse e-mail : admin@aprilas.fr

Et à présent, tu peux arrêter Gitea et mettre le fichier de configuration généré à sa place définitive :

mkdir /etc/gitea
cp /var/lib/gitea/custom/conf/app.ini /etc/gitea
chown -R root:git /etc/gitea
chmod 750 /etc/gitea
chmod 640 /etc/gitea/app.ini

Exécuter Gitea

Création d'un fichier de service pour démarrer automatiquement

Crée le fichier /etc/systemd/system/gitea.service.

sudo vim /etc/systemd/system/gitea.service

Et rentre les données suivantes :

[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
###
# Don't forget to add the database service requirements
###
#
Requires=mysql.service
#Requires=mariadb.service
#Requires=postgresql.service
#Requires=memcached.service
#Requires=redis.service
#
###
# If using socket activation for main http/s
###
#
#After=gitea.main.socket
#Requires=gitea.main.socket
#
###
# (You can also provide gitea an http fallback and/or ssh socket too)
#
# An example of /etc/systemd/system/gitea.main.socket
###
##
## [Unit]
## Description=Gitea Web Socket
## PartOf=gitea.service
##
## [Socket]
## ListenStream=
## NoDelay=true
##
## [Install]
## WantedBy=sockets.target
##
###

[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=git
Group=git
WorkingDirectory=/var/lib/gitea/
# If using unix socket: Tells Systemd to create /run/gitea folder to home gitea.sock
# Manual cration would vanish after reboot.
#RuntimeDirectory=gitea
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
# If you want to bind Gitea to a port below 1024, uncomment
# the two values below, or use socket activation to pass Gitea its ports as above
###
#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
#AmbientCapabilities=CAP_NET_BIND_SERVICE
###

[Install]
WantedBy=multi-user.target

Activer et démarrer Gitea en boot.

sudo systemctl enable gitea
sudo systemctl start gitea

Gitea devrait être disponible à https://git.aprilas.fr, et devrait le rester, même après le redémarrage du serveur.

Configuration de LDAP

Créer un nouvel utilisateur en lecture seule

Crée l'utilisateur suivant readonly via LAM.

dn: cn=readonly,dc=aprilas,dc=fr
cn: readonly
description: LDAP administrator
objectclass: simpleSecurityObject
objectclass: organizationalRole
objectclass: top
userpassword: {SSHA}R0UUkt4JDsvpkVgEDk8+8pmHwzUOp79g

Puis, modifie l'ACL du serveur LDAP,

...

Créer les groupes spécifiques à Gitea

Crée les groupes git-users et git-admins sur ou=Groups,dc=aprilas,dc=fr :

cn: git-users
member: uid=tfeneuil,ou=People,dc=aprilas,dc=fr
objectclass: groupOfNames
objectclass: top
cn: git-admins
member: uid=tfeneuil,ou=People,dc=aprilas,dc=fr
objectclass: groupOfNames
objectclass: top

Configuration de Gitea

Connecte toi sur Gitea avec un compte administrateur. Va dans “Administration du site”, puis dans l'onglet “Sources d'authentification”.

Ajoute une source d'authentification.

  • Type d'authentification : LDAB (via BindDN)
  • Nom de l'authentification : Aprilas LDAP
  • Protocole de sécurité : LDAPS
  • Hôte : ldap.aprilas.fr
  • Port : 636
  • Bind DN : cn=readonly,dc=aprilas,dc=fr
  • Bind mot de passe :
  • Base de recherche des utilisateurs : ou=People,dc=aprilas,dc=fr
  • Filtre utilisateur : (&(memberof=cn=git-users,ou=Groups,dc=aprilas,dc=fr)(uid=%s))
  • Filtre administrateur : (memberof=cn=git-admins,ou=groups,dc=ejnserver,dc=fr)
  • Attribut nom d'utilisateur : uid
  • Attribut prénom : givenName
  • Attribut nom de famille : sn
  • Attribut e-mail : mail
  • Utiliser la recherche paginée : NON
  • Aller chercher les attributs dans le contexte de liaison DN : NON ?
  • Ne pas vérifier TLS : NON
  • Activer la synchronisation des utilisateurs : OUI
  • Cette source d'authentification : OUI
server/free/gitea.1571943037.txt.gz · Dernière modification: 2019/10/24 20:50 par tfeneuil