Comment configurer Gogs sur Ubuntu 14.04

Un article de http://gogs.io [Gogs]

introduction

http://gogs.io [Gogs] est un service Git auto-hébergé écrit en Go, très facile à utiliser et dont l’utilisation du système est faible. Il aspire à être le moyen le plus simple, le plus rapide et le plus simple de configurer un service Git auto-hébergé.

À la fin de ce didacticiel, vous aurez une instance en cours d’exécution de Gogs, qui comprend une interface Web, un tableau de bord d’administrateur et un accès à des opérations telles que Git pull and push.

Conditions préalables

Pour suivre ce tutoriel, vous aurez besoin de:

  • Une gouttelette Ubuntu 14.04 de toute taille.

  • Un sudo non-utilisateur root. Dans ce didacticiel, nous utiliserons un utilisateur sudo non root distinct uniquement pour Gogs pour des raisons de sécurité. Ce tutoriel suppose que cet utilisateur dédié s’appelle * git *, conformément à la convention du service Git; Ce tutoriel doit être suivi en tant qu’utilisateur * git *.

Étape 1 - Installer la base de données

Dans cette étape, nous allons créer la base de données back-end Gogs.

Une fois que vous vous êtes connecté, assurez-vous que vos packages système sont à jour.

sudo apt-get update

Nous allons utiliser MySQL comme notre serveur principal. Nous allons donc l’installer. Le drapeau + -y + suppose ici que oui à toutes les invites.

sudo apt-get -y install mysql-server

Au cours de l’installation, il vous sera demandé de saisir le mot de passe de la base de données * root * utilisateur. Assurez-vous d’utiliser un logiciel sécurisé et rappelez-vous-le, car vous en aurez besoin ultérieurement dans ce didacticiel.

Maintenant, créez et ouvrez un fichier nommé + gogs.sql +. Ici, nous utilisons + nano +, mais vous pouvez utiliser votre éditeur de texte préféré.

nano gogs.sql

Collez le contenu suivant dans le fichier, puis enregistrez et fermez-le.

DROP DATABASE IF EXISTS gogs;
CREATE DATABASE IF NOT EXISTS gogs CHARACTER SET utf8 COLLATE utf8_general_ci;

Enfin, exécutez + gogs.sql + avec MySQL pour créer la base de données Gogs. Remplacez ++ par le mot de passe root que vous avez choisi précédemment dans cette étape.

  • Remarque *: il n’y a pas d’espace entre l’indicateur + -p + et votre mot de passe dans cette commande.

mysql -u root -p < gogs.sql

_ _

Pour installer Gogs à partir du source, des outils de contrôle de version tels que Git et Mercurial sont nécessaires. Installez-les ensuite.

sudo apt-get -y install mercurial git

Si vous envisagez de cloner un référentiel via SSH, un serveur SSH en état de fonctionnement est requis, mais heureusement, Ubuntu 14.04 est livré avec un serveur prêt à l’emploi.

Étape 2 - Installez Go

Parce que Gogs est écrit en Go, nous devons l’installer avant de le compiler.

Premièrement, nous devons définir certaines variables d’environnement pour Go. Pour ce faire, ouvrez le fichier + ~ / .bashrc + pour le modifier.

nano ~/.bashrc

Ajoutez les lignes suivantes à la fin du fichier, puis fermez-le et enregistrez-le.

export GOPATH=/home/git/go
export GOROOT=/usr/local/src/go
export PATH=${PATH}:$GOROOT/bin

Ensuite, appliquez vos modifications.

source ~/.bashrc

Ensuite, utilisez + wget + pour télécharger la dernière version conforme de Go depuis son website. Au moment de la rédaction, le fichier le plus récent est + go1.4.2.linux-amd64.tar.gz +.

wget https://storage.googleapis.com/golang/go1.4.2.linux-amd64.tar.gz

Utilisez + tar + pour le désarchiver.

tar zxf go1.4.2.linux-amd64.tar.gz

Remplacez les répertoires par le + $ GOROOT défini dans` + ~ / .bashrc`.

sudo mv go $GOROOT

Maintenant, si vous tapez + go + dans votre terminal:

go

Vous devriez voir quelque chose comme ça:

Go is a tool for managing Go source code.

Usage:

   go command [arguments]

...

Use "go help [topic]" for more information about that topic.

Étape 3 - Installer et démarrer Gogs en tant que service

Go a une commande intégrée, + get +, permettant de télécharger facilement le code source d’un projet Go ainsi que toutes ses dépendances, que nous utiliserons pour télécharger Gogs.

go get -d github.com/gogits/gogs

Le code source de Gogs sera maintenant dans + $ GOPATH / src / github.com / gogits / gogs +, alors déplacez-vous là.

cd $GOPATH/src/github.com/gogits/gogs

Ensuite, construisez et générez le binaire. Cette commande peut prendre un moment pour s’exécuter.

go build

Nous allons utiliser Supervisor pour gérer le service Gogs.

Commençons par l’installer.

sudo apt-get -y install supervisor

Faisons un démon Gogs en créant une section de configuration Supervisor. Commencez par créer un répertoire pour les fichiers journaux.

sudo mkdir -p /var/log/gogs

Nous ouvrirons ensuite le fichier de configuration Supervisor pour l’éditer.

sudo nano /etc/supervisor/supervisord.conf

