Comment installer GitLab Community Edition (CE) 11.x sur Debian 9

Depuis l'acquisition de GitHub par Microsoft, plusieurs développeurs ont prévu de migrer leurs propres référentiels de code de github.com vers une autre solution auto-hébergée. GitLab Community Edition (CE) est le choix le plus courant.

En tant que solution sophistiquée et flexible, GitLab CE peut être déployé à l'aide de différentes méthodes, mais seule la méthode officiellement recommandée, l'installation du package Omnibus, sera couverte ici.

Conditions préalables

  • Une nouvelle instance de serveur Vultr Debian 9 x64 avec au moins 4 Go de mémoire. 8 Go ou plus est recommandé pour desservir jusqu'à 100 utilisateurs. Supposons que son adresse IPv4 soit 203.0.113.1.
  • Un utilisateur sudo .
  • Un domaine gitlab.example.compointé vers l'instance mentionnée ci-dessus.

Remarque: lors du déploiement sur votre propre instance de serveur, veillez à remplacer toutes les valeurs d'exemple par des valeurs réelles.

Étape 1: effectuer des tâches de base pour l'hébergement de GitLab CE

Lancez un terminal SSH et connectez-vous à votre instance de serveur Debian 9 x64 en tant qu'utilisateur sudo.

Ajouter une partition de swap et modifier le paramètre de swapiness

Lors du déploiement de GitLab CE 11.x sur une machine avec 4 Go de mémoire, il est nécessaire de configurer une partition de swap de 4 Go pour un bon fonctionnement.

sudo dd if=/dev/zero of=/swapfile count=4096 bs=1M
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile   none    swap    sw    0   0' | sudo tee -a /etc/fstab
free -m

Remarque: Si vous utilisez une taille de serveur différente, la taille de la partition de swap peut varier.

Pour des raisons de performances du système, il est recommandé de configurer le paramètre de permutation du noyau sur une valeur faible comme 10:

echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
cat /proc/sys/vm/swappiness

La sortie de la catcommande sera 10.

Configurez le nom d'hôte de la machine et le nom de domaine complet (FQDN)

Utilisez les commandes suivantes pour configurer un nom d'hôte gitlab, et un nom de domaine complet gitlab.example.com, pour la machine:

sudo hostnamectl set-hostname gitlab
sudo sed -i "1 i\203.0.113.1 gitlab.example.com gitlab" /etc/hosts

Vous pouvez confirmer les résultats:

hostname
hostname -f

Configurer les règles de pare-feu

Configurez des règles de pare-feu raisonnables pour exécuter un site Web:

sudo iptables -F
sudo iptables -X
sudo iptables -Z
sudo iptables -A INPUT -s $(echo $(w -h ${USER}) | cut -d " " -f3) -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -d 127.0.0.0/8 -j REJECT
sudo iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
sudo iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
sudo iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P FORWARD DROP

Tous les paramètres ci-dessus prendront effet immédiatement. Utilisez la commande suivante pour les répertorier pour examen:

sudo iptables -L -n

Utilisez l' iptable-persistentoutil pour enregistrer toutes les règles iptables existantes dans un fichier /etc/iptables/rules.v4, rendant toutes les règles iptables persistantes:

sudo apt install -y iptables-persistent

Pendant l'installation, il vous sera demandé si vous souhaitez enregistrer les règles IPv4 / IPv6 actuelles. Appuyez ENTERdeux fois pour enregistrer les règles IPv4 et IPv6 actuelles dans /etc/iptables/rules.v4et /etc/iptables/rules.v6.

Si vous essayez de mettre à jour les règles IPv4 ultérieurement, utilisez ce qui suit pour enregistrer votre mise à jour:

sudo bash -c 'iptables-save > /etc/iptables/rules.v4'

Mettre à jour le système

sudo apt update
sudo apt upgrade -y && sudo shutdown -r now

Lorsque le système est de nouveau opérationnel, reconnectez-vous en tant que même utilisateur sudo pour continuer.

Étape 2: installer les dépendances requises

