Panduan Lengkap Install dan Konfigurasi Gitlab Selfhosted

Panduan Lengkap Install dan Konfigurasi Gitlab Selfhosted

Persiapan Sebelum Install Gitlab Selfhosted

Sebelum memulai instalasi, kita perlu memastikan bahwa infrastruktur server sudah siap. Panduan Lengkap Install dan Konfigurasi Gitlab Selfhosted dimulai dengan tahap persiapan ini karena kesuksesan proses instalasi sangat bergantung pada sistem yang kompatibel dan stabil.

1. Spesifikasi Minimum Server

Kita perlu menyiapkan server dengan spesifikasi berikut:

  • CPU: 2 core (minimal), 4 core (disarankan)
  • RAM: 4 GB (minimal), 8 GB (disarankan)
  • Storage: 20 GB (minimal), SSD sangat disarankan
  • OS: Ubuntu 22.04, CentOS 8, Debian 11 (stabil)

Menurut Gitlab Inc., lebih dari 70% pengguna self-hosted memilih Ubuntu karena kestabilannya.

2. Akses Root dan Firewall

Pastikan kita memiliki akses root ke server dan memeriksa bahwa port berikut terbuka:

  • 22/tcp untuk SSH
  • 80/tcp dan 443/tcp untuk HTTP/HTTPS
  • 587/tcp untuk SMTP (jika menggunakan notifikasi email)

3. Update dan Instalasi Dependensi Dasar

sudo apt update && sudo apt upgrade -y
sudo apt install curl openssh-server ca-certificates tzdata perl -y

Langkah ini penting untuk memastikan sistem dalam kondisi siap dan up-to-date.

Langkah-langkah Instalasi Gitlab di Server Sendiri

Pada bagian ini, kita akan mengikuti langkah-langkah step-by-step untuk instalasi Gitlab self-hosted. Kami menggunakan Ubuntu 22.04 sebagai contoh utama.

1. Tambahkan Repositori Gitlab dan Instal Paket

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

Kemudian jalankan:

sudo EXTERNAL_URL="https://gitlab.domainkita.com" apt install gitlab-ee

Pastikan untuk mengganti URL dengan domain atau IP publik kita.

2. Konfigurasi Domain dan HTTPS

Kita dapat menggunakan Let's Encrypt untuk HTTPS otomatis:

sudo gitlab-ctl reconfigure

Konfigurasi HTTPS akan dilakukan otomatis jika external_url menggunakan protokol https.

3. Verifikasi Instalasi

Setelah instalasi, akses:

https://gitlab.domainkita.com

Login pertama kali akan meminta kita mengganti password default administrator.

Konfigurasi Gitlab Selfhosted untuk Produksi

Instalasi selesai bukan akhir dari perjalanan. Kini kita masuk pada panduan konfigurasi Gitlab lokal agar siap digunakan secara aman dan optimal.

1. Konfigurasi Email SMTP

Edit /etc/gitlab/gitlab.rb:

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.domain.com"
gitlab_rails['smtp_port'] = 587

Lalu reconfigure:

sudo gitlab-ctl reconfigure

2. Integrasi CI/CD

Kita bisa mengatur runner menggunakan Gitlab Runner:

sudo apt install gitlab-runner
gitlab-runner register

Integrasi ini penting untuk mengaktifkan pipeline otomatis dan deployment kontinyu.

3. Tambah SSL/TLS Otomatis

Jika menggunakan nginx bawaan Gitlab, cukup aktifkan:

letsencrypt['enable'] = true

Ini membuat keamanan Gitlab kita setara dengan standar industri.

Keamanan dan Backup Gitlab Mandiri

Keamanan adalah hal utama ketika kita mengelola server pribadi. Berikut langkah-langkah penting untuk mengamankan Gitlab self-managed.

1. Batasi Akses Melalui Firewall

Gunakan ufw atau firewall lain untuk membuka port yang hanya dibutuhkan. Contoh:

ufw allow 22/tcp
ufw allow 443/tcp

2. Backup Otomatis

Aktifkan backup dengan menambahkan di crontab:

0 2 * * * /opt/gitlab/bin/gitlab-backup create CRON=1

