Configuration détaillée pour construire Gogs à partir des sources

Après l'instruction de la construction des sources, vous devriez maintenant avoir un utilisateur local git et une configuration de travail de go et Gogs. Nous allons installer Gogs avec Nginx. De cette façon, nous pouvons profiter de Nginx. Ceci est utile pour les serveurs qui ont déjà un Nginx en cours d'exécution.

Pour le reste de ce document, nous posons les hypothèses suivantes :

  • Vous voulez utiliser 'Gogs' sur le domaine example.com
  • Nginx est votre serveur web
  • postgresql est votre serveur de base de données
  • et vous voulez que votre dépôt ressemblent à URL git git.example.com

Comme indiqué dans Configuration et fonctionnement, vous devez créer votre propre fichier de configuration dans $GOPATH/src/github.com/gogits/gogs/custom/conf/app.ini

Ensuite suivez les commandes suivantes :

sudo mkdir -p /var/log/gogs
sudo chown git:git /var/log/gogs
sudo su - git
cd ~
mkdir -p $GOPATH/src/github.com/gogits/gogs/custom/conf
mkdir -p ~/gogs-repositories

Maintenant, copiez le fichier de configuration de base afin que nous puissions le modifier :

cd $GOPATH/src/github.com/gogits/gogs
cp conf/app.ini custom/conf/

En utilisant votre éditeur préféré, ouvrez le fichier de configuration :

$GOPATH/src/github.com/gogits/gogs/custom/conf/app.ini

par exemple :

vi $GOPATH/src/github.com/gogits/gogs/custom/conf/app.ini

Configurer un serveur

À partir du haut, changer les clés suivantes dans différentes sections :

Section par défaut

RUN_USER=git

Section [repository]

ROOT=/home/git/gogs-repositories

Section [server]

DOMAIN = example.com
ROOT_URL = %(PROTOCOL)s://git.%(DOMAIN)s/
HTTP_ADDR = localhost
HTTP_PORT = 3000

Mise en place du serveur postgresql

Sous debian/ubuntu vous pouvez l'installer à l'aide de :

sudo apt-get install -y postgresql postgresql-client libpq-dev

Pour OSX utiliser brew:

brew install postgresql

Maintenant, la configuration de la base de données pour que l'utilisateur 'git' y accède :

Première connexion à psql :

# Login to PostgreSQL
sudo -u postgres psql -d template1

Ensuite, au sein de l'invite de psql, entrez :

CREATE USER git CREATEDB;

\password git

CREATE DATABASE gogs_production OWNER git;

\q

sudo -u git -H psql -d gogs_production

gogs_production> \q

Maintenant, nous pouvons mettre à jour app.ini, ouvrez à nouveau $GOPATH/src/github.com/gogits/gogs/custom/conf/app.ini dans votre éditeur et changez ce qui suit (assurez-vous que vous êtes l'utilisateur git, sinon faites sudo su - git):

Section [database]

DB_TYPE = postgres
HOST = 127.0.0.1:5432
NAME = gogs_production
USER = git
PASSWD =__postgresql_password_used_in_previous_step__
PATH = data/gogs.db

Mise en place du serveur Nginx

Sous debian/ubuntu vous pouvez l'installer à l'aide de:

sudo apt-get install -y nginx

Maintenant, nous allons créer un fichier de configuration Nginx pour Gogs :

sudo su - git
vi /tmp/gogs

Et y ajouter ce qui suit :

server {
    listen 80;
    server_name git.example.com;

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

Maintenant, ajoutez ce fichier à Nginx et redémarrez-le :

sudo mv /tmp/gogs /etc/nginx/sites-available/
sudo ln -s /etc/nginx/sites-available/gogs /etc/nginx/sites-enabled/gogs
sudo service nginx restart
sudo su - git
cd $GOPATH/src/github.com/gogits/gogs
./gogs web

Grâce à votre navigateur, vous devriez être en mesure de visiter git.example.com. Vous devez avoir un enregistrement DNS déclaré ou à défaut avoir mis à jour votre fichier /etc/hosts.

Bien sûr, si vous ne l'avez pas déjà fait dans la configuration initiale, un écran comme celui-ci va s'afficher:

installation page screenshot

Changez le Database Type à PostgreSQL si ce n'est pas déjà indiqué. Après avoir vérifié que les autres paramètres correspondent à ce que vous avez saisi dans le fichier app.ini, cliquez installer et profitez de votre nouvelles instance Gogs !

L'étape suivante pour intégré Gogs dans debian/ubuntu est de le lancer comme un service au démarrage du serveur.

Si vous voulez démarrer automatiquement Gogs a l'aide de systemd, voir la section de la FAQ.