L'hébergement mutualisé pour tou·te·s, imaginé par des développeur·euse·s, pour des développeur·euse·s.
Découvrir le Cloud PublicGitLab est une plateforme de développement logiciel avec wiki, suivi de bugs, revue de code, intégration et déploiement continus…
Il est possible de l’installer sur le Cloud Privé - serveurs dédiés et Gold, voici les étapes à suivre.
Les SGBD PostgreSQL et Redis devront être installés sur le serveur. Si ce n’est pas le cas, contactez le support.
L’installation doit être effectuée sur un compte vide. Nous considérons les informations suivantes pour notre exemple :
foobar
2.7
14.17
GitLab a impérativement besoin de ces versions qui sont à définir dans le menu Environnement.
Créez la base de données PostgreSQL dans le menu Bases de données > PostgreSQL en activant les extensions pg_trgm
et btree_gist
.
Si vous utilisez une limite de RAM inférieure à 10 Go, augmentez-la dans le menu Avancé > Ressources.
Lancez les commandes suivantes en SSH à la racine du compte :
npm install --global yarn
git clone https://gitlab.com/gitlab-org/gitaly.git -b 14-4-stable gitaly
cd gitaly/
mkdir ~/local
make git GIT_PREFIX=~/local/
export PATH=~/local/bin/:$PATH
cd
rm -fr ~/gitaly
git clone https://gitlab.com/gitlab-org/gitlab-foss.git -b 14-4-stable gitlab
cd gitlab/
cp config/gitlab.yml.example config/gitlab.yml
sed -i "s,/home/git/,/home/$(whoami)/,g" config/gitlab.yml
sed -i "s,# user: git,user: $(whoami)," config/gitlab.yml
sed -i "s,bin_path: /usr/bin/git,bin_path: /home/$(whoami)/local/bin/git," config/gitlab.yml
Modification du fichier config/gitlab.yml
nano config/gitlab.yml
Dans la section production > gitlab modifiez :
host: localhost
pour renseigner l’adresse voulue du site Gitlab. Cela peut par exemple être l’adresse du compte : foobar.alwaysdata.net
.email
par les informations emails voulues. Par exemple :email_from: foobar@alwaysdata.net
email_reply_to: foobar@alwaysdata.net
cp config/secrets.yml.example config/secrets.yml
chmod 0600 config/secrets.yml
mkdir -p public/uploads
chmod 0700 public/uploads
cp config/puma.rb.example config/puma.rb
sed -i "s,/home/git/,/home/$(whoami)/,g" config/puma.rb
git config --global gc.auto 0
git config --global repack.writeBitmaps true
git config --global receive.advertisePushOptions true
git config --global core.fsyncObjectFiles true
cp config/resque.yml.example config/resque.yml
cp config/database.yml.postgresql config/database.yml
Modification du fichier config/database.yml
nano config/database.yml
Remplacez les clés database
, username
, host
et password
et la première section (production) par celles de votre compte. Exemple :
database: foobar_gitlab
username: foobar
password: "son mot de passe"
host: postgresql-foobar.alwaysdata.net
La base de données est celle créée en début de ce guide.
bundle config set --local deployment 'true'
bundle config set --local without 'development test mysql aws kerberos'
bundle install
bundle exec rake gitlab:shell:install RAILS_ENV=production
bundle exec rake "gitlab:workhorse:install[/home/$(whoami)/gitlab-workhorse]" RAILS_ENV=production
cd
git clone https://gitlab.com/gitlab-org/gitlab-pages.git
cd gitlab-pages
git checkout v$(<~/gitlab/GITLAB_PAGES_VERSION)
make
cd ~/gitlab
bundle exec rake "gitlab:gitaly:install[/home/$(whoami)/gitaly,/home/$(whoami)/repositories]" RAILS_ENV=production
~/gitlab/bin/daemon_with_pidfile ~/gitlab/tmp/pids/gitaly.pid ~/gitaly/_build/bin/gitaly ~/gitaly/config.toml >> ~/gitlab/log/gitaly.log 2>&1 &
bundle exec rake gitlab:db:configure RAILS_ENV=production
cp lib/support/init.d/gitlab ~/init
cp lib/support/init.d/gitlab.default.example ~/default
sed -i "s,/etc/default/gitlab,~/default,g" ~/init
sed -i 's,^exit$,[ "$2" = "-f" ] \&\& sleep infinity,g' ~/init
sed -i "s,app_user=\"git\",app_user=\"$(whoami)\"," ~/default
sed -i 's,-listenNetwork unix -listenAddr $socket_path/gitlab-workhorse.socket,-listenNetwork tcp -listenAddr [::]:8100,' ~/default
bundle exec rake gettext:compile RAILS_ENV=production
yarn install --production --pure-lockfile
bundle exec rake gitlab:assets:compile RAILS_ENV=production NODE_ENV=production
C’est cette dernière commande qui nécessite une quantité de RAM importante. La quantité nécessaire varie en fonction du nombre de cores et il peut être nécessaire de l’augmenter si vous rencontrez des erreurs à cette étape.
Créez un service avec les détails suivants :
~/init restart -f
Créez un site avec les détails suivants :
foobar.alwaysdata.net
true
Ce site doit impérativement écouter sur le port 8100
, à vérifier dans le texte explicatif du champ Commande. C’est normalement le cas, puisque c’est le seul site.
Le nom d’utilisateur du compte par défaut est root. Vous choisirez son mot de passe lors de la première connexion au site et pourrez changer son nom d’utilisateur par la suite.