Installer un serveur Git avec Gitea : Différence entre versions

De Analyse Développement Hacking
Sauter à la navigation Sauter à la recherche
m
 
(Aucune différence)

Version actuelle datée du 11 octobre 2019 à 14:00

Consulter le wiki : Accueil du wiki - Objectifs - Administrateur - Bureautique - Développeur - Intégrateur - Marketing - Multimédia - Objets numériques - Jeux - We make Hack
Consulter le site : Accueil du site - Annuaire - Blog - Forum - Outils - Utilisateur     Consulter le Redmine : Accueil du Redmine

Sommaire

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

# 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
J'ai utilisé la version master, ce qui n'est pas une bonne idée, notamment pour suivre les mises à jour.
Ma versions master : 1.10.0+dev-359-gbcd4af483 built with GNU Make 4.1, go1.13.1 : bindata, sqlite, sqlite_unlock_notify
La version 1.9.4 vient d'être proposé en stable.
Une version 1.10.0-rc1 devrait être mise à disposition. Faire la mise à jour de cette version, puis, voir à coller aux versions stables.

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 : 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
Installer-gitea.png

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

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 !
Pour mettre à jour Gitea, stopper le service.
sudo service gitea stop
Déplacer l'ancien binaire de Gitea /usr/local/bin/gitea et ajouter le nouveau binaire en conservant le même nom, "gitea".
Redémarrer le service de Gitea.
sudo service gitea start

Installer Gitea depuis le dépôt pour Debian

Gitea du projet home:vegnuli:golang :
https://software.opensuse.org//download.html?project=home%3Avegnuli%3Agolang&package=gitea
# Ajouter le dépôt Gitea pour Debian et installer Gitea :
echo 'deb http://download.opensuse.org/repositories/home:/vegnuli:/golang/Debian_9.0/ /' > /etc/apt/sources.list.d/home:vegnuli:golang.list
wget -nv https://download.opensuse.org/repositories/home:vegnuli:golang/Debian_9.0/Release.key -O Release.key
apt-key add - < Release.key
apt-get update
apt-get install gitea
Todo.png

API Gitea

Utiliser le lien suivant : http(s)://IP_SERVEUR:3000_Ou_LeDomaine/api/swagger
Précédemment, on a pu observer comment récupérer la liste des utilisateurs avec l'API, mais, cette option a été désactivée.
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

A suivre pour créer son premier dépôt git avec Gitea.
Todo.png

Bibliographie

Installer un serveur Gitea

Dépôt Gitea

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

Documentation Gitea

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

Communautés

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

Installer Gitea à partir des sources

Avec Apache2

Ok.png 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/
Ok-ko.png Installer Gitea sur Debian par Jeremy Verda : https://jeremyverda.net/installing-gitea-on-debian/
Ok-ko.png Installer Gitea sur Stretch : https://lost.hadaly.fr/installer-gitea-sur-stretch.html
Ok-ko.png Installation Gitea : http://www.jouvinio.net/wiki/index.php/Installation_Gitea
Ko.png How to Gitea : https://wiki.evolix.org/HowtoGitea

Avec Nginx

Ko.png How to install Gitea on Debian 9 : https://www.vultr.com/docs/how-to-install-gitea-on-debian-9
Ko.png 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.)
Ko.png How to Setup Gitea on an Ubuntu Server : https://bryangilbert.com/post/devops/how-to-setup-gitea-ubuntu/

Avec Arch

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

Avec Ubuntu

Ko.png 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/
Ko.png 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/
Ko.png How to Setup Gitea on an Ubuntu Server : http://bryangilbert.com/post/devops/how-to-setup-gitea-ubuntu/#enabling-git-over-ssh

Avec Docker

Ko.png 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

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

Cloner un dépôt

Ok-ko.png 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

Vous êtes sur le wiki de Vision du Web.
Les pages présentées sur le wiki évoluent tous les jours.
Certaines recherches sont peu abouties et incluent des erreurs.
Pour participer sur le wiki, créer un compte utilisateur en haut à droite.
La recherche interne du wiki permet de trouver le contenu qui vous intéresse.
Les informations présentes sur ce wiki sont issues d'une recherche personnelle.
Identifiez-vous pour poser vos questions sur la page de discussion de VisionDuWeb.
Améliorer le contenu des pages en faisant des propositions depuis l'onglet discussion.
Les informations du wiki ne doivent pas servir à nuire à autrui ou à un système informatique.
De nombreux outils gratuits sont listés et disponibles dans la boîte à outils de Vision du web.
D'autres pages du wiki peuvent correspondre à vos attentes. La liste de toutes les pages du wiki.

VALORISER LE WIKI

Valoriser le contenu partagé sur 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 :
Gagner des Altcoins - Miner des Altcoins.
Consulter le miroir du wiki depuis Planet Hoster : Le miroir du wiki version du 12 Juillet 2019.