Avant d'installer GitLab CE, vous devez installer les dépendances requises:

sudo apt install -y curl openssh-server ca-certificates

De plus, si vous souhaitez utiliser Postfix pour envoyer des messages de notification, vous devez installer Postfix:

sudo apt install -y postfix

Pendant l'installation, un écran de configuration peut apparaître:

  1. Appuyez sur TABpour mettre en surbrillance le <OK>bouton sur le premier écran, puis appuyez sur ENTER.
  2. Sélectionnez Internet Siteet appuyez sur ENTER.
  3. Pour le mail namechamp, saisissez le nom de domaine complet de votre serveur gitlab.example.com, et appuyez sur ENTER.
  4. Si d'autres écrans apparaissent, appuyez sur ENTERpour accepter les paramètres par défaut.

Démarrez et activez le service Postfix:

sudo systemctl enable postfix.service
sudo systemctl start postfix.service

Modifiez les règles de pare-feu pour Postfix:

sudo iptables -A INPUT -i eth0 -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 143 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 993 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 110 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 995 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo bash -c 'iptables-save > /etc/iptables/rules.v4'

Après avoir installé Postfix, vous devez configurer Postfix en modifiant son fichier de configuration principal /etc/postfix/main.cfconformément aux paramètres réels de votre serveur.

Remarque: En plus des instructions ci-dessus, vous devez soumettre un ticket de support pour annuler le blocage par défaut de Vultr sur le port SMTP 25.

Alternativement, si vous souhaitez utiliser une autre solution de messagerie, ignorez simplement l'installation de Postfix et choisissez d'utiliser un serveur SMTP externe après l'installation de GitLab CE.

Étape 3: configurer le référentiel GitLab APT, puis installer GitLab CE

Configurez le référentiel GitLab CE APT sur votre système:

cd
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

Ensuite, installez GitLab CE 11.x:

sudo EXTERNAL_URL="http://gitlab.example.com" apt install -y gitlab-ce

L'installation peut prendre un certain temps.

Enfin, pointez votre navigateur Web préféré sur http://gitlab.example.com, puis soumettez un nouveau mot de passe lorsque vous y êtes invité pour terminer l'installation.

À partir de maintenant, utilisez les informations d'identification ci-dessous pour vous connecter en tant qu'administrateur:

  • Nom d'utilisateur: root
  • Mot de passe: <your-new-password>

Étape 4: Activez l'accès HTTPS en intégrant un certificat SSL Let's Encrypt

Pour l'instant, vous avez correctement installé GitLab CE 11.x sur votre instance de serveur et les utilisateurs peuvent déjà visiter le site en utilisant le protocole HTTP. Pour des raisons de sécurité, il est recommandé d'activer l'accès HTTPS à votre serveur GitLab en intégrant un certificat SSL Let's Encrypt.

Utilisez l' viéditeur pour ouvrir le fichier de configuration GitLab CE:

sudo vi /etc/gitlab/gitlab.rb

Trouvez les deux lignes suivantes:

external_url 'http://gitlab.example.com'
# letsencrypt['contact_emails'] = [] # This should be an array of email addresses to add as contacts

Remplacez-les en conséquence:

external_url 'https://gitlab.example.com'
letsencrypt['contact_emails'] = ['[email protected]']

Sauvegarder et quitter:

:wq!

Reconfigurez GitLab CE à l'aide des paramètres mis à jour:

sudo gitlab-ctl reconfigure

La reconfiguration peut prendre un certain temps.

Une fois la reconfiguration terminée, tous les utilisateurs seront obligés d'utiliser le protocole HTTPS lors de l'accès au site GitLab.

Remarque: après le passage de HTTP à HTTPS, les cookies hérités peuvent provoquer une erreur GitLab 422. L'effacement des cookies résout ce problème.



Leave a Comment

Configurez votre propre réseau privé avec OpenVPN

Configurez votre propre réseau privé avec OpenVPN

Vultr vous offre une connectivité réseau privée impressionnante pour les serveurs fonctionnant au même endroit. Mais parfois, vous voulez deux serveurs dans des pays différents

