Installer un serveur Git avec Gitea

De Wiki Amis SH
Aller à la navigation Aller à la recherche



Le wiki : Accueil - Administrateur - Bureautique - Développeur - Intégrateur - Marketing - Multimédia - Objets numériques - Jeux - We make Hack


Installer un serveur Git avec Gitea

Introduction

Gitea est un fork de Gogs, une forge logiciel écrite en Golang et tirant fortement son inspiration de Github.
En savoir plus : https://blog.gitea.io/2016/12/welcome-to-gitea/

Installer Gitea depuis les sources

Prérequis

# Créer le sous-domaine gitea.domaine.fr et le rediriger vers l'adresse IP du serveur depuis l'interface OVH, ou de gestion de votre nom de domaine.
# Renseigner le VirtualHost avec la configuration web par défaut qui renseigne les lignes pour un certificat SSL.
# Arrêter Apache2 et créer un certificat Let's Encrypt pour ce domaine, puis, redémarrer Apache2.
# Installer git : sudo apt install git

Créer un utilisateur système pour faire tourner le service web Gitea

sudo adduser \
 --system \
 --shell /bin/bash \
 --gecos 'Utilisateur' \
 --group \
 --disabled-password \
 --home /home/serveur-gitea \
 serveur-gitea
# Afficher l'ID de l'utilisateur serveur-gitea et de son groupe.
id serveur-gitea
# Affiche :
uid=107(serveur-gitea) gid=113(serveur-gitea) groupes=113(serveur-gitea)

Télécharger le binaire pour installer Gitea

# Le binaire de Gitea est déposé dans le répertoire "/usr/local/bin/".
cd /usr/local/bin/
sudo wget -O /usr/local/bin/gitea https://dl.gitea.io/gitea/1.9.4/gitea-1.9.4-linux-amd64
sudo chown serveur-gitea:serveur-gitea /usr/local/bin/gitea
sudo chmod 755 /usr/local/bin/gitea
Ici c'est une version master qui a été installée ce qui n'est pas une bonne idée pour suivre les mises à jour.
La version master : 1.10.0+dev-359-gbcd4af483 built with GNU Make 4.1, go1.13.1 : bindata, sqlite, sqlite_unlock_notify
Une version 1.10.0-rc1 sera mise à disposition. Faire la mise à jour de cette version, puis, voir à coller aux versions stables.
La mise à jour a été effectuée vers la version 1.10.0-rc1 pour recoller à la branche de développement standard, voir plus bas pour la méthode de mise à jour.

Dernières modifications dans les versions de Gitea

Versions de Gitea et améliorations : https://github.com/go-gitea/gitea/blob/master/CHANGELOG.md

Configurations

# Le fichier de configuration app.ini est le fichier de configuration principal de Gitea.
# Il sera complété suite à l'installation depuis l'interface web.

Première proposition de structure pour Gitea d'après la documentation officielle

# C'est cette première proposition de structure qui est retenue.
# La documentation officielle enregistre les métadonnées dans le répertoire /var/lib/gitea/.
# C'est à partir de cet emplacement que le site peut être personnalisé et plus particulièrement en intervenant sur le dossier /var/lib/gitea/custom/.
sudo mkdir -p /var/lib/gitea/{custom,data,log}
sudo chown -R serveur-gitea:serveur-gitea /var/lib/gitea/
sudo chmod -R 750 /var/lib/gitea/
# La documentation officielle enregistre les fichiers de configurations dans le répertoire /etc.
sudo mkdir /etc/gitea
sudo mkdir /etc/gitea/keys
sudo touch /etc/gitea/app.ini
sudo chown -R serveur-gitea:serveur-gitea /etc/gitea/
sudo chmod 770 /etc/gitea
sudo chmod 750 /etc/gitea/keys

Deuxième proposition de structure pour Gitea afin de centraliser les données

# Pour des raisons de portabilité et de sauvegardes potentielles, on pourrait placer l'ensemble des dossiers dans un dossier /opt/gitea.
# Cette deuxième proposition de structure n'est pas retenue. Les exemples pour configurer cette deuxième proposition sont commentés dans le code ci-dessous et les exemples suivants.
# sudo mkdir -p /opt/gitea/{custom,data,indexers,keys,log,public}
# sudo chown serveur-gitea:serveur-gitea -R /opt/gitea
# sudo chmod 750 /opt/gitea/{data,indexers,keys,log}
# sudo touch /opt/gitea/app.ini
# sudo chmod 640 /opt/gitea/app.ini

