Published Oct 21, 2017
Install necessary packages :
sudo apt-get install -y curl openssh-server ca-certificates
And for sending e-mails from GitLab :
sudo apt-get install -y postfix
gitlab-ce
package installationExecute repo configuration from GitLab :
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
Installing GitLab-CE
sudo EXTERNAL_URL="http://gitlab.example.com" apt-get install gitlab-ce
warning Replace
http://gitlab.example.com
with the (sub)domain you want to.
If you try to access http://gitlab.example.com you will have 404 error cause GitLab’s default conf doesn’t use nginx
To make GitLab running behind our nginx installation you need to add some config to disable some GitLab services. To do so edit the /etc/gitlab/gitlab.rb
and add the following at the end of the file.
nginx['enable'] = false
web_server['external_users'] = ['www-data']
gitlab_rails['trusted_proxies'] = [IPV4, IPV6]
Replace IPV4 & IPV6 by your addresses
And reconfigure GitLab by executing sudo gitlab-ctl reconfigure
.
You need to add a vhost to nginx who will use GitLab.
sudo nano /etc/nginx/sites-available/gitlab
And insert :
upstream gitlab-workhorse {
server unix:/var/opt/gitlab/gitlab-workhorse/socket;
}
## Normal HTTP host
server {
## Replace this with something like gitlab.example.com
server_name gitlab.example.com;
## Don't show the nginx version number, a security best practice
server_tokens off;
root /opt/gitlab/embedded/service/gitlab-rails/public;
## Individual nginx logs for this GitLab vhost
access_log /var/log/nginx/gitlab_access.log;
error_log /var/log/nginx/gitlab_error.log;
location / {
client_max_body_size 0;
gzip off;
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://gitlab-workhorse;
}
}
Enable the vhost :
sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab
Make sure config is good by running
sudo nginx -t
Then
sudo service nginx reload
Finally you can access http://gitlab.example.com where GitLab will invite you to enter root user password
That’s all folks !
Sources :