Configurer un Chroot sur Debian

Configurer un Chroot sur Debian

Cet article vous apprendra comment configurer une prison chroot sur Debian. Je suppose que vous utilisez Debian 7.x. Si vous utilisez Debian 6 ou 8, cela peut fonctionner, bu

Comment installer PiVPN sur Debian

Comment installer PiVPN sur Debian

Introduction Un moyen facile de configurer un serveur VPN sur Debian est avec PiVPN. PiVPN est un installateur et un wrapper pour OpenVPN. Il crée des commandes simples pour vous t

Comment installer Kanboard sur Debian 9

Comment installer Kanboard sur Debian 9

Vous utilisez un système différent? Introduction Kanboard est un logiciel de gestion de projet gratuit et open source conçu pour faciliter et visualiser

Comment installer Neos CMS sur Debian 9

Comment installer Neos CMS sur Debian 9

Vous utilisez un système différent? Neos est une plate-forme dapplication de contenu avec un CMS et un cadre dapplication en son cœur. Ce guide vous montrera comment installer

Configurer Cacti sur Debian Jessie

Configurer Cacti sur Debian Jessie

Introduction Cacti est un outil de surveillance et de création de graphiques open source entièrement basé sur les données RRD. Grâce à Cacti, vous pouvez surveiller presque nimporte quel type de périphérique

Configurer Teamspeak 3 sur Debian Wheezy

Configurer Teamspeak 3 sur Debian Wheezy

Cet article vous montrera comment exécuter un serveur Teamspeak 3 sous Debian Wheezy. Avant de commencer, vous devez préparer votre VPS. je

Comment installer Java 8 et DCEVM sur Debian 8 (Jessie)

Comment installer Java 8 et DCEVM sur Debian 8 (Jessie)

Java est un langage de programmation / machine virtuelle indépendant de la plate-forme. Dans ce tutoriel, nous allons installer limplémentation OpenJDK de Java 8 sur une Debian

Utiliser les vues MySQL sur Debian 7

Utiliser les vues MySQL sur Debian 7

Introduction MySQL a une grande fonctionnalité connue sous le nom de vues. Les vues sont des requêtes stockées. Considérez-les comme un alias pour une requête autrement longue. Dans ce guide,

Comment installer ModSecurity pour Nginx sur CentOS 7, Debian 8 et Ubuntu 16.04

Comment installer ModSecurity pour Nginx sur CentOS 7, Debian 8 et Ubuntu 16.04

ModSecurity est un module de pare-feu dapplications Web open source (WAF) qui est idéal pour protéger Apache, Nginx et IIS contre diverses cyberattaques qui ciblent

Comment installer Matomo Analytics sur Debian 9

Comment installer Matomo Analytics sur Debian 9

Vous utilisez un système différent? Matomo (anciennement Piwik) est une plate-forme danalyse open source, une alternative ouverte à Google Analytics. La source Matomo est hébergée o

Installer Hiawatha Web Server avec PHP-FPM et MySQL sur Debian

Installer Hiawatha Web Server avec PHP-FPM et MySQL sur Debian

Hiawatha est un serveur Web qui a à lesprit la simplicité, la facilité dutilisation et la sécurité. Cest la solution parfaite pour les petits serveurs, le matériel plus ancien ou lembedde

Surveiller létat du serveur Debian avec Munin

Surveiller létat du serveur Debian avec Munin

Munin est un outil de surveillance pour étudier les processus et les ressources de votre machine et présente les informations sous forme de graphiques via une interface Web. Utilisez le suivi

Comment installer le forum NodeBB sur Debian 9

Comment installer le forum NodeBB sur Debian 9

Vous utilisez un système différent? NodeBB est un forum basé sur Node.js. Il utilise des sockets Web pour des interactions instantanées et des notifications en temps réel. Code source NodeBB i

Installer Plesk sur Debian 8 (Jessie)

Installer Plesk sur Debian 8 (Jessie)