Configurer le fichier app.ini

# Créer le répertoire LFS pour Linux From Scratch a renseigner dans la configuration.
# Créer le répertoire de journalisation a renseigner lors de l'installation.
sudo mkdir /home/serveur-gitea/LFS
sudo chown serveur-gitea:serveur-gitea -R /home/serveur-gitea/LFS/
sudo mkdir /var/log/gitea
sudo chown serveur-gitea:serveur-gitea -R /var/log/gitea
# Éditer la configuration du fichier app.ini
sudo nano /etc/gitea/app.ini
# sudo nano /opt/gitea/app.ini
APP_NAME = ~~~~~~~~ Gitea ~~~~~~~~ Git avec une tasse de thé ~~~~~~~~ Nom du site
RUN_USER = serveur-gitea
RUN_MODE = prod

# Pour une installation et un usage personnel en local sans certificat SSL :
# - Commenter les deux lignes qui appellent un certificat.
# - Désactiver SSH avec true.
# - Utiliser les adresses en http.

[server]
PROTOCOL         = https
ROOT_URL         = https://gitea.domaine.fr/
CERT_FILE        = /etc/gitea/keys/fullchain.pem
# CERT_FILE        = /opt/gitea/keys/fullchain.pem
KEY_FILE         = /etc/gitea/keys/privkey.pem
# KEY_FILE         = /opt/gitea/keys/privkey.pem
SSH_DOMAIN       = gitea.domaine.fr
DOMAIN           = gitea.domaine.fr
HTTP_PORT        = 3000
DISABLE_SSH      = false
SSH_PORT         = 22
LFS_START_SERVER = true
LFS_CONTENT_PATH = /home/serveur-gitea/LFS
# LFS_CONTENT_PATH = /opt/gitea/LFS
# Pour une installation et un usage personnel en local, utiliser les adresses en http.
# Commenter les deux lignes qui appellent un certificat.
# Désactiver SSH avec true.
# D'autres options peuvent être ajoutées dans le fichier de configuration app.ini une fois l'installation aboutie.
# Voir par la suite.

Les options de configuration complémentaires pour le fichier app.ini

Le fichier en exemple pour les options de configuration de Gitea depuis son fichier de configuration app.ini : https://github.com/go-gitea/gitea/blob/master/custom/conf/app.ini.sample
Explications des différentes options de configuration du serveur Gitea : https://docs.gitea.io/en-us/config-cheat-sheet/

Copier les certificats SSL de Let's Encrypt vers le répertoire keys créé pour Gitea

# Cette étape est inutile pour une installation en local qui ne nécessitera pas de certificat.
# L'emplacement des certificats de Gitea sont renseignés précédemment dans la configuration du fichier app.ini.
# Les deux fichiers suivants sont obtenu depuis les certificats de Let's Encrypt.
/etc/gitea/keys/privkey.pem
# /opt/gitea/keys/privkey.pem
/etc/gitea/keys/fullchain.pem
# /opt/gitea/keys/fullchain.pem
# Créer le dossier keys si il n'existe pas.
# Copier les certificats vers le répertoire "/etc/gitea/keys".
# Utiliser le répertoire "/opt/gitea/keys" si c'est la deuxième proposition de structure qui a été retenue.
sudo mkdir /opt/gitea/keys/
sudo cp /etc/letsencrypt/live/gitea.domaine.fr/privkey.pem /etc/gitea/keys/privkey.pem
# sudo cp /etc/letsencrypt/live/gitea.domaine.fr/privkey.pem /opt/gitea/keys/privkey.pem
sudo cp /etc/letsencrypt/live/gitea.domaine.fr/fullchain.pem /etc/gitea/keys/fullchain.pem
# sudo cp /etc/letsencrypt/live/gitea.domaine.fr/fullchain.pem /opt/gitea/keys/fullchain.pem
sudo chown -R serveur-gitea:serveur-gitea /etc/gitea/keys/
# sudo chown -R serveur-gitea:serveur-gitea /opt/gitea/keys/

Configurer le reverse proxy dans Apache2 pour un site en production

# Utiliser la version complète présente sur la page récapitulative des VirtualHosts.
# Activer le module proxy de Apache2 :
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer
sudo a2enmod proxy_connect
# Configurer le reverse proxy :
sudo nano /etc/apache2/sites-available/gitea.domaine.fr.conf
## ## ## Port 80 ## ## ##
<VirtualHost gitea.domaine.fr:80>
ServerName gitea.domaine.fr

