Gogs est un service Git gratuit et open source écrit en langage Go. Gogs est un service git auto-hébergé indolore qui vous permet de créer et d'exécuter votre propre serveur Git sur un serveur matériel minimal. L'interface utilisateur Web de Gogs est très similaire à GitHub et offre une prise en charge des bases de données MySQL, PostgreSQL et SQLite.
Dans ce didacticiel, nous vous montrerons étape par étape comment installer et configurer votre propre service Git à l'aide de Gogs sur Ubuntu 16.04. Ce didacticiel couvrira les détails, y compris comment installer Go sur le système Ubuntu, installer PostgreSQL et installer et configurer le serveur Web Nginx en tant que proxy inverse pour l'application Go.
Prérequis
- Ubuntu 16.04
- Privilèges root
Ce que nous allons faire
- Système de mise à jour et de mise à niveau
- Installer et configurer PostgreSQL
- Installer Go et Git
- Installer Gogs
- Configurer Gogs
- Exécuter Gogs en tant que service
- Installer et configurer Nginx en tant que proxy inverse
- Test
Étape 1 - Mise à jour et mise à niveau du système
Avant d'aller plus loin, mettez à jour tous les référentiels Ubuntu et mettez à niveau tous les packages.
Exécutez les commandes apt ci-dessous.
mise à jour de sudo apt
mise à niveau de sudo apt
Étape 2 - Installer et configurer PostgreSQL
Gogs prend en charge les systèmes de base de données MySQL, PostgreSQL, SQLite3, MSSQL et TiDB.
Dans ce guide, nous utiliserons PostgreSQL comme base de données pour nos installations Gogs.
Installez PostgreSQL à l'aide de la commande apt ci-dessous.
sudo apt install -y postgresql postgresql-client libpq-dev
Une fois l'installation terminée, démarrez le service PostgreSQL et activez-le pour qu'il se lance à chaque démarrage du système.
systemctl démarrer postgresql
systemctl activer postgresql
La base de données PostgreSQL a été installée sur un système Ubuntu.
Ensuite, nous devons créer une nouvelle base de données et un nouvel utilisateur pour Gogs.
Connectez-vous en tant qu'utilisateur 'postgres' et exécutez la commande 'psql' pour obtenir le shell PostgreSQL.
su - postgres
psql
Créez un nouvel utilisateur nommé 'git' et donnez les privilèges d'utilisateur pour 'CREATEDB'.
CREATE USER git CREATEDB;
\password git
Créez une base de données nommée 'gogs_production' et définissez l'utilisateur 'git' comme propriétaire de la base de données.
CRÉER LA BASE DE DONNÉES gogs_production PROPRIÉTAIRE git ;
La nouvelle base de données PostgreSQL 'gogs_production' et l'utilisateur 'git' pour l'installation de Gogs ont été créés.
Étape 3 - Installer Go et Git
Installez Git à partir du référentiel à l'aide de la commande apt ci-dessous.
sudo apt install git
Ajoutez maintenant le nouvel utilisateur 'git' au système.
sudo adduser --disabled-login --gecos 'Gogs' git
Connectez-vous en tant qu'utilisateur 'git' et créez un nouveau répertoire 'local'.
su - git
mkdir -p /home/git/local
Allez dans le répertoire 'local' et téléchargez 'Go' (la dernière version) en utilisant la commande wget comme indiqué ci-dessous.
cd ~/local
wget https://dl.google.com/go/go1.9.2.linux-amd64.tar.gz
Extrayez le fichier compressé go, puis supprimez-le.
tar -xf go1.9.2.linux-amd64.tar.gz
rm -f go1.9.2.linux-amd64.tar.gz
Le fichier binaire 'Go' a été téléchargé dans le répertoire '~/local/go'. Nous devons maintenant configurer l'environnement - nous devons définir les répertoires "GOROOT" et "GOPATH" afin de pouvoir exécuter une commande "go" sur le système sous l'utilisateur "git".
Exécutez toutes les commandes suivantes.
cd ~/
echo 'export GOROOT=$HOME/local/go'>> $HOME/.bashrc
echo 'export GOPATH=$HOME/go'>> $HOME/.bashrc
echo 'export PATH=$PATH:$GOROOT/bin:$GOPATH/bin'>> $HOME/.bashrc
Et rechargez Bash en exécutant la commande 'source ~/.bashrc' comme indiqué ci-dessous.
source ~/.bashrc
Assurez-vous d'utiliser Bash comme shell par défaut.
Exécutez maintenant la commande 'go' pour vérifier la version.
version de lancement
Et assurez-vous d'obtenir le résultat comme indiqué dans la capture d'écran suivante.
Go est maintenant installé sur le système sous l'utilisateur 'git'.
Étape 4 - Installer le service Gogs Go Git
Connectez-vous en tant qu'utilisateur « git » et téléchargez « Gogs » depuis GitHub à l'aide de la commande « go ».
su - git
aller chercher -u github.com/gogits/gogs
La commande téléchargera tout le code source de Gogs dans le répertoire 'GOPATH/src'.
Accédez au répertoire '$GOPATH/src/github.com/gogits/gogs' et créez des gogs à l'aide des commandes ci-dessous.
cd $GOPATH/src/github.com/gogits/gogs
construire
Et assurez-vous que vous n'obtenez aucune erreur.
Exécutez maintenant le service Gogs Go Git à l'aide de la commande ci-dessous.
./gogsweb
La commande exécutera Gogs sur le port par défaut 3000.
Ouvrez votre navigateur Web et tapez l'adresse IP de votre serveur avec le port 3000, la mienne est http://192.168.33.10:3000/
Et vous devriez obtenir le résultat comme indiqué ci-dessous.
Gogs est installé sur le système Ubuntu. Revenez maintenant à votre terminal et appuyez sur 'Ctrl + c' pour quitter.
Étape 5 - Configurer le service Gogs Go Git
Dans cette étape, nous allons créer une configuration personnalisée pour Gogs.
Allez dans le répertoire d'installation de Gogs et créez un nouveau répertoire 'custom/conf'.
cd $GOPATH/src/github.com/gogits/gogs
mkdir -p custom/conf/
Copiez la configuration par défaut dans le répertoire personnalisé et modifiez-la à l'aide de vim.
cp conf/app.ini custom/conf/app.ini
vim custom/conf/app.ini
Dans le '[serveur] ', remplacez le serveur 'HOST_ADDR' par '127.0.0.1'.
[serveur]
PROTOCOL =http
DOMAINE =localhost
ROOT_URL =%(PROTOCOL)s://%(DOMAIN)s :%(HTTP_PORT)s/
HTTP_ADDR =127.0.0.1
HTTP_PORT =3000
Dans la '[base de données] ', changez tout avec vos propres informations de base de données.
[database]
DB_TYPE =postgres
HOST =127.0.0.1:5432
NAME =gogs_production
USER =git
PASSWD =[email protected]#Enregistrez et quittez.
Vérifiez maintenant la configuration en exécutant la commande comme indiqué ci-dessous.
./gogswebEt assurez-vous d'obtenir le résultat comme suit.
Gogs fonctionne maintenant avec notre configuration personnalisée, sous 'localhost' avec le port 3000.
Étape 6 - Exécuter Gogs en tant que service
Dans cette étape, nous allons configurer Gogs en tant que service sur le système Ubuntu. Nous allons créer une nouvelle configuration de fichier de service 'gogs.service' sous le répertoire '/etc/systemd/system'.
Accédez au répertoire "/etc/systemd/system" et créez un nouveau fichier de service "gogs.service" à l'aide de l'éditeur vim.
cd /etc/systemd/system
vim gogs.serviceCollez-y la configuration de service gogs suivante.
[Unité]
Description=Gogs
Après=syslog.target
Après=network.target
Après=mariadb.service mysqld.service postgresql.service memcached.service redis .service
[Service]
# Modifiez ces deux valeurs et décommentez-les si vous avez
# des dépôts avec beaucoup de fichiers et obtenez une erreur HTTP 500 car
# dont
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
Type=simple
User=git
Group=git
WorkingDirectory=/home/git/go/src/github.com/gogits/gogs
ExecStart=/home/git/go/src/github.com/gogits/gogs/gogs web
Redémarrer=toujours
Environment=USER=git HOME=/home/git
[Installer]
WantedBy=multi-user.targetEnregistrez et quittez.
Rechargez maintenant les services systemd.
rechargement du démon systemctlDémarrez le service gogs et activez-le pour qu'il se lance à chaque démarrage du système à l'aide de la commande systemctl.
systemctl start gogs
systemctl enable gogs
Gogs fonctionne maintenant en tant que service sur le système Ubuntu.
Vérifiez-le en utilisant les commandes ci-dessous.
netstat -plntu
état gogs systemctlEt vous devriez obtenir le résultat comme indiqué ci-dessous.
Étape 7 - Configurer Nginx en tant que proxy inverse pour Gogs
Dans cette étape, nous allons configurer Nginx en tant que proxy inverse pour Gogs. Nous utiliserons les packages Nginx à partir de son propre référentiel.
Ajoutez le référentiel Nginx à l'aide de la commande add-apt.
sudo add-apt-repository -y ppa:nginx/stableMaintenant, mettez à jour tous les référentiels Ubuntu et installez Nginx à l'aide de la commande apt ci-dessous.
sudo apt update
sudo apt install nginx -yEnsuite, allez dans le répertoire '/etc/nginx/sites-available' et créez un nouveau fichier d'hôte virtuel 'gogs'.
cd /etc/nginx/sites-available
vim gogsCollez-y la configuration suivante.
server {
listen 80 ;
nom_serveur git.hakase-labs.co ;
location / {
proxy_pass http://localhost:3000 ;
}
}Enregistrez et quittez.
Remarque :
Remplacez la ligne 'server_name' par votre propre nom de domaine.
Activez maintenant un nouvel hôte virtuel et testez la configuration nginx.
ln -s /etc/nginx/sites-available/gogs /etc/nginx/sites-enabled/
nginx -tAssurez-vous qu'il n'y a pas d'erreur, puis redémarrez le service Nginx.
systemctl redémarrer nginx
Étape 8 - Tester
Ouvrez votre navigateur Web et saisissez l'URL de votre gog, la mienne est http://git.hakase-labs.co
Vous obtiendrez maintenant la page d'installation. En haut de la page, saisissez toutes les informations de votre base de données PostgreSQL.
Maintenant, faites défiler vers le bas et cliquez sur le menu déroulant "Paramètres du compte administrateur".
Saisissez votre utilisateur administrateur, votre mot de passe et votre adresse e-mail.
Cliquez ensuite sur le bouton "Installer Gogs".
Et vous serez redirigé vers le tableau de bord de l'utilisateur Gogs comme indiqué ci-dessous.
Vous trouverez ci-dessous le "tableau de bord d'administration" de Gogs.
Gogs est maintenant installé avec la base de données PostgreSQL et le serveur Web Nginx sur le serveur Ubuntu 16.04