Installer GitLab CE sur Ubuntu 16.04 (Xenial Xerus) — guide pas à pas

Ce guide explique, étape par étape, comment installer GitLab Community Edition (omnibus) sur un serveur Ubuntu 16.04 64 bits, activer HTTPS avec Let’s Encrypt, configurer UFW et effectuer les vérifications post-installation. Suivez les commandes fournies, adaptez le domaine à votre environnement et gardez un accès root pour les étapes système.
Important : ce tutoriel utilise gitlab.hakase-labs.co comme exemple de domaine. Remplacez ce domaine par le vôtre partout où il apparaît.
Ce document explique l’installation de GitLab Community Edition (CE) en mode self-hosted sur Ubuntu 16.04 LTS en utilisant le package omnibus fourni par GitLab. Il couvre l’installation des paquets requis, la génération de certificats TLS via Let’s Encrypt, la configuration de Nginx pour HTTPS, la configuration du pare-feu UFW et les vérifications post-installation.
Définition (1 ligne) : GitLab CE est une solution open source de gestion de dépôts Git avec fonctions d’intégration continue, suivi des problèmes, revue de code et gestion de merges.
Principales éditions de GitLab (résumé)
- GitLab CE (Community Edition) — self-hosted, gratuit, support communautaire.
- GitLab EE (Enterprise Edition) — self-hosted, payant, fonctionnalités avancées.
- GitLab.com — SaaS proposé par GitLab Inc., plan gratuit disponible.
- GitLab.io — instances privées gérées par GitLab Inc.
Table des matières rapide
- Prérequis
- Étape 1 : installation des paquets requis
- Étape 2 : ajout du dépôt et installation de GitLab CE
- Étape 3 : configuration de l’URL principale
- Étape 4 : génération des certificats Let’s Encrypt et dhparam
- Étape 5 : activation HTTPS via Nginx
- Étape 6 : configuration du pare-feu UFW
- Étape 7 : post-installation et configuration initiale
- Étape 8 : tests (création de projet, commit, push)
- Astuces, dépannage et bonnes pratiques
- Checklist par rôle
- FAQ
- Résumé
Prérequis
- Serveur Ubuntu 16.04 LTS (Xenial Xerus) 64 bits.
- Minimum 2 Go de RAM.
- Accès root ou sudo.
- Nom de domaine pointant vers l’IP publique du serveur (ex. gitlab.hakase-labs.co).
- Ports 80 et 443 accessibles depuis l’extérieur pour la validation Let’s Encrypt et l’accès HTTPS.
Étape 1 - Installer les paquets requis
Connectez-vous en tant que root (ou utilisez sudo). Mettez à jour les dépôts :
ssh root@GitLabServer
apt-get update
Installez curl, openssh-server, ca-certificates et postfix (pour l’envoi d’emails) :
sudo apt install curl openssh-server ca-certificates postfix
Pendant l’installation de postfix, choisissez “Internet Site” comme type de configuration lorsque l’assistant vous le propose, puis fournissez le nom de domaine utilisé pour l’envoi d’e-mails.
Note : si vous préférez utiliser un service SMTP externe (ex. SendGrid, Mailgun, SMTP de votre fournisseur), vous pouvez configurer GitLab pour utiliser ce relais au lieu de postfix local.
Étape 2 - Installer GitLab CE (omnibus)
Ajoutez le dépôt GitLab et installez le package omnibus pour GitLab CE :
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
Puis installez GitLab CE :
sudo apt install gitlab-ce
Attendez la fin du téléchargement et de l’installation. Le processus installe plusieurs services (PostgreSQL, Redis, Nginx intégré, Sidekiq, etc.).
Étape 3 - Configurer l’URL principale de GitLab
Éditez le fichier de configuration principal situé dans /etc/gitlab/gitlab.rb :
cd /etc/gitlab
vim gitlab.rb
Recherchez la ligne external_url et définissez votre URL (remplacez l’exemple) :
external_url 'http://gitlab.hakase-labs.co'
Sauvegardez et quittez. Nous activerons ensuite HTTPS et mettrons à jour cette valeur pour utiliser https://.
Étape 4 - Générer les certificats SSL Let’s Encrypt et dhparam
Installez l’outil Let’s Encrypt (certbot) puis générez un certificat pour votre domaine :
sudo apt install letsencrypt -y
Générez le certificat (mode certonly) pour votre domaine :
letsencrypt certonly -d gitlab.hakase-labs.co
Fournissez une adresse e‑mail pour les notifications de renouvellement et acceptez les conditions d’utilisation.
Après réussite, les certificats seront sous /etc/letsencrypt/live/gitlab.hakase-labs.co/ (privkey.pem, fullchain.pem).
Créez ensuite le répertoire SSL de GitLab et générez un fichier dhparams pour améliorer la sécurité des échanges TLS :
mkdir -p /etc/gitlab/ssl/
sudo openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048
Restreignez les permissions des clés :
chmod 600 /etc/gitlab/ssl/*
Note : la génération de dhparam peut prendre plusieurs minutes selon la puissance CPU.
Étape 5 - Activer HTTPS via Nginx intégré à GitLab
Mettez à jour gitlab.rb pour utiliser HTTPS et pointez les chemins vers les certificats Let’s Encrypt :
cd /etc/gitlab/
vim gitlab.rb
Modifiez external_url pour utiliser https :
external_url 'https://gitlab.hakase-labs.co'
Ajoutez ou modifiez les paramètres Nginx suivants :
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.hakase-labs.co/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.hakase-labs.co/privkey.pem"
nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"
Sauvegardez et appliquez la configuration :
sudo gitlab-ctl reconfigure
Si reconfigure se termine sans erreur, Nginx servira GitLab sur HTTPS avec redirection automatique de HTTP vers HTTPS.
Conseil sécurité : vérifiez le protocole TLS et les suites utilisées (ex. via SSL Labs). Si nécessaire, durcissez la configuration TLS en modifiant nginx[‘ssl_protocols’] et nginx[‘ssl_ciphers’] dans gitlab.rb.
Étape 6 - Configurer le pare-feu UFW
Activez et configurez UFW pour autoriser SSH, HTTP et HTTPS :
ufw enable
ufw allow ssh
ufw allow http
ufw allow https
Vérifiez l’état :
ufw status
Assurez-vous que le port SSH reste accessible pour éviter de vous couper l’accès.
Étape 7 - Post-installation et configuration initiale
Ouvrez votre navigateur à l’adresse https://gitlab.hakase-labs.co. À la première connexion, vous devrez réinitialiser le mot de passe du compte root.
Connectez-vous ensuite avec l’utilisateur root et le nouveau mot de passe :
Mettez à jour votre profil (Nom, email) et changez le nom d’utilisateur si vous le souhaitez.
Ajoutez votre clé SSH (contenu de id_rsa.pub) dans l’onglet Clés SSH pour pouvoir pousser sans mot de passe :
ssh-keygen
Configurez les limites (max de projets par utilisateur) et les restrictions d’inscription dans l’interface d’administration > Paramètres > Comptes et limites.
Étape 8 - Tests de fonctionnement
Créez un nouveau projet via l’interface (icône plus) et vérifiez que la page de projet s’affiche correctement.
Sur votre poste local, configurez Git si nécessaire :
git config --global user.name "hakase"
git config --global user.email "[email protected]"
Clonez le dépôt créé, ajoutez un README.md, puis commit et push :
git clone https://[email protected]/hakase/howtoforge.git
cd howtoforge/
vim README.md
git add .
git commit -m 'Add README.md file by hakase-labs'
git push origin master
Saisissez le mot de passe si vous n’avez pas configuré la clé SSH. Vérifiez que le fichier apparaît dans l’interface web.
GitLab CE est maintenant installé et accessible via HTTPS.
Astuces, dépannage et bonnes pratiques
Important
- Sauvegardez /etc/gitlab/gitlab.rb et /etc/gitlab before upgrade. Une simple copie vous permettra de restaurer la configuration.
- Testez le renouvellement automatique de Let’s Encrypt (certbot renew) et planifiez une tâche cron si nécessaire.
Dépannage courant
- Erreur 500 après reconfigure : vérifiez les logs dans /var/log/gitlab/ (nginx, gitlab-rails, sidekiq).
- Nginx ne démarre pas : vérifiez nginx[‘ssl_certificate’] et nginx[‘ssl_certificate_key’] et leurs permissions.
- Let’s Encrypt échoue à valider le domaine : assurez-vous que le port 80 est ouvert et que le nom de domaine pointe vers l’IP du serveur.
Commandes utiles
- Redémarrer GitLab : sudo gitlab-ctl restart
- Vérifier l’état des services : sudo gitlab-ctl status
- Voir les logs en temps réel : sudo gitlab-ctl tail
- Regénérer la configuration Nginx après modification : sudo gitlab-ctl reconfigure
Sécurité
- Activez 2FA pour les comptes administrateurs.
- Limitez l’inscription publique si c’est un GitLab privé.
- Mettez en place un plan de sauvegarde régulier (gitlab-rake gitlab:backup:create).
RGPD / confidentialité (notes pour installations en Europe)
- Si vous traitez des données personnelles, documentez quels comptes et données sont stockés.
- Vérifiez la rétention des logs et informez les utilisateurs sur la gestion des données personnelles.
Comparaison rapide : éditions GitLab
Édition | Hébergement | Coût | Cas d’usage typique |
---|---|---|---|
CE | Self-hosted | Gratuit | PMEs, projets open source, équipes techniques souhaitant contrôle total |
EE | Self-hosted | Payant | Grandes entreprises nécessitant fonctionnalités avancées et support |
GitLab.com | SaaS | Gratuit/Payant | Rapide à déployer, sans gestion infra |
Checklist d’installation (résumé opérationnel)
Avant l’installation
- Nom de domaine pointant vers le serveur
- Accès root / sudo testé
- Ports 80/443/22 ouverts
Après l’installation
- HTTPS fonctionnel et certificat valide
- SSH key ajoutée et push testé
- Sauvegarde de gitlab.rb réalisée
- Politique d’inscription définie
- Plan de sauvegarde configuré
Checklists par rôle
Administrateur système
- Vérifier les sauvegardes et restaurations
- Configurer la surveillance (CPU/RAM/IO)
- Planifier mises à jour et tests de montée de version
Développeur
- Ajouter sa clé SSH
- Créer un projet
- Tester clone, commit, push, merge request
Sécurité / Compliance
- Activer 2FA pour comptes sensibles
- Configurer l’audit et la journalisation
- Réviser les droits de groupe et de projet
Méthodologie mini — installer GitLab en 8 étapes (résumé)
- Préparer serveur et DNS.
- Installer paquets requis (curl, postfix, openssh).
- Ajouter dépôt omnibus et installer gitlab-ce.
- Configurer external_url.
- Générer certificats Let’s Encrypt et dhparam.
- Mettre à jour gitlab.rb pour HTTPS et reconfigure.
- Configurer UFW et vérifier accès.
- Tester via UI et git depuis un poste de dev.
Flux de décision (quel type d’installation choisir ?)
flowchart TD
A[Démarrage] --> B{Souhaitez-vous gérer l'infrastructure ?}
B -- Oui --> C[Self-hosted]
B -- Non --> D[GitLab.com 'SaaS']
C --> E{Fonctionnalités avancées requises ?}
E -- Oui --> F[GitLab EE]
E -- Non --> G[GitLab CE]
D --> H[Créer compte GitLab.com]
F --> I[Acheter licence et installer]
G --> J[Installer omnibus CE]
FAQ
Q : Puis-je réutiliser ce guide sur Ubuntu 18.04/20.04 ?
R : Les principes sont identiques mais les paquets et noms des dépôts peuvent différer. Utilisez la documentation officielle GitLab pour la version cible.
Q : Comment renouveler automatiquement Let’s Encrypt ?
R : Utilisez certbot renew et planifiez une tâche cron (ex. quotidien ou hebdomadaire). Testez le renouvellement avec certbot renew –dry-run.
Q : Où sauvegarder les configurations et les dépôts Git ?
R : Utilisez gitlab-rake gitlab:backup:create pour créer des sauvegardes complètes et stockez-les hors serveur (S3, espace réseau sécurisé, etc.).
Annexes
Liens officiels et ressources
Critères d’acceptation
- GitLab accessible en HTTPS via le nom de domaine configuré.
- Connexion avec l’utilisateur root possible et mot de passe initial réinitialisé.
- Possibilité de créer un projet, commit et push depuis une machine cliente.
- Certificat Let’s Encrypt installé et valide.
Résumé
- Vous avez installé GitLab CE via le package omnibus.
- Vous avez configuré HTTPS avec Let’s Encrypt et sécurisé le serveur avec UFW.
- Vous avez testé la création d’un projet et un push Git depuis un poste client.
Points clés à retenir
- Sauvegardez régulièrement votre installation et vos données.
- Sécurisez les accès administratifs (SSH, 2FA).
- Surveillez les certificats et automatisez leur renouvellement.
Fin du guide.
Matériaux similaires

Regarder Netflix sur Discord — guide complet

Désactiver les notifications Get Office sur Windows 10

Audio absent après KB5015878 — Windows 10

Addition, produit et modulation de signaux audio

Ajouter un widget de contact sur Android