# Ce vhost redirige de http vers https. 100% du trafic doit passer par https.
# Les informations complémentaires sont inutiles. Pas de documentRoot, pas de logs.

# La ligne suivante peut-être conservée dans le cas suivant :
# Forcer le renouvellement ou recréer le certificat Let's Encrypt.
# Renouveler avec : sudo certbot --force-renewal renew
DocumentRoot /var/www/gitea.domaine.fr

<IfModule mod_rewrite.c>
RewriteEngine on
# Redirection de http vers https.
RewriteCond %{HTTPS} off
# Le dossier .well-know de certbot doit être exclu de la réécriture d'URL.
RewriteRule (^|/)\.(?!well-known) - [F]
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
</IfModule>
</VirtualHost>

## ## ## Port 443 ## ## ##
<VirtualHost gitea.domaine.fr:443>
ServerName gitea.domaine.fr
ServerAdmin mail@visionduweb.com

SSLEngine on
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
ProxyPassReverseCookieDomain localhost gitea.domaine.fr
#Je n'ai pas eu besoin de ses lignes, sur aucune des deux structures d'installation.
#SSLCertificateFile /opt/gitea/keys/fullchain.pem
#SSLCertificateKeyFile /opt/gitea/keys/privkey.pem
SSLCertificateFile /etc/letsencrypt/live/gitea.domaine.fr/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/gitea.domaine.fr/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/gitea.domaine.fr/chain.pem

# Configurer Proxy permet d'inclure les sous répertoire dans ProxyPass.
# ProxyPass /dossier http://127.0.0.1:3000/dossier/
<Proxy *>
Require all granted
</Proxy>

# Chaque commande de Proxy devrait être revue pour comprendre exactement en quoi elles sont nécessaires.
# S'assurer également que cela n'entraîne pas de risques de sécurité.
ProxyPreserveHost On
ProxyRequests off
AllowEncodedSlashes NoDecode

ProxyPass / https://127.0.0.1:3000/
ProxyPassReverse / https://127.0.0.1:3000/

# Comportement par défaut du niveau d'alerte retourné.
# LogLevel warn
ErrorLog ${APACHE_LOG_DIR}/gitea-domaine-error.log
CustomLog ${APACHE_LOG_DIR}/gitea-domaine-access.log combined
</VirtualHost>
# Redémarrer apache2 pour prendre en compte la nouvelle configuration.
sudo service apache2 restart

Configurer le reverse proxy dans Apache2 pour un site en local

# Configuration simplifiée pour une installation et un usage personnel en local sans certificat SSL :
# Créer le nom de domaine virtuel dans le fichier /etc/hosts en ajoutant la ligne :
# 127.0.0.1	gitea.domaine.fr
<VirtualHost gitea.domaine.fr:80>
ServerName gitea.domaine.fr

ProxyPass / http://127.0.0.1:3000/
ProxyPassReverse / http://127.0.0.1:3000/

# Comportement par défaut du niveau d'alerte retourné.
# LogLevel warn
ErrorLog ${APACHE_LOG_DIR}/gitea-domaine-error.log
CustomLog ${APACHE_LOG_DIR}/gitea-domaine-access.log combined
</VirtualHost>

Démarrer Gitea

Configurer Gitea pour le démarrer sans qu'il ne soit un service

# Cette déclaration de variable permet à Gitea d'utiliser les bons répertoires lors de son démarrage.
# Il faudrait démarrer depuis un screen pour récupérer l'usage du terminal si cette commande devait être lancée en production.
export GITEA_WORK_DIR=/var/lib/gitea/
# Cette commande permet de lancer Gitea avec la configuration recommandé dans la documentation officielle ( directement ? )
GITEA_WORK_DIR=/var/lib/gitea/ /usr/local/bin/gitea web -c /etc/gitea/app.ini
# Lance Gitea, si la commande précédente ne le fait pas. Se positionner dans le dossier /usr/local/bin/ contenant le binaire.
./gitea

Configurer Gitea pour démarrer en tant que service

# C'est la solution qui est directement retenue.
sudo nano /etc/systemd/system/gitea.service
[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]
# Activer et adapter les deux valeurs si le dépôt contient trop de fichiers et génère une erreur HTTP 500.
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
RestartSec=2s
Type=simple
User=serveur-gitea
Group=serveur-gitea
WorkingDirectory=/var/lib/gitea/
# WorkingDirectory=/opt/gitea/
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
# ExecStart=/usr/local/bin/gitea web -c /opt/gitea/app.ini
Restart=always
Environment=USER=gitea HOME=/home/serveur-gitea GITEA_WORK_DIR=/var/lib/gitea
# Environment=USER=serveur-gitea HOME=/home/serveur-gitea GITEA_WORK_DIR=/opt/gitea
###
# If you want to bind Gitea to a port below 1024 uncomment the two values below
#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
#AmbientCapabilities=CAP_NET_BIND_SERVICE

