GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer et configurer Gogs sur Ubuntu 18.04

Gogs est un serveur git open source auto-hébergé écrit en Go. Il comprend un éditeur de fichiers de référentiel, un suivi des problèmes de projet et un wiki intégré.

Gog est une application légère et peut être installée sur des systèmes à faible puissance. Si vous recherchez une alternative à Gitlab avec une empreinte mémoire beaucoup plus petite et que vous n'avez pas besoin de toutes les cloches et de tous les sifflets proposés par Gitlab, vous devez absolument essayer Gogs.

Ce tutoriel couvre les étapes d'installation et de configuration de Gogs sur Ubuntu 18.04. Les mêmes instructions s'appliquent à Ubuntu 16.04 et à toute autre distribution basée sur Ubuntu.

Avant de commencer #

Gogs peut utiliser SQLite, PostgreSQL ou MySQL/MariaDBdatabase pour stocker toutes ses données.

Dans ce tutoriel, nous utiliserons SQLite comme base de données de choix. Si SQLite n'est pas installé sur votre système, vous pouvez l'installer en tapant :

sudo apt install sqlite3

Pour une couche de sécurité supplémentaire, il est recommandé de mettre en place un pare-feu de base. Vous pouvez suivre les étapes de notre guide Comment configurer un pare-feu avec UFW sur Ubuntu 18.04.

Installation de Gogs #

Nous allons installer Gogs à partir du binaire. L'installation est un processus assez simple.

Installer Git #

La première étape consiste à installer Giton sur votre serveur. Pour ce faire, actualisez l'index du package local et installez le package git en exécutant les commandes suivantes en tant qu'utilisateur sudo :

sudo apt updatesudo apt install git

Vérifiez l'installation en affichant la version de Git :

git --version
git version 2.17.1

Créer un numéro d'utilisateur Git

Créez un nouvel utilisateur système pour exécuter le service Gogs en tapant :

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

La commande créera l'utilisateur et définira le répertoire personnel sur /home/git . La sortie ressemblera à quelque chose comme ci-dessous :

Adding system user `git' (UID 111) ...
Adding new group `git' (GID 116) ...
Adding new user `git' (UID 111) with group `git' ...
Creating home directory `/home/git' ...

Télécharger le binaire Gogs #

Visitez la page de téléchargement de Gogs et téléchargez le dernier binaire pour votre architecture. Au moment de la rédaction, la dernière version est 0.11.86, s'il y a une nouvelle version disponible, changez la VERSION variable dans la commande ci-dessous.

Téléchargez l'archive Gogs dans le /tmp répertoire à l'aide de la commande wget suivante :

VERSION=0.11.86wget https://dl.gogs.io/${VERSION}/gogs_${VERSION}_linux_amd64.tar.gz -P /tmp

Une fois le téléchargement terminé, extrayez le fichier Gogs tar.gz et déplacez-le vers /home/git répertoire :

sudo tar xf /tmp/gogs_*_linux_amd64.tar.gz -C /home/git

Exécutez la commande suivante pour changer la propriété du répertoire d'installation de Gogs en l'utilisateur et le groupe git :

sudo chown -R git: /home/git/gogs

Créer un fichier d'unité systemd #

Gogs est livré avec un fichier d'unité Systemd qui est déjà configuré pour correspondre à notre configuration.

Copiez le fichier dans /etc/systemd/system/ répertoire en tapant :

sudo cp /home/git/gogs/scripts/systemd/gogs.service /etc/systemd/system/

Une fois cela fait, démarrez et activez le service Gogs :

sudo systemctl start gogssudo systemctl enable gogs

Vérifiez que le service a démarré avec succès :

* gogs.service - Gogs
   Loaded: loaded (/etc/systemd/system/gogs.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-04-25 04:13:44 PDT; 9s ago
 Main PID: 14376 (gogs)
    Tasks: 8 (limit: 2319)
   CGroup: /system.slice/gogs.service
           `-14376 /home/git/gogs/gogs web

Installer Gogs à l'aide du programme d'installation Web #

Maintenant que Gogs est téléchargé et en cours d'exécution, il est temps de finaliser l'installation via l'interface Web.

Ouvrez votre navigateur, tapez http://YOUR_DOMAIN_IR_IP:3000 et un écran similaire au suivant apparaîtra :

Paramètres de la base de données :

  • Type de base de données :SQLite3
  • Chemin :utilisez un chemin absolu, /home/git/gogs/gogs.db

Paramètres généraux de l'application

  • Nom de l'application :saisissez le nom de votre organisation
  • Chemin racine du référentiel :laissez la valeur par défaut /home/git/gogs-repositories
  • Exécuter l'utilisateur :git
  • Domaine :saisissez l'adresse IP de votre domaine ou de votre serveur.
  • Port SSH : 22, modifiez-le si SSH écoute sur un autre port
  • Port HTTP :3 000
  • URL de l'application :utilisez http et l'adresse IP de votre domaine ou de votre serveur.
  • Chemin du journal :laissez la valeur par défaut /home/git/gogs/log
Plus tard, vous pourrez modifier les paramètres en modifiant le fichier de configuration Gogs.

Une fois cela fait, cliquez sur le bouton "Installer Gogs". L'installation est instantanée et une fois terminée, vous serez redirigé vers la page de connexion.

Cliquez sur le lien "Inscrivez-vous maintenant".

Le premier utilisateur enregistré est automatiquement ajouté au groupe Admin.

