GitLab est un système de contrôle de version basé sur le Web et un développement logiciel collaboratif basé sur Git. Ses fonctionnalités incluent des éléments tels que le référentiel de code, le wiki ou le système de suivi des problèmes. Dans cet article, je vais vous montrer comment installer l'édition communautaire de GitLab sur FreeBSD.
Faisons-le
Base de données
La seule base de données prise en charge est PostgreSQL. Vous pouvez suivre ce tutoriel si vous n'en avez pas en cours d'exécution :https://unixcop.com/how-to-install-postgresql-in-freebsd/ .
Nous aurons besoin de l'extension pgtrgm, si vous n'avez pas le port postgresl_contrib, installez-le avec :
# cd /usr/ports/databases/postgresql14-contrib
make install clean
Si vous utilisez des packages, installez-le avec :
pkg add postgresql14-contrib
Créez un utilisateur de base de données appelé git et la base de données de production gitlab :
root@fbsd:~ # su postgres
$ psql
psql (14beta1)
Type "help" for help.
postgres=# CREATE USER git CREATEDB SUPERUSER;
CREATE ROLE
postgres=# ALTER ROLE git WITH PASSWORD 'superpass';
ALTER ROLE
postgres=# CREATE DATABASE gitlabhq_production OWNER git;
CREATE DATABASE
Connectez-vous ensuite à la base de données gitlabhq_production et activez l'extension pg_trgm :
postgres=# \connect gitlabhq_production
You are now connected to database "gitlabhq_production" as user "postgres".
gitlabhq_production=# CREATE EXTENSION IF NOT EXISTS pg_trgm;
CREATE EXTENSION
GitLab-ce
Compilons maintenant gitlab-ce et ses dépendances :
root@fbsd:~ # cd /usr/ports/www/gitlab-ce/
root@fbsd:/usr/ports/www/gitlab-ce # make install clean
Cela prendra plus ou moins de temps selon les ports déjà installés. Suivez les instructions à l'écran. La compilation de tout a pris quelques heures sur mon ordinateur lent :
Redis
Le cache Redis doit être installé avec le port gitlab-ce ; si vous n'avez pas installé exécutez :
# cd /usr/ports/databases/redis
# make install clean
Ajoutez les lignes suivantes au fichier de configuration /usr/local/etc/redis.conf
:
unixsocket /var/run/redis/redis.sock
unixsocketperm 770
Cela activera et accordera des autorisations au socket redis. Activez maintenant les services Redis et démarrez-les :
# /usr/local/etc/rd.d/redis enable
# /usr/local/etc/rd.d/redis start
Ajoutez l'utilisateur git au groupe redis et nous en avons terminé avec la configuration redis :
# pw groupmod redis -m git
Préconfiguration Gitlab
Nous devons faire du travail supplémentaire.
Modifier le répertoire personnel de l'utilisateur git
Gitlab s'attend à ce que le répertoire personnel de l'utilisateur git soit /usr/home/git . Vous pouvez le modifier avec :
# chsh git
Comme je n'aime pas le programme vi, je vais changer en ee avec cette commande :
# EDITOR=/usr/bin/ee chsh git
Configurer gitlab
Accédez au répertoire d'installation de gitlab et modifiez le fichier de configuration :
# cd /usr/local/www/gitlab-ce
# ee config/gitlab.yml
Donc, je change host :localhost → host :192.168.122.234
(mon adresse IP car je n'ai pas de nom de domaine complet dans cette machine virtuelle de test), et je n'utilise pas https pour ce tutoriel. Et pour email_from j'utilise un noreply@localhost
générique . Vous pouvez rechercher ces éléments en appuyant sur ctrl-y
dans l'éditeur ee.
Dans config/unicorn.rb
définissez le nombre de nœuds de calcul sur au moins le nombre de cœurs :
# ee config/unicorn.rb
Passez à l'utilisateur git et exécutez ce qui suit :
# su - git
$ git config --global core.autocrlf input
$ git config --global gc.auto 0
$ git config --global repack.writeBitmaps true
$ git config --global receive.advertisePushOptions true
Le premier est pour l'éditeur Web qui a besoin d'autocrlf; la seconde, c'est parce que GitLab exécutera "git gc" en cas de besoin ; le troisième active les bitmaps packfile ; et le dernier active les options push.
Configurez les paramètres de la base de données dans config/database.yml
:
Initialiser la BD
Accordez des autorisations d'écriture temporaires à l'utilisateur git :
# chown git /usr/local/share/gitlab-shell
Initialisez la base de données avec cette commande (en tant qu'utilisateur git) :
# su - git
$ cd /usr/local/www/gitlab-ce/
$ rake gitlab:setup RAILS_ENV=production
Revenez à l'utilisateur root et annulez les autorisations temporaires :
# chown root /usr/local/share/gitlab-shell
Nous y sommes presque, vérifions si tout jusqu'à présent est configuré correctement :
# su - git
$ cd /usr/local/www/gitlab-ce && rake gitlab:env:info RAILS_ENV=production
Maintenant, continuez (en tant qu'utilisateur git) à compiler les fichiers et ressources GetText PO :
$ rake gettext:compile RAILS_ENV=production
Created app.js in /usr/local/www/gitlab-ce/app/assets/javascripts/locale/bg
Created app.js in /usr/local/www/gitlab-ce/app/assets/javascripts/locale/de
(...)
All files created, make sure they are being added to your assets.
If they are not, you can add them with this line (configurable):
//= require_tree ./locale
//= require gettext/all
$ yarn install --production --pure-lockfile
yarn install v1.22.10
[1/5] Validating package.json...
[2/5] Resolving packages...
(...)
success Dependency postinstall check passed.
Done in 150.47s.
$ rake gitlab:assets:compile RAILS_ENV=production NODE_ENV=production
[long output that I didn't capture the begin because a distraction]
`gitlab:assets:fix_urls` finished in 31.47730386 seconds
`gitlab:assets:check_page_bundle_mixins_css_for_sideeffects` finished in 10.420508114 seconds
$ ^d
Maintenant, activez et démarrez le service GitLab, exécutez en tant que root :
# /usr/local/etc/rc.d/gitlab enable
gitlab enabled in /etc/rc.conf
# /usr/local/etc/rc.d/gitlab start
Nginx
Ngninx est le serveur Web officiellement pris en charge. Installez-le avec :
# cd /usr/ports/www/nginx
make install clean
La configuration de nginx est assez simple :incluez la configuration fournie par gitlab en ajoutant la ligne suivante dans le bloc http dans /usr/local/etc/nginx/nginx.conf
:
include /usr/local/www/gitlab-ce/lib/support/nginx/gitlab;
Activer et démarrer Nginx :
# /usr/local/etc/rc.d/nginx enable
# /usr/local/etc/rd.d/nginx start
Première connexion
Comme vu à la fin de l'initialisation de la base de données, il vous sera demandé de changer le mot de passe root :
Et ça y est, vous pouvez maintenant vous connecter avec l'utilisateur root et le nouveau mot de passe, et commencer à travailler.
Où aller à partir d'ici
Comme je le dis toujours :allez dans la documentation, dans GitLab, c'est inclus dans le menu en haut à droite de l'écran :
Et dans l'écran suivant, vous trouverez des liens utiles comme :