[Install]
WantedBy=multi-user.target

Compléter l'installation avec supervisor

La documentation officielle traite notamment de l'installation de supervisor, que je n'ai pas installé.
Cette installation est complétée sur la page de la documentation : https://docs.gitea.io/en-us/linux-service/
Monitorer les processus avec Supervisord : https://serversforhackers.com/c/monitoring-processes-with-supervisord
Gérer les processus en ligne de commande : https://www.hostinger.fr/tutoriels/gerer-processus-linux-ligne-commande/

Démarrer le service Gitea

# Démarrer le service :
sudo service gitea start
# Afficher le statut du service :
sudo service gitea status
# Pour arrêter le service :
sudo service gitea stop

Si le service Gitea ne démarre pas

# Avec la deuxième proposition de structure pour l'installation, j'ai du copier le fichier app.ini dans /usr/local/bin pour permettre à Gitea de démarrer.
# Il faudra revérifier le chemin des fichiers et des répertoires ci-dessous en cas d'installation avec la deuxième proposition de structure.
cd /usr/local/bin
sudo mkdir custom
cd custom/
sudo mkdir conf
cd conf
sudo nano app.ini
cd /usr/local/bin
sudo chown serveur-gitea:serveur-gitea -R custom/

En cas d'erreur de port 3000 déjà utilisé

sudo service gitea start
AppPath: /usr/local/bin/gitea
AppWorkPath: /usr/local/bin
Custom path: /usr/local/bin/custom
Log path: /usr/local/bin/log
Gitea v1.4.3 built with: bindata, sqlite
Log Mode: Console(Info)
XORM Log Mode: Console(Info)
Cache Service Enabled
Session Service Enabled
SQLite3 Supported
Run Mode: Production
Listen: https://0.0.0.0:3000
LFS server enabled
2019/09/30 22:00:00 [....io/gitea/cmd/web.go:178 runWeb()] [E] Failed to start server: listen tcp 0.0.0.0:3000: bind: address already in use
# Vérifier le service qui utilise le port 3000.
netstat -anlp | grep 3000
tcp6       0      0 :::3000                 :::*                    LISTEN      4692/gitea
# Ici, le service avait simplement déjà été démarré, il ne pouvait pas être démarré deux fois.
# Stopper le service Gitea.
sudo service gitea stop
# Relancer le service depuis un utilisateur sudoers, avec la commande sudo.
sudo service gitea start
# Vérifier qui est l'utilisateur qui a lancé le service.
# serveur+ correspond à l'utilisateur serveur-gitea.
ps -aux
serveur+  6620  0.0  1.7 898272 136308 ?       Ssl  00:14   0:06 /usr/local/bin/
# Tester si l'utilisateur serveur-gitea a lancé un service.
ps -u serveur-gitea

Créer une base de données pour Gitea avant de lancer l'installation

Éditer la configuration de MariaDB

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
[mysqld]
# collation_connection s’affiche sous la forme utf8mb4_unicode_ci au lieu de utf8mb4_general_ci
# lors de l’exécution d’une requête SHOW VARIABLES LIKE 'collation%'
character-set-client-handshake=FALSE
character-set-server  = utf8mb4
collation-server      = utf8mb4_unicode_ci
#
# Ce groupe n'est lu que par les serveurs MariaDB-10.3.
# Si vous utilisez le même fichier .cnf pour MariaDB de versions différentes,
# utiliser ce groupe pour les options que les anciens serveurs ne comprennent pas.
[mariadb-10.3]
innodb_file_format = Barracuda
innodb_file_per_table = 1
innodb_default_row_format = dynamic
innodb_large_prefix = 1
# Redémarrer le service MariaDB pour appliquer les modifications.
sudo service mysql restart

Créer la BDD pour Gitea

Gitea recommande l'usage de utf8mb4 et InnoDB.
CREATE DATABASE Nom_de_la_base DEFAULT CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
CREATE USER 'Utilisateur_de_la_base'@'localhost' IDENTIFIED BY 'Mot_de_passe';
GRANT ALL PRIVILEGES ON Nom_de_la_base.* TO 'Utilisateur_de_la_base'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

