Table of Contents
Ubuntu/Debian
La documentation est en français (svp) et l’installation rapide : https://gogs.io/docs/installation
- Actuellement disponible pour Ubuntu 14.04/16.04/18.04, Debian 8/9/10, et CentOS 6⁄7.
- Paquets actuellement disponibles sur packager.io.
- Démo disponible en vidéo YouTube.
sources : https://gogs.io/docs/installation/install_from_packages
Configurations
Petites subtilités à mon sens mal présentées dans la documentation officielle :
Dans mon cas :
- Emplacement Gogs: /srv/gogs/
- Emplacement des repository Git : /srv/gogs/git
- FQDN : gogs.home.lan
- Emplacement cert SSL : /srv/gogs/custom/conf/ssl/
Toute la configuration personnalisée de Gogs est référencée dans le fichier app.ini
vim /srv/gogs/custom/conf/app.ini
SMTP – Configuration du service de mail
J’utilise à domicile SendGrid comme MTA :
Gogs (en utilisation domestique) envoi normalement peux de mails donc l’offre gratuite à 100 mails/jour suffit amplement.
SendGrid vous permet surtout de créer des clés API, plus d’informations ici
Éditez le fichier :
vim /srv/gogs/custom/conf/app.ini
Ajoutez
[..]
[mailer]
ENABLED = true
HOST = smtp.sendgrid.net:587
LOGIN = true
USER = apikey
PASSWD = <votre_longue_clé_api>
FROM = "Gogs" <gogs@home.lan>
[..]
Si vous avez bien suivi la documentation vous avez normalement crée le service « Gogs » via Systemd
Après chaque modification du fichier app.ini, pensez à relancer le service
service gogs restart
ou
systemctl restart gogs.service
Vous pouvez vérifier et tester votre configuration directement dans l’interface web via https://gogs.home.lan:3000/admin/config
SSL – HTTPS
SSL fonctionne suivant un mode client-serveur.
Il permet de satisfaire les objectifs de sécurité suivants :
- l’authentification du serveur ;
- la confidentialité des données échangées (ou session chiffrée) ;
- l’intégrité des données échangées ;
Le protocole est très largement utilisé, sa mise en œuvre est facilitée par le fait que les protocoles de la couche application, comme HTTP, n’ont pas à être profondément modifiés pour utiliser une connexion sécurisée, mais seulement implémentés au-dessus de SSL/TLS, ce qui pour HTTP a donné le protocole HTTPS.
Sources : Wikipedia
Dans le cas d’une utilisation domestique un certificat auto-signé suffit amplement, mais dans un environnement de production un certificat officiel signé par une autorité de certifications reconnue est nécessaire et fortement recommandée.
Dans mon cas j’ai opté pour la création d’un certificat auto signé.
apt install openssl --yes
mkdir /srv/gogs/custom/conf/ssl/ && cd /srv/gogs/custom/conf/ssl/
openssl genrsa -out gogs.key 2048
openssl req -new -x509 -key gogs.key -out gogs_cert.cert -days 3650 -subj /CN=gogs.home.lan
Modifier le fichier app.ini comme suivant :
vim /srv/gogs/custom/conf/app.ini
[..]
[server]
DOMAIN = gogs.home.lan
HTTP_PORT = 3000
ROOT_URL = https://gogs.home.lan:3000/
[..]
PROTOCOL = https
CERT_FILE = /srv/gogs/custom/conf/ssl/gogs_cert.crt
KEY_FILE = /srv/gogs/custom/conf/ssl/gogs.key
[..]
Après chaque modification du fichier app.ini, pensez à relancer le service
service gogs restart
ou
systemctl restart gogs.service