How to Install GitLab Community Edition (CE) 11.x on Debian 9

Since GitHub was acquired by Microsoft, quite a few developers have planned to migrate their own code repositories from github.com to an alternative self-hosted solution. GitLab Community Edition (CE) is the most common choice.

As a sophisticated and flexible solution, GitLab CE can be deployed using various methods, but only the officially recommended method, the Omnibus package installation, will be covered herein.

Prerequisites

  • A fresh Vultr Debian 9 x64 server instance with at least 4GB of memory. 8GB or more is recommended for serving up to 100 users. Say its IPv4 address is 203.0.113.1.
  • A sudo user.
  • A domain gitlab.example.com being pointed towards the instance mentioned above.

Note: When deploying on your own server instance, be sure to replace all example values with actual ones.

Step 1: Perform basic tasks for hosting GitLab CE

Fire up an SSH terminal, and log in to your Debian 9 x64 server instance as a sudo user.

Add a swap partition and tweak the swappiness setting

When deploying GitLab CE 11.x on a machine with 4GB of memory, it's required to setup a 4GB swap partition for smooth running.

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

Note: If you are using a different server size, the size of the swap partition may vary.

For system performance purposes, it is recommended to configure the kernel's swappiness setting to a low value like 10:

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

The output of the cat command will be 10.

Setup the machine's hostname and fully qualified domain name (FQDN)

Use the following commands to setup a hostname, gitlab, and an FQDN, gitlab.example.com, for the machine:

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

You can confirm the results:

hostname
hostname -f

Setup firewall rules

Setup reasonable firewall rules for running a website:

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

All above settings will take effect immediately. Use the following command to list them for review:

sudo iptables -L -n

Use the iptable-persistent tool to save all existing iptables rules in a file /etc/iptables/rules.v4, making all iptables rules persistent:

sudo apt install -y iptables-persistent

During the installation, you will be asked if you want to save current IPv4/IPv6 rules. Press ENTER twice to save both current IPv4 and IPv6 rules to /etc/iptables/rules.v4 and /etc/iptables/rules.v6.

If you try to update the IPv4 rules later, use the following to save your update:

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

Update the system

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

When the system is up and running again, log back in as the same sudo user to move on.

Step 2: Install required dependencies

Before installing GitLab CE, you need to install required dependencies:

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

Also, if you want to use Postfix to send notification messages, you need to install Postfix:

sudo apt install -y postfix

During the installation, a configuration screen may appear:

  1. Press TAB to highlight the <OK> button on the first screen, and then press ENTER.
  2. Select Internet Site and press ENTER.
  3. For the mail name field, input your server's FQDN, gitlab.example.com, and press ENTER.
  4. If other screens appear, press ENTER to accept the default settings.

Start and enable the Postfix service:

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

Modify firewall rules for 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'

Having Postfix installed, you need to configure Postfix by editing its main config file /etc/postfix/main.cf in accordance with your actual server settings.

Note: In addition to above instructions, you need to submit a support ticket to cancel Vultr's default block on SMTP port 25.

Alternatively, if you want to use another messaging solution, just skip installing Postfix and choose to use an external SMTP server after GitLab CE has been installed.

Step 3: Setup the GitLab APT repo and then install GitLab CE

Setup the GitLab CE APT repository on your system:

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

Next, install GitLab CE 11.x:

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

The installation may take a while.

Finally, point your favorite web browser to http://gitlab.example.com, and then submit a new password as prompted to finish the installation.

From now on, use the credentials below to log in as the administrator:

  • Username: root
  • Password: <your-new-password>

Step 4: Enable HTTPS access by integrating a Let's Encrypt SSL certificate

For now, you have successfully installed GitLab CE 11.x on your server instance, and users can already visit the site using the HTTP protocol. For security purposes, its recommended to enable HTTPS access to your GitLab server by integrating a Let's Encrypt SSL certificate.

Use the vi editor to open the GitLab CE config file:

sudo vi /etc/gitlab/gitlab.rb

Find the following two lines:

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

Replace them accordingly:

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

Save and quit:

:wq!

Reconfigure GitLab CE using updated settings:

sudo gitlab-ctl reconfigure

The reconfiguration may take a while.

After the reconfiguration is done, all users will be forced to use the HTTPS protocol when accessing the GitLab site.

Note: After switching from HTTP to HTTPS, legacy cookies may cause a GitLab 422 error. Clearing cookies fixes this issue.


Iestatiet Cacti vietnē Debian Jessie

Iestatiet Cacti vietnē Debian Jessie

Ievads Cacti ir atvērtā koda uzraudzības un grafiku veidošanas rīks, kas pilnībā ir balstīts uz RRD datiem. Izmantojot Cacti, varat pārraudzīt gandrīz jebkura veida ierīces

Iestatiet iRedMail vietnē Debian Wheezy

Iestatiet iRedMail vietnē Debian Wheezy