Choisir l'encodage lors de l'installation de Gitea en mode graphique

utf8mb4

Installer Gitea

Le service web Gitea est accessible et peut maintenant être installé depuis le front-end du site.
Pour une installation locale :
http://localhost:3000/install
Pour une installation en production :
https://gitea.domaine.fr/install

Récapitulatif des options proposées lors de l'installation

Choix de la base de données : MySQL PostgreSQL MSSQL SQLite3. Sélectionner MySQL.
Hôte par défaut : 127.0.0.1:3306
Remplacer l'utilisateur gitea et la base de données gitea proposé par défaut et renseigner les informations de la base de données créé pour l'occasion.
DATABASE : LENOMDELABASEDEDONNEES
USER : UTILISATEURDELABASEDEDONNEES
PASSWD : LEMOTDEPASSEDELUTILISATEUR
Jeu de caractères : utf8mb4
Titre du site : 5 octobre 2019 à 14:13 (CEST)~ Gitea 5 octobre 2019 à 14:13 (CEST)~ Git avec une tasse de thé 5 octobre 2019 à 14:13 (CEST)~ Le nom du site
Emplacement racine des dépôts : /home/serveur-gitea/gitea-repositories
Répertoire racine Git LFS : /home/serveur-gitea/LFS
Exécuter avec le compte d'un autre utilisateur : serveur-gitea
Domaine du serveur SSH : gitea.domaine.fr
Port du serveur SSH : 22
Port d'écoute HTTP de Gitea : 3000
URL de base de Gitea : https://gitea.domaine.fr/
Chemin des fichiers log : /home/serveur-gitea/log
Paramètres E-mail
Hôte SMTP (Plus le port) : ssl0.ovh.net:587
Adresse e-mail utilisée par Gitea.
Envoyer les e-mails en tant que : gitea@domaine.com
Utilisateur SMTP : gitea@domaine.com
Mot de passe SMTP : MOTDEPASSEDUMAIL
Je laisse désactivé la demande de confirmation de mail lors de la création d'un compte des fois que le mail ne serait pas envoyé.
Activer les notifications par mail.
...
D'autres options peuvent être configurée en ligne de commande depuis le fichier app.ini une fois l'installation en mode graphique effectuée !
...
Domaine pour les e-mails cachés : domaine.com

Créer le compte administrateur de Gitea

ADMINISTRATEUR
MOTDEPASSE
gitea@domaine.com
Enregistrer la configuration.

Configurer Gitea avec le compte administrateur

# Icône en haut à droite, administration du site : https://gitea.domaine.fr/admin
# 3ème onglet, organisation, Ajouter une organisation "MonOrganisation", Privé, la case Permissions est décochée. Cliquer sur "Créer une organisation".
# 7ème onglet, Envoyer un mail de test. Impossible d'envoyer un e-mail de test à 'gitea@domaine.com' : gomail: could not send email 1: address ssl0.ovh.net: missing port in address.
# Ajouter le port :587 dans la configuration du mail, depuis le fichier app.ini, et le mail de test sera correctement envoyé.
# Icône en haut à droite, configurer de Gitea : https://gitea.domaine.fr/admin
# 5ème onglet, Clés SSH / GPG, ajouter une clé publique par utilisateur. Je n'ajoute aucune clé pour l'administrateur du site Gitea.
# Cette configuration des clés SSH doit se faire de préférence depuis l'interface graphique de Gitea.
# D'après un échange sur un forum, passer par l'interface graphique de Gitea, plutôt que d'éditer manuellement le fichier authorized_keys, devrait éviter de rencontrer des difficultés liées à l'ordre des clés.
# Actuellement, seul les deux clés des deux utilisateurs sont présentes dans le fichier authorized_keys de l'utilisateur serveur-gitea qui fait tourner le service gitea. A revoir pas la suite.

Créer les comptes utilisateurs puis désactiver le formulaire d'inscription

# Créer le compte utilisateur Gitea utilisateur1 - mail1@domaine.com - MOTDEPASSE1 - Ajouter le droit d'administrateur pour avoir deux administrateurs.
# Créer le compte utilisateur Gitea utilisateur2 - mail2@domaine.com - MOTDEPASSE2
# Une fois les utilisateurs ajoutés, désactiver le formulaire d'inscription pour minimiser les tentatives de spam.
sudo nano /etc/gitea/app.ini
# Passer false à true pour désactiver l'inscription.
DISABLE_REGISTRATION              = true
# Redémarrer le service Gitea pour appliquer les modifications.
sudo service gitea restart