Vous utilisez un système différent? Plesk est un panneau de contrôle dhôte Web propriétaire qui permet aux utilisateurs dadministrer leurs sites Web personnels et / ou clients, bases de données

Comment installer Koel sur Debian 9

Comment installer Koel sur Debian 9

Vous utilisez un système différent? Koel est une simple application de streaming audio personnel basée sur le Web écrite en Vue côté client et Laravel côté serveur. Koe

Session collante avec Docker Swarm (CE) sur Debian 9

Session collante avec Docker Swarm (CE) sur Debian 9

Vous utilisez un système différent? Introduction Docker Swarm transforme vos serveurs individuels en un cluster dordinateurs; faciliter la mise à léchelle, la haute disponibilité et

Comment installer Paste 2.1 sur un VPS Debian 9 LAMP

Comment installer Paste 2.1 sur un VPS Debian 9 LAMP

Vous utilisez un système différent? Paste 2.1 est une application pastebin simple et flexible, gratuite et open source pour stocker du code, du texte et plus encore. Cétait initial

Forcer Apt-Get à IPv4 ou IPv6 sur Ubuntu ou Debian

Forcer Apt-Get à IPv4 ou IPv6 sur Ubuntu ou Debian

Ici, sur Vultr, nous avons la possibilité dactiver IPv6 sur tous les VPS déployables. Mais avec cela, certains programmes et commandes peuvent préférer lun ou lautre avec

Comment configurer Snort sur Debian

Comment configurer Snort sur Debian

Snort est un système gratuit de détection dintrusion réseau (IDS). En termes moins officiels, il vous permet de surveiller votre réseau pour détecter toute activité suspecte en temps réel

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

Les attaques de ransomware sont en augmentation, mais l'IA peut-elle aider à lutter contre le dernier virus informatique ? L'IA est-elle la réponse ? Lisez ici, sachez que l'IA est un boone ou un fléau

ReactOS : est-ce lavenir de Windows ?

ReactOS : est-ce lavenir de Windows ?

ReactOS, un système d'exploitation open source et gratuit est ici avec la dernière version. Cela peut-il suffire aux besoins des utilisateurs de Windows modernes et faire tomber Microsoft ? Découvrons-en plus sur cet ancien style, mais une expérience de système d'exploitation plus récente.

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Whatsapp a finalement lancé l'application de bureau pour les utilisateurs Mac et Windows. Vous pouvez désormais accéder facilement à Whatsapp depuis Windows ou Mac. Disponible pour Windows 8+ et Mac OS 10.9+

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Lisez ceci pour savoir comment l'intelligence artificielle devient populaire parmi les petites entreprises et comment elle augmente les probabilités de les faire grandir et de donner à leurs concurrents un avantage.

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

Récemment, Apple a publié macOS Catalina 10.15.4, une mise à jour supplémentaire pour résoudre les problèmes, mais il semble que la mise à jour cause davantage de problèmes, ce qui entraîne le bridage des machines mac. Lisez cet article pour en savoir plus

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux d'extraction de données de Big Data

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Notre ordinateur stocke toutes les données d'une manière organisée connue sous le nom de système de fichiers de journalisation. C'est une méthode efficace qui permet à l'ordinateur de rechercher et d'afficher des fichiers dès que vous appuyez sur la recherche.https://wethegeek.com/?p=94116&preview=true

Singularité technologique : un futur lointain de la civilisation humaine ?

Singularité technologique : un futur lointain de la civilisation humaine ?

Alors que la science évolue à un rythme rapide, prenant le pas sur une grande partie de nos efforts, les risques de nous soumettre à une Singularité inexplicable augmentent également. Lisez, ce que la singularité pourrait signifier pour nous.

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques d'analyse des mégadonnées : partie 1

Limpact de lintelligence artificielle dans les soins de santé 2021

Limpact de lintelligence artificielle dans les soins de santé 2021

L'IA dans le domaine de la santé a fait de grands progrès au cours des dernières décennies. Ainsi, l'avenir de l'IA dans les soins de santé continue de croître de jour en jour.