Vai izmantojat citu sistēmu? Šī apmācība parādīs, kā instalēt grupas programmu iRedMail jaunā Debian Wheezy instalācijā. Jums vajadzētu izmantot servi

Kā iestatīt neuzraudzītus jauninājumus Debian 9 (Stretch)

Kā iestatīt neuzraudzītus jauninājumus Debian 9 (Stretch)

Vai izmantojat citu sistēmu? Ja iegādājaties Debian serveri, jums vienmēr ir jābūt jaunākajiem drošības ielāpiem un atjauninājumiem neatkarīgi no tā, vai jūs guļat vai ne.

Iestatiet savu DNS serveri vietnē Debian/Ubuntu

Iestatiet savu DNS serveri vietnē Debian/Ubuntu

Šajā apmācībā ir paskaidrots, kā iestatīt DNS serveri, izmantojot Bind9 uz Debian vai Ubuntu. Visā rakstā attiecīgi aizstājiet savu-domēna-nosaukums.com. plkst

Kompilējiet un instalējiet Nginx ar PageSpeed ​​moduli operētājsistēmā Debian 8

Kompilējiet un instalējiet Nginx ar PageSpeed ​​moduli operētājsistēmā Debian 8

Šajā rakstā mēs redzēsim, kā apkopot un instalēt Nginx galveno līniju no oficiālajiem Nginx avotiem ar PageSpeed ​​moduli, kas ļauj t

Kā instalēt Kanboard operētājsistēmā Debian 9

Kā instalēt Kanboard operētājsistēmā Debian 9

Vai izmantojat citu sistēmu? Ievads Kanboard ir bezmaksas atvērtā koda projektu pārvaldības programmatūra, kas paredzēta, lai atvieglotu un vizualizētu

Kā instalēt Gitea operētājsistēmā Debian 9

Kā instalēt Gitea operētājsistēmā Debian 9

Vai izmantojat citu sistēmu? Gitea ir alternatīva atvērtā koda, pašmitināta versiju kontroles sistēma, ko nodrošina Git. Gitea ir rakstīts Golang valodā un ir

Instalējiet Lynis operētājsistēmā Debian 8

Instalējiet Lynis operētājsistēmā Debian 8

Ievads Lynis ir bezmaksas atvērtā koda sistēmas audita rīks, ko izmanto daudzi sistēmu administratori, lai pārbaudītu savu sistēmu integritāti un nostiprinātu tās. es

Kā instalēt Thelia 2.3 operētājsistēmā Debian 9

Kā instalēt Thelia 2.3 operētājsistēmā Debian 9

Vai izmantojat citu sistēmu? Thelia ir atvērtā pirmkoda rīks e-biznesa vietņu izveidei un tiešsaistes satura pārvaldīšanai, kas rakstīts PHP. Thelia pirmkods i

Minecraft serveru tīkla izveide ar BungeeCord operētājsistēmā Debian 8, Debian 9 vai CentOS 7

Minecraft serveru tīkla izveide ar BungeeCord operētājsistēmā Debian 8, Debian 9 vai CentOS 7

Kas jums būs nepieciešams Vultr VPS ar vismaz 1 GB RAM. SSH piekļuve (ar root/administratora tiesībām). 1. darbība: BungeeCord instalēšana Vispirms vispirms

Kā instalēt Golang 1.8.3 operētājsistēmās CentOS 7, Ubuntu 16.04 un Debian 9

Kā instalēt Golang 1.8.3 operētājsistēmās CentOS 7, Ubuntu 16.04 un Debian 9

Golang ir Google izstrādāta programmēšanas valoda. Pateicoties tās daudzpusībai, vienkāršībai un uzticamībai, Golang ir kļuvis par vienu no populārākajiem

Atiestatiet MySQL saknes paroli vietnē Debian/Ubuntu

Atiestatiet MySQL saknes paroli vietnē Debian/Ubuntu

Ja esat aizmirsis savu MySQL root paroli, varat to atiestatīt, veicot šajā rakstā norādītās darbības. Process ir diezgan vienkāršs un darbojas uz tiem

Tīkla koplietošanas izveide, izmantojot Samba vietnē Debian

Tīkla koplietošanas izveide, izmantojot Samba vietnē Debian

Dažkārt mums ir nepieciešams koplietot failus, kuriem ir jābūt redzamiem Windows klientiem. Tā kā uz drošinātāju balstītas sistēmas darbojas tikai operētājsistēmā Linux, iepazīstieties ar to

Counter Strike iestatīšana: avots vietnē Debian

Counter Strike iestatīšana: avots vietnē Debian

Šajā rokasgrāmatā mēs iestatīsim Counter Strike: Source spēļu serveri operētājsistēmā Debian 7. Šīs komandas tika pārbaudītas Debian 7, taču tām vajadzētu darboties arī

Kā instalēt Unturned 2.2.5 uz Debian 8

Kā instalēt Unturned 2.2.5 uz Debian 8