Organisation MonOrganisation

L'organisation MonOrganisation est déjà créée.
Ajouter un groupe nommé à votre convenance, ici, le groupe "Developpeurs".
Ajouter les utilisateurs qui seront dans le groupe des Développeurs.

Créer un nouveau dépôt depuis l'interface graphique de Gitea

Se rendre sur https://gitea.domaine.fr/MonOrganisation
Créer un nouveau dépôt pour domaine.com, .gitignore au format WordPress, licence sous GPL-3.0-or-later, Lisez moi par Default, cocher la case pour créer le .gitignore, le Readme et la Licence.
Répéter l'opération pour chaque projet devant être créé sur Gitea.

Optimiser la sécurité du contenu de Gitea

Changer les droits suite à l'installation

# Une fois l'installation en mode graphique aboutie, il est fortement recommandé de changer les droits suivants :
sudo chmod 750 /etc/gitea
sudo chmod 640 /etc/gitea/app.ini

Interdire l'indexation des pages de Gitea en ajoutant le fichier robots.txt

sudo -s
cd /var/lib/gitea/custom/
nano robots.txt
# Ajouter les deux lignes suivantes pour interdire l'indexation des pages du site :
User-agent: *
Disallow: /
# Changer le propriétaire et le groupe du fichier puis redémarrer pour appliquer les changements :
chown serveur-gitea:serveur-gitea robots.txt
sudo service gitea restart

Interdire l'affichage des utilisateurs depuis l'explorateur

sudo -s
mkdir /var/lib/gitea/custom/templates/explore/
nano /var/lib/gitea/custom/templates/explore/users.tmpl
chown -R serveur-gitea:serveur-gitea /var/lib/gitea/custom/templates/explore/
Copier le contenu suivant : https://github.com/go-gitea/gitea/blob/master/templates/explore/users.tmpl
{{template "base/head" .}}
 <div class="explore users">
         {{template "explore/navbar" .}}
         <div class="ui container">
                 {{template "explore/search" .}}
 
                 <div class="ui user list">
                         {{range .Users}}
                                 <div class="item">
 
                         <!-- Afficher une image à la place des avatars des utilisateurs -->
                         <!--      <img class="ui avatar image" src="{{.RelAvatarLink}}">   -->
                                   <img class="ui avatar image" src="https://gitea.domaine.fr/img/favicon-32x32.png">
 
                                   <div class="content">
 
                                 <!-- Cacher les identifiants des utilisateurs -->
                                 <!--    <span class="header"><a href="{{.HomeLink}}">{{.Name}}</a> {{.FullName}}</span>   -->
                                         <span class="header">Développeur</span>
 
                                         <div class="description">
                                                         {{if .Location}}
                                                                 <i class="octicon octicon-location"></i> {{.Location}}
                                                         {{end}}
                                                         {{if and $.ShowUserEmail .Email $.IsSigned (not .KeepEmailPrivate)}}
                                                                 <i class="octicon octicon-mail"></i>
                                                                 <a href="mailto:{{.Email}}" rel="nofollow">{{.Email}}</a>
                                                         {{end}}
 
                                                 <!-- Cacher la date d'inscription -->
                                                 <!--    <i class="octicon octicon-clock"></i> {{$.i18n.Tr "user.join_on"}} {{.CreatedUnix.FormatShort}}   -->
                                                         Collaborateur Gitea pour LeDomaine.
                                         </div>
                                   </div>
                                 </div>
                         {{else}}
                                 <div>{{$.i18n.Tr "explore.user_no_results"}}</div>
                         {{end}}
                 </div>
 
                 {{template "base/paginate" .}}
         </div>
 </div>
 {{template "base/footer" .}}
Éditer le template ne convient pas pour cacher les utilisateurs de la recherche publique depuis l'explorateur !
Une fois connecté, on ne retrouve plus les utilisateurs dans l'explorateur mais également en mode connecté.
L'API, elle, continue de délivrer la liste des utilisateurs via une simple requête depuis le terminal !
curl -X GET "https://gitea.domaine.fr/api/v1/users/search" -H  "accept: application/json"
Je décommente la ligne par défaut pour permettre l'affichage des utilisateurs et je supprime ma modification.
Je laisse le changement qui concerne l'image.
# Imposer à l'utilisateur de devoir se loguer pour consulter les informations :
sudo -s
cd /etc/gitea
nano app.ini
REQUIRE_SIGNIN_VIEW: true
# L'aspect sécuritaire est maintenant respecté, mais, on préférerait pouvoir choisir soit même d'être visible ou non, en tant que utilisateur public ou privé.
Une issue est ouverte : https://github.com/go-gitea/gitea/issues/2908
De nouvelles options permettent d'affiner le réglage à partir de la version 1.14.0-RC1 de Gitea : https://github.com/go-gitea/gitea/pull/14094
# Proposition d'ajout de bloc, la troisième ligne permet de ne voir que les utilisateurs ayant un dépôt public :
[explore.users]
REQUIRE_SIGNED_IN=false ; set to true to only allow signed in users to see this page
ONLY_SHOW_USERS_WITH_PUBLIC_REPOS=false ; set to true to only show users with public repos