Ajoutez le contenu suivant au fichier pour créer la section Gogs.

[program:gogs]
directory=/home/git/go/src/github.com/gogits/gogs/
command=/home/git/go/src/github.com/gogits/gogs/gogs web
autostart=true
autorestart=true
startsecs=10
stdout_logfile=/var/log/gogs/stdout.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stderr_logfile=/var/log/gogs/stderr.log
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB
environment = HOME="/home/git", USER="git"
user = git

Cette section définit la commande à exécuter pour démarrer Gogs, la lance automatiquement avec Supervisor et spécifie les emplacements des fichiers journaux et des variables d’environnement correspondantes. Pour en savoir plus sur la configuration du superviseur, lisez cette tutorial.

Maintenant, redémarrez Supervisor.

sudo service supervisor restart

Nous pouvons vérifier que Gogs est en cours d’exécution avec la commande suivante.

ps -ef | grep gogs

Vous devriez voir quelque chose comme ceci en sortie.

root      1344  1343  0 08:55 ?        00:00:00 /home/git/go/src/github.com/gogits/gogs/gogs web

Vous pouvez vérifier que le serveur est en cours d’exécution en consultant le fichier + stdout.log +.

tail /var/log/gogs/stdout.log

Vous devriez voir une ligne comme ceci:

2015/03/09 14:24:42 [I] Gogs: Go Git Service 0.5.16.0301 Beta

Vous devriez également pouvoir visiter la page Web avec l’URL + http: //: 3000 / +. Cela redirigera vers la page d’installation, mais ne le remplissez pas pour le moment.

Étape 4 - Configurer Nginx en tant que proxy inverse

Passons maintenant à la configuration de * Nginx * en tant que proxy inverse afin de pouvoir facilement lier un nom de domaine à Gogs.

Tout d’abord, installez Nginx.

sudo apt-get -y install nginx

Ensuite, créez un fichier de configuration Nginx pour gogs.

sudo nano /etc/nginx/sites-available/gogs

Ajoutez le contenu suivant en remplaçant «++» par l’adresse IP de votre Droplet. Si vous utilisez un nom de domaine pour votre Droplet, vous pouvez également utiliser votre nom de domaine ici.

server {
   listen 80;
   server_name ;

   proxy_set_header X-Real-IP  $remote_addr; # pass on real client IP

   location / {
       proxy_pass http://localhost:3000;
   }
}

Et faites un lien symbolique pour que Nginx puisse l’utiliser.

sudo ln -s /etc/nginx/sites-available/gogs /etc/nginx/sites-enabled/gogs

Pour plus d’informations sur les fichiers de configuration d’hôte virtuel Nginx, consultez la page https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-14-04. -lts [tutoriel].

Enfin, redémarrez Nginx pour activer la configuration de l’hôte virtuel.

sudo service nginx restart

Vous devriez maintenant pouvoir visiter la page Web avec l’URL + http: /// +, sans spécifier le port.

Étape 5 - Initialiser Gogs

Il reste encore une étape simple pour initialiser Gogs pour sa première exécution.

Visitez + http: /// install + et complétez les options suivantes. Beaucoup d’entre elles seront déjà remplies pour vous, mais assurez-vous de remplacer les variables en rouge par les valeurs de votre serveur.

Dans la première section, * Gogs nécessite MySQL, PostgreSQL ou SQLite3 *, complétez:

  • Type de base de données: + MySQL

  • Hôte: +127.0.0.1: 3306 +

  • Utilisateur: + root

  • Mot de passe: ++

  • Nom de la base de données: + gogs +

Dans la deuxième section, * Paramètres généraux de Gogs *, remplissez:

  • Chemin racine du référentiel: + / home / git / gogs-repositories +

  • Exécuter l’utilisateur: + git +

  • Domaine: ++

  • Port HTTP: + 3000 +

  • URL de l’application: + http: /// +

Ignorez les paramètres facultatifs de courrier électronique et de notification, puis sous * Paramètres du compte administrateur *, choisissez un nom d’utilisateur et un mot de passe administrateur, puis indiquez votre adresse électronique. Nous nous référerons au nom d’utilisateur admin en tant que «++» à l’étape suivante.

Enfin, cliquez sur * Installer Gogs *, puis connectez-vous.

Étape 6 - Test Gogs

Vous êtes tous fait! Faisons un simple test pull / push pour s’assurer que Gogs fonctionne correctement.

Premièrement, allez sur + http: /// repo / create + et créez un référentiel avec le nom * my-test-repo *, et vous cliquez sur l’option * Initialiser ce référentiel avec un fichier README.md *.

Vous devriez maintenant pouvoir le cloner. Tout d’abord, déplacez-vous vers votre répertoire personnel.

cd

Ensuite, clonez le référentiel.

git clone http:////my-test-repo.git

Passez au répertoire du référentiel.

cd my-test-repo

Mettez à jour le fichier + README.md.

echo 'I love Gogs!' >> README.md

Commettez vos modifications et poussez-les. Cette commande vous demandera votre nom d’utilisateur et votre mot de passe Gogs.

git add --all && git commit -m "init commit" && git push origin master

Conclusion

Maintenant, si vous revenez à + ​​http: //// my-test-repo +, vous verrez la ligne «I love Gogs!» Ajoutée au fichier README. C’est si facile!