documentation_technique:gitea

Ceci est une ancienne révision du document !


Contexte

Installation de Gogs sur juris.

Installation

sudo apt update; sudo apt upgrade
sudo apt install -y git mercurial
sudo apt install -y mariadb-server
$ sudo mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Le mot de passe root pour la connexion à MariaDB ce trouve dans notre utilitaire de mot de passe.

sudo mysql -u"root" -p

CREATE DATABASE IF NOT EXISTS gogs_RAND CHARACTER SET utf8 COLLATE utf8_general_ci;

Note : RAND est à remplacer par une chaîne de caractère aléatoire de votre choix.

CREATE USER 'gogs_RAND'@'localhost' IDENTIFIED BY 'gogs_RAND_PASSWORD_HERE';

GRANT ALL PRIVILEGES ON gogs_RAND.* TO 'gogs_RAND'@'localhost';

Le mot de passe gogs_RAND_PASSWORD_HERE de l'utilisateur gogs_RAND de la BDD gogs_RAND est disponible dans notre utilitaire de mot de passe.

Note : RAND est à remplacer par une chaîne de caractère aléatoire de votre choix.

Cet utilisateur servira à contenir le service et les fichiers Gogs.

sudo adduser --disabled-login --gecos 'Gogs' git
Le langage Go ne nécessite que des binaires statiques pour fonctionner.

(PS : Les dépôts d'Ubuntu 16.04 ne disposent que de la version 1.6 de golang, la dernière en date est la 1.8rc2 avec comme bonne nouvelles un gain de performance non négligeable de plus de 20%)

sudo su - git
cd ~
mkdir local
wget https://storage.googleapis.com/golang/go1.8.linux-amd64.tar.gz
sha256sum go1.8.linux-amd64.tar.gz

Sortie du hash sha256sum nécessaire :

53ab94104ee3923e228a2cb2116e5e462ad3ebaeea06ff04463479d7f12d27ca

Sortie du hash sha256sum lors de l'installation (correcte) :

git@juris:~$ sha256sum go1.8.linux-amd64.tar.gz
53ab94104ee3923e228a2cb2116e5e462ad3ebaeea06ff04463479d7f12d27ca  go1.8.linux-amd64.tar.gz

Si tout est bon, on décompresse dans le dossier local golang 1.8 :

tar -C /home/git/local -xzf go1.8.linux-amd64.tar.gz
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

source $HOME/.bashrc
go get -u github.com/gogits/gogs
cd $GOPATH/src/github.com/gogits/gogs

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

mkdir -p custom/conf/

vi app.ini

(PS : Cette étape permet d'avoir un accès web à Gogs et de remplir depuis la page d'installation de gogs http://git.hadoly.fr:3000/ le fichier de configuration 'custom')

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

Voici les informations entrées :

--- Connexion BDD
Type : MySQL
Utilisateur : gogs_RAND
Nom de la BDD : gogs_RAND
Mot de passe de l'utilisateur : BDD_PASSWORD_gogs_RAND_HERE

--- Configuration Gogs
Domaine (avec port) : [http://git.hadoly.fr:7574/](http://git.hadoly.fr:7574/)

--- Options avancés
[x] Enable Offline Mode
[x] Disable Gravatar Service
[x] Enable Captcha

--- Admin account Settings
Username : admin_or_anything
Password : YOUR_ADMIN_PASSWORD_HERE
Admin Email : your_m@il.here

Pour modifier ces paramètres manuellement, ça ce passe dans ce fichier de configuration :

sudo vi /home/git/go/src/github.com/gogits/gogs/custom/conf/app.ini

Ce fichier surcharge la configuration par défaut de gogs fournie dans le fichier :

/home/git/go/src/github.com/gogits/gogs/conf/app.ini

Astuce : Utiliser la génération automatique de ce fichier via le configurateur web est une bonne manière de ne pas faire de faute de typo.

Nous allons maintenant faire en sorte que Gogs s'exécute de la même façon qu'un service, pour cela nous utiliserons l'utilitaire supervisord.

sudo apt install -y supervisor

sudo vim /etc/supervisor/supervisord.conf

[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

Création de l'arborescence pour les journaux Gogs :

sudo mkdir -p /var/log/gogs

De ce fait, si vous souhaiter voir les logs de Gogs :

sudo tail -f /var/log/gogs/stdout.log

Arrêt/Relance de supervisord pour valider la configuration :

sudo service supervisor restart

Aide diverses et sources (utilisée et/ou lues) : - http://doc.hadoly.fr/Documentation_technique/Vhost/ - https:%%//%%gogs.io/docs/installation/install_from_source - https:%%//%%gogs.io/docs/installation/configuration_and_run - https:%%//%%www.digitalocean.com/community/tutorials/how-to-set-up-gogs-on-ubuntu-14-04

Type d'authentification : LDAP (via BindDN)
Protocole de sécurité : LDAPS
Hôte : leodagan.hadoly.fr
Port : 636
Bind DN : uid=gogs-account,ou=people,ou=service,dc=hadoly,dc=fr
Bind mot de passe : motdepassesecret
Utilisateur Search Base : dc=hadoly,dc=fr
Filtre utilisateur : (&(objectclass=person)(uid=%s)(memberof=cn=gogs_group,ou=groups,dc=hadoly,dc=fr))
Filtre administrateur : Vide
Attribut nom d'utilisateur : uid
Attribut du prénom : givenName
Attribut du nom de famille : sn
Attribut de l'e-mail : mail
[ ] Alllez chercher les attributs dans le contexte de liaison DN
[x] Ne pas vérifier TLS
[x] Authentification activée

2017-06-12 Darcidride : intégration avec LDAP (pas encore rédigé) et ce n'est pas moi qui est effectué l'opération… Objectif: Seuls les membres du groupe LDAP git?_group peuvent accéder au service

  • documentation_technique/gitea.1547999028.txt.gz
  • Dernière modification : 01/20/2019 15:43:48
  • de bfaverdin