Modifier l'aspect de Gitea

Modifier le template de Gitea.

Mettre à jour une nouvelle version du binaire de Gitea

# Vérifier la version actuelle pour suivre la montée en charge.
# Depuis le pied de page de Gitea :
© Gitea Version: 1.10.0+dev-359-gbcd4af483
# Avant de mettre à jour Gitea, faire une sauvegarde de la base de données !
mysqldump -u UTILISATEUR -pPASSWORD -h HOTE Nom_de_la_base_de_données > base_exportee.sql
# Pour mettre à jour Gitea, stopper le service.
sudo service gitea stop
# Renommer l'ancien binaire de Gitea :
cd /usr/local/bin/
sudo mv gitea gitea-old
# Télécharger le nouveau binaire en conservant le même nom, "gitea" comme précédemment pour la procédure d'installation :
cd /usr/local/bin/
# Vérifier la version à charger ! Ici, la 1.10.0-rc1 pour recoller à la branche de développement standard.
sudo wget -O /usr/local/bin/gitea https://dl.gitea.io/gitea/1.10.0-rc1/gitea-1.10.0-rc1-linux-amd64
sudo chown serveur-gitea:serveur-gitea /usr/local/bin/gitea
sudo chmod 755 /usr/local/bin/gitea
# Redémarrer le service de Gitea.
sudo service gitea start
# Recommencer la même procédure pour mettre à jour la 1.10.0-rc1 vers la 1.10.2 avec le binaire suivant :
sudo wget -O /usr/local/bin/gitea https://dl.gitea.io/gitea/1.10.2/gitea-1.10.2-linux-amd64
# La version actuelle de Gitea sera : 1.10.2 built with GNU Make 4.1, go1.13.5 : bindata, sqlite, sqlite_unlock_notify
# La version actuelle de Git : 2.20.1

Installer Gitea depuis le dépôt pour Debian


Utiliser Gitea

Créer un utilisateur

Créer une organisation

Créer un groupe de travail

# L'ajout d'un utilisateur dans un groupe d'une organisation lui permet d'accéder aux dépôts de l'organisation.
# Le nouvel utilisateur aura un résumé des actions menées depuis son tableau de bord, à partir du jour de la création de cet utilisateur.

API Gitea

Utiliser le lien suivant : http(s)://IP_SERVEUR:3000_Ou_LeDomaine/api/swagger
Il est possible de récupérer la liste des utilisateurs avec l'API, mais, cette option a été désactivée lors de mon installation.
Il est nécessaire de se connecter avec un compte utilisateur pour avoir accès aux options.
L'adresse URL de l'API, pour le site qui a été déployé : https://gitea.lecannabiste.fr/api/swagger
Voir à consulter la documentation officielle pour utiliser l'API.

Gestion des logs avancée

Configurer la gestion des logs de Gitea : https://docs.gitea.io/en-us/logging-configuration/

Utiliser Git avec Gitea

Créer son premier dépôt git avec Gitea

# Créer manuellement le dépôt vide depuis Gitea.
# Le serveur peut également être configuré avec les valeurs suivante pour autoriser le push to create :
ENABLE_PUSH_CREATE_USER: false: Allow users to push local repositories to Gitea and have them automatically created for a user.
ENABLE_PUSH_CREATE_ORG: false: Allow users to push local repositories to Gitea and have them automatically created for an org.
# Créer un nouveau dépôt en ligne de commande :
touch README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://gitea.serveur.fr/user/repo.git
# Corriger une adresse url en cas de faute de frappe dans l'adresse précédente.
# git remote set-url origin https://gitea.serveur.fr/user/correction.git
git push -u origin master
# Soumettre un dépôt existant par ligne de commande :
git remote add origin https://gitea.serveur.fr/user/repo.git
git push -u origin master

Remerciements