Pastikan direktori backup disimpan di luar server utama.

3. Update Rutin

Gunakan perintah berikut untuk update aman:

sudo apt update && sudo apt upgrade gitlab-ee

Gitlab merilis patch keamanan secara rutin—rata-rata 1-2 kali per bulan.

Optimasi dan Scaling Gitlab On-Premise

Gitlab mandiri perlu disesuaikan dengan skala organisasi. Berikut tips optimasi dan scaling Gitlab lokal.

1. Gunakan External Database

Untuk skala besar, pindahkan PostgreSQL ke server terpisah.

2. Konfigurasi Caching Redis

Redis bawaan Gitlab dapat dioptimalkan dengan memori lebih besar untuk cache session.

3. Pemantauan dan Logging

Gunakan tools seperti Prometheus dan Grafana untuk monitoring. Statistik menunjukkan bahwa 84% enterprise Gitlab deployment mengandalkan observability tools untuk stabilitas.

Komponen Default Gitlab Rekomendasi Produksi
DB Internal PostgreSQL External PostgreSQL
Cache Internal Redis Redis Cluster
Web Server Nginx bawaan Nginx Reverse Proxy
Storage Lokal NFS atau S3 Bucket

Troubleshooting Umum Gitlab Lokal

Dalam perjalanan menggunakan Gitlab mandiri, kita akan menemukan berbagai masalah. Berikut beberapa kasus umum dan cara mengatasinya.

1. Gitlab Tidak Bisa Diakses

Kemungkinan masalah:

  • SSL tidak aktif
  • DNS belum mengarah ke IP server

Solusi: Cek file /etc/gitlab/gitlab.rb, pastikan external_url sesuai.

2. Email Notifikasi Tidak Terkirim

Solusi cepat:

  • Cek konfigurasi SMTP
  • Cek firewall outbound port 587
  • Lihat log: gitlab-rails/production.log

3. Pipeline CI/CD Gagal

Kemungkinan penyebab:

  • Runner belum terdaftar
  • File .gitlab-ci.yml salah

Gunakan perintah:

gitlab-runner verify

FAQ

Apa keunggulan Gitlab Selfhosted dibanding Gitlab.com?
Kita memiliki kontrol penuh atas sistem, dapat melakukan kustomisasi, dan menjaga keamanan data secara lokal.

Berapa biaya menggunakan Gitlab Selfhosted?
Gitlab CE (Community Edition) bersifat gratis, namun kita tetap menanggung biaya infrastruktur dan pemeliharaan server.

Apakah Gitlab Selfhosted aman digunakan untuk perusahaan?
Ya, dengan konfigurasi yang tepat (SSL, firewall, backup), Gitlab sangat aman untuk digunakan skala perusahaan.

Bagaimana cara backup dan restore Gitlab?
Gunakan gitlab-backup create untuk backup dan gitlab-backup restore untuk recovery.

Bisakah Gitlab dijalankan di VPS murah?
Bisa, tapi performa akan terbatas. Disarankan VPS dengan minimal 2 core dan 4GB RAM.

Kesimpulan

Gitlab self-hosted memberikan fleksibilitas dan kontrol yang tidak bisa kita dapatkan dari layanan berbasis cloud publik. Dengan mengikuti Panduan Lengkap Install dan Konfigurasi Gitlab Selfhosted ini, kita dapat membangun lingkungan kerja yang terintegrasi, aman, dan efisien. Mulai dari instalasi dasar hingga konfigurasi lanjutan, keamanan, serta troubleshooting telah dibahas secara menyeluruh untuk memastikan kita dapat mengelola proyek perangkat lunak dengan percaya diri.

Key Takeaways

  • Gitlab Selfhosted menawarkan kontrol penuh atas pengelolaan kode dan CI/CD.
  • Instalasi memerlukan spesifikasi server yang sesuai, terutama untuk produksi.
  • Konfigurasi HTTPS, SMTP, dan CI/CD sangat penting untuk performa dan keamanan.
  • Backup otomatis dan update rutin menjaga stabilitas sistem.
  • Optimasi seperti Redis, PostgreSQL eksternal, dan monitoring membantu scaling jangka panjang.