C'est ça. Gogs a été installé sur votre machine Ubuntu.

Configuration de Nginx en tant que proxy de terminaison SSL #

Cette étape est facultative mais fortement recommandée. Pour utiliser Nginx en tant que proxy inverse, vous devez disposer d'un domaine ou d'un sous-domaine pointant vers l'adresse IP publique de votre serveur. Dans ce tutoriel, nous utiliserons gogs.example.com .

Tout d'abord, installez Nginx et générez un certificat SSL Let's Encrypt gratuit en suivant les guides ci-dessous :

  • Comment installer Nginx sur Ubuntu 18.04
  • Sécuriser Nginx avec Let's Encrypt sur Ubuntu 18.04

Une fois cela fait, ouvrez votre éditeur de texte et modifiez le fichier de blocage du serveur de domaine :

sudo nano /etc/nginx/sites-enabled/gogs.example.com
/etc/nginx/sites-enabled/gogs.example.com
server {
    listen 80;
    server_name gogs.example.com;

    include snippets/letsencrypt.conf;
    return 301 https://gogs.example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name gogs.example.com;

    proxy_read_timeout 720s;
    proxy_connect_timeout 720s;
    proxy_send_timeout 720s;

    client_max_body_size 50m;

    # Proxy headers
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;

    # SSL parameters
    ssl_certificate /etc/letsencrypt/live/gogs.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/gogs.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/gogs.example.com/chain.pem;
    include snippets/letsencrypt.conf;
    include snippets/ssl.conf;

    # log files
    access_log /var/log/nginx/gogs.example.com.access.log;
    error_log /var/log/nginx/gogs.example.com.error.log;

    # Handle / requests
    location / {
       proxy_redirect off;
       proxy_pass http://127.0.0.1:3000;
    }
}
N'oubliez pas de remplacer gogs.example.com par votre domaine Gogs et de définir le chemin correct vers les fichiers de certificat SSL. Toutes les requêtes HTTP seront redirigées vers HTTPS

Redémarrez le service Nginx pour que les modifications prennent effet :

sudo systemctl restart nginx

Ensuite, nous devons changer le domaine Gogs et l'URL racine. Pour cela, ouvrez le fichier de configuration et éditez les lignes suivantes :

sudo nano /home/git/gogs/custom/conf/app.ini
/home/git/gogs/custom/conf/app.ini
[server]
DOMAIN           = gogs.example.com
ROOT_URL         = https://gogs.example.com/

Redémarrez le service Gogs en tapant :

sudo systemctl restart gogs

À ce stade, Gogs est configuré et vous pouvez y accéder à :https://gogs.example.com

Configuration des notifications par e-mail #

Pour que Gogs puisse envoyer des e-mails de notification, vous pouvez soit installer Postfix, soit utiliser un service de messagerie transactionnel tel que SendGrid, MailChimp, MailGun ou SES.

Pour activer les notifications par e-mail, ouvrez le fichier de configuration et modifiez les lignes suivantes :

sudo nano /home/git/gogs/custom/conf/app.ini
/home/git/gogs/custom/conf/app.ini
[mailer]
ENABLED = true
HOST    = SMTP_SERVER:SMTP_PORT
FROM    = SENDER_EMAIL
USER    = SMTP_USER
PASSWD  = YOUR_SMTP_PASSWORD

Assurez-vous de mettre les bonnes informations de serveur SMTP.

Redémarrez le service Gogs pour que les modifications prennent effet :

sudo systemctl restart gogs

Gogs vous permet également de vous connecter à Slack en créant un webhook et en envoyant des notifications à vos chaînes Slack.

Mise à jour de Gogs #

Pour mettre à jour Gogs, plusieurs étapes manuelles sont nécessaires.

  1. Arrêtez d'abord le service Gogs :

    sudo systemctl stop gogs
  2. Renommez le répertoire d'installation de Gogs.

    sudo mv /home/git/gogs{,_old}
  3. Téléchargez la dernière version de Gogs et déplacez-la vers /home/git répertoire :

    VERSION=<THE_LATEST_GOGS_VERSION>wget https://dl.gogs.io/${VERSION}/gogs_${VERSION}_linux_amd64.tar.gz -P /tmpsudo tar xf /tmp/gogs_*_linux_amd64.tar.gz -C /home/git

    Assurez-vous de changer VERSION avec la version actuelle de Gogs.

  4. Copier custom , data , log répertoires vers le répertoire extrait à l'aide de la commande rsync suivante :

    sudo rsync -a /home/git/gogs_old/{custom,data,log,gogs.db} /home/git/gogs/
  5. Enfin, démarrez le service Gogs :

    sudo systemctl restart gogs

C'est tout.


Ubuntu
  1. Comment installer et configurer Redis sur Ubuntu 18.04

  2. Comment installer et configurer Redmine sur Ubuntu 18.04

  3. Comment installer et configurer Samba sur Ubuntu 18.04

  4. Comment installer et configurer Redis sur Ubuntu 20.04

  5. Comment installer et configurer Jenkins sur Ubuntu 20.04

Comment installer et configurer Redis dans Ubuntu 20.04

Comment installer et configurer Neo4j sur Ubuntu 20.04

Comment installer et configurer le SDK Ubuntu dans Ubuntu 16.04 et 14.04

Comment installer et configurer PostgreSQL sur Ubuntu

Comment installer et configurer Git sur Ubuntu 20.04

Comment installer et configurer le service Gogs Git sur Ubuntu Linux