À l'équipe des développeurs de Gitea sur Discordapp : https://discord.gg/dphazMF
A_D du groupe Gitea de Discordapp pour m'avoir permis de trouver l'option de Gitea pour pousser et créer un dépôt qui n'existe pas encore vers le serveur.

Bibliographie

Installer un serveur Gitea

Dépôt Gitea

 Le dépôt officiel de Gitea : https://github.com/go-gitea/gitea
 Le dépôt de la branche master :  https://dl.gitea.io/gitea/master/

Documentation Gitea

 Page d'aide officielle : https://docs.gitea.io/en-us/
 Installation from binary : https://docs.gitea.io/en-us/install-from-binary/
 Exemples pour la configuration : https://docs.gitea.io/en-us/config-cheat-sheet/
 Hosting your own Git server with Gitea : https://codeburst.io/hosting-your-own-git-server-with-gitea-fc3298aa15ce

Communautés

 Le salon Discord pour Gitea : https://discordapp.com/invite/gitea

Installer Gitea à partir des sources

Avec Apache2

 How to install and configure Gitea a self-hosted Github-like service : https://mindefrag.net/2018/07/how-to-install-and-configure-gitea-a-self-hosted-github-like-service/
 Installer Gitea sur Debian par Jeremy Verda : https://jeremyverda.net/installing-gitea-on-debian/
 Installation Gitea : http://www.jouvinio.net/wiki/index.php/Installation_Gitea
 How to Gitea : https://wiki.evolix.org/HowtoGitea

Avec Nginx

 How to install Gitea on Debian 9 : https://www.vultr.com/docs/how-to-install-gitea-on-debian-9
 Install a self-hosted Git server with Gitea : https://golb.hplar.ch/2018/06/self-hosted-git-server.html (+ Exemple de dépôt GIT.)
 How to Setup Gitea on an Ubuntu Server : https://bryangilbert.com/post/devops/how-to-setup-gitea-ubuntu/

Avec Arch

 Gitea : https://wiki.archlinux.org/index.php/Gitea

Avec Ubuntu

 How to Install Gitea Git Server on Ubuntu 16.04 | 18.04 | 18.10 with MariaDB : https://websiteforstudents.com/how-to-install-gitea-git-server-on-ubuntu-16-04-18-04-18-10-with-mariadb/
 How to Install Gitea Git service on Ubuntu 19.04/18.04/16.04 : https://computingforgeeks.com/how-to-install-gitea-git-service-on-ubuntu/
 How to Setup Gitea on an Ubuntu Server : http://bryangilbert.com/post/devops/how-to-setup-gitea-ubuntu/#enabling-git-over-ssh

Avec Docker

 How to Install Gitea Self-hosted Git Service using Docker on Ubuntu 18.04 : https://www.howtoforge.com/tutorial/install-gitea-using-docker-on-ubuntu/

Gitea et SSH

 Comment activer le serveur SSH de Gitea ou de Gogs : https://becauseofprog.fr/article/activer-serveur-ssh-gitea-gogs

Cloner un dépôt

 Installer et configurer un serveur GIT sous Linux : https://www.val-r.fr/geek/softwares/git/installer-et-configurer-un-serveur-git-sous-linux

NAVIGATION

PARTICIPER ET PARTAGER

Bienvenue sur le wiki de Amis SH.
De nombreuses pages sont partagées sur ce wiki.
Créer un compte utilisateur pour participer sur le wiki.
Les pages présentées sur le wiki évoluent tous les jours.
Certaines recherches sont peu abouties et incluent des erreurs.
Utiliser la recherche interne du wiki pour trouver votre contenu.
La page de discussion de Amis SH vous permet de poser vos questions.
Consulter le site amis-sh.fr pour installer votre propre serveur web.
Améliorer le contenu des pages avec vos retours depuis l'onglet discussion.
Ce contenu ne doit pas servir à nuire à autrui ou à un système informatique.
Protéger votre système Linux ou Windows avec cette page dédiée à la sécurité.

SOUTENIR CE WIKI

Soutenir le wiki avec un don en monnaie numérique :
AEON - Bitcoins - Bitcoins Cash - Bitcoins Gold - Bitcore - Blackcoins - Basic Attention Token - Bytecoins - Clams - Dash - Monero - Dogecoins - Ğ1 - Ethereum - Ethereum Classique - Litecoins - Potcoins - Solarcoins - Zcash

OBTENIR DE LA MONNAIE NUMERIQUE

Obtenir gratuitement de la monnaie numérique :
Miner de la cryptomonnaie.