Šajā rokasgrāmatā jūs uzzināsit, kā iestatīt Unturned 2.2.5 serveri Vultr VPS, kurā darbojas Debian 8. Piezīme. Šī ir rediģēta Unturned versija, kas to nedara.

Kā instalēt Cachet operētājsistēmā Debian 8

Kā instalēt Cachet operētājsistēmā Debian 8

Šajā apmācībā jūs uzzināsit, kā instalēt Cachet operētājsistēmā Debian 8. Cachet ir jaudīga atvērtā pirmkoda statusa lapu sistēma. Instalēšana Šī apmācība turpinās

Automātiski dublējiet vairākas MySQL vai MariaDB datu bāzes

Automātiski dublējiet vairākas MySQL vai MariaDB datu bāzes

Ievads Šajā pārskatā labi izskaidrojiet, kā dublēt vairākas MySQL vai MariaDB datu bāzes, kas atrodas vienā datorā, izmantojot pielāgotu bash skriptu.

Chroot iestatīšana vietnē Debian

Chroot iestatīšana vietnē Debian

Šis raksts iemācīs jums iestatīt chroot cietumu Debian. Es pieņemu, ka jūs izmantojat Debian 7.x. Ja jūs izmantojat Debian 6 vai 8, tas var darboties, bu

Kā instalēt Reader Self 3.5 RSS lasītāju Debian 9 LAMP VPS

Kā instalēt Reader Self 3.5 RSS lasītāju Debian 9 LAMP VPS

Vai izmantojat citu sistēmu? Reader Self 3.5 ir vienkārša un elastīga, bezmaksas un atvērtā koda pašmitināta RSS lasītāja un Google lasītāja alternatīva. Lasītājs Sel

Kā instalēt Backdrop CMS 1.8.0 uz Debian 9 LAMP VPS

Kā instalēt Backdrop CMS 1.8.0 uz Debian 9 LAMP VPS

Vai izmantojat citu sistēmu? Backdrop CMS 1.8.0 ir vienkārša un elastīga, mobilajām ierīcēm draudzīga, bezmaksas un atvērtā koda satura pārvaldības sistēma (SPS), kas ļauj mums

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mākslīgais intelekts nav nākotnē, tas ir šeit, tagadnē. Šajā emuārā lasiet, kā mākslīgā intelekta lietojumprogrammas ir ietekmējušas dažādas nozares.

DDOS uzbrukumi: īss pārskats

DDOS uzbrukumi: īss pārskats

Vai arī jūs esat DDOS uzbrukumu upuris un esat neizpratnē par profilakses metodēm? Izlasiet šo rakstu, lai atrisinātu savus jautājumus.

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Iespējams, esat dzirdējuši, ka hakeri pelna daudz naudas, bet vai esat kādreiz domājuši, kā viņi nopelna šādu naudu? pārrunāsim.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Vai vēlaties redzēt revolucionārus Google izgudrojumus un to, kā šie izgudrojumi mainīja katra cilvēka dzīvi mūsdienās? Pēc tam lasiet emuārā, lai redzētu Google izgudrojumus.

Piektdiena: kas notika ar AI vadītām automašīnām?

Piektdiena: kas notika ar AI vadītām automašīnām?

Pašpiedziņas automobiļu koncepcija izbraukt uz ceļiem ar mākslīgā intelekta palīdzību ir mūsu sapnis jau kādu laiku. Bet, neskatoties uz vairākiem solījumiem, tie nekur nav redzami. Lasiet šo emuāru, lai uzzinātu vairāk…

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Zinātnei strauji attīstoties, pārņemot lielu daļu mūsu pūļu, palielinās arī risks pakļaut sevi neizskaidrojamai singularitātei. Izlasiet, ko singularitāte varētu nozīmēt mums.

Datu glabāšanas evolūcija – infografika

Datu glabāšanas evolūcija – infografika

Datu uzglabāšanas metodes ir attīstījušās kopš datu dzimšanas. Šajā emuārā ir aprakstīta datu uzglabāšanas attīstība, pamatojoties uz infografiku.

Lielo datu atsauces arhitektūras slāņu funkcijas

Lielo datu atsauces arhitektūras slāņu funkcijas

Lasiet emuāru, lai vienkāršākā veidā uzzinātu dažādus lielo datu arhitektūras slāņus un to funkcijas.

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

Šajā digitālajā pasaulē viedās mājas ierīces ir kļuvušas par būtisku dzīves sastāvdaļu. Šeit ir daži pārsteidzoši viedo mājas ierīču ieguvumi, lai padarītu mūsu dzīvi dzīves vērtu un vienkāršāku.

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

Nesen Apple izlaida macOS Catalina 10.15.4 papildinājuma atjauninājumu, lai novērstu problēmas, taču šķiet, ka atjauninājums rada vairāk problēmu, kas izraisa Mac datoru bloķēšanu. Izlasiet šo rakstu, lai uzzinātu vairāk