Install Gitlab EE di VPS
Berikut contoh konfigurasi install Gitlab CE/EE di server kita, baik lokal maupun di cloud. Kali ini saya menginstall gitlab CE di AWS EC2 dengan sistem operasi Ubuntu 16.04. Sebetulnya ini adalah server development untuk mengetes aplikasi (yang kebanyakan php, CI, Laravel) dengan web server Apache2. Supaya tidak mengganggu aplikasi yang ada, akhirnya saya memutuskan untuk menggunakan docker saja. Jadi topologinya kira kira begini
Gitlab (Docker Container) Expose Port 8000:80 <--> Proxy Apache <--> Subdomain (Public)
Install Docker & Docker Compose
Saya menggunakan docker compose supaya lebih mudah, jadi harus install docker.io
dan docker-compose
apt install docker.io docker-compose
Konfigurasi Docker Compose
Saya buat folder gitlab
untuk mempermudah mengingat berkas docker-compose.yml saya
mkdir gitlab
vim docker-compose.yml
Lalu isi konfigurasinya seperti berikut ini
web:
image: 'gitlab/gitlab-ee:latest'
restart: always
hostname: 'git.namadomain.com'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'https://git.namadomain.com';
gitlab_rails['gitlab_shell_ssh_port'] = 2200;
nginx['listen_port'] = 80
nginx['listen_https'] = false;
nginx['proxy_set_headers'] = { "X-Forwarded-Proto" => "https", "X-Forwarded-Ssl" => "on" }
ports:
- '8000:80'
- '4000:443'
- '2200:22'
volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'
Untuk menggunakan gitlab community edition silahkan ganti bagian image: 'gitlab/gitlab-ee:latest'
menjadi image: 'gitlab/gitlab-cc:latest'
Untuk konfigurasi supaya berjalan dengan mulus dengan Proxy Apache2 saya tambahkan konfigurasi
nginx['listen_port'] = 80
nginx['listen_https'] = false;
nginx['proxy_set_headers'] = { "X-Forwarded-Proto" => "https", "X-Forwarded-Ssl" => "on" }
Konfigurasi Apache2
Parameter di atas juga dapat digunakan apabila Gitlab berada di loadbalancer. Untuk konfigurasi apache2 nya seperti berikut ini
<IfModule mod_ssl.c>
<VirtualHost *:443>
ProxyPreserveHost On
ProxyRequests Off
ServerName git.namadomain.com
ProxyPass / http://localhost:8000/
ProxyPassReverse / http://localhost:8000/
SSLCertificateFile /etc/letsencrypt/live/git.namadomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/git.namadomain.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
Untuk SSL nya saya menggunakan Let’s Encrypt dan cukup di masukkan di konfigurasi Apache2 saja.