GitLab CE (Community Edition) adalah sebuah aplikasi open source yang utamanya digunakan untuk meng-host repository Git, dengan fitur-fitur tambahan terkait pengembangan seperti issue tracking. GitLab CE ini memang dirancang untuk dipasang pada infrastruktur pribadi yang kalian miliki dan menyediakan fleksibilitas saat deploy sebagai repositori internal bagi tim development atau sebagai sarana bagi para kontributor untuk meng-host proyek-proyek mereka sendiri
Enaknya lagi, GitLab Project ini menyediakan mekanisme instalasi yang mudah banget. Pada kesempatan kali ini, saya akan coba menjelaskan bagaimana cara instalasi dan konfigurasi GitLab pada Ubuntu Server 18.04
Persyaratan
- Ubuntu Server 18.04
- CPU 2 Cores
- RAM 8 GB
- Nama domain untuk server yang kalian gunakan. Pada tutorial kali ini, nama domain yang digunakan adalah repository.com
Meskipun kinerja RAM bisa dibantu oleh SWAP, hal itu tidak direkomendasikan. Pada kesempatan kali ini saya asumsikan kalau kalian mememenuhi semua persayartan di atas.
Langkah 1 – Instalasi Dependensi
Sebelum melakukan instalasi GitLab itu sendiri, alangkah baiknya melakukan instalasi beberapa software pendukung yang berguna selama proses instalasi GitLab nanti. Untungnya, semua software yang kalian butuhkan itu disediakan dalam repositori milik Ubuntu.
Sebagai awalan, silahkan eksekusi perintah berikut:
$ sudo apt update
$ sudo apt install ca-certificates curl openssh-server postfix

Mungkin ada beberapa paket di atas yang sudah kalian install. Untuk instalasi postfix, pilih Internet Site. Dan pada bagian berikutnya, masukkan nama domain dari server untuk mengkonfigurasi bagaimana sistem akan mengirim email.


Langkah 2 – Instalasi GitLab
Setelah semua paket-paket yang dibutuhkan terpasang, sekaranglah saatnya melakukan instalasi GitLab itu sendiri. Proses ini cukup mudah, sebab kalian akan memanfaatkan script instalasi dari GitLab yang terhubung dengan repository GitLab.
Pindah ke folder /tmp dan download script dari GitLab. Caranya:
$ cd /tmp
$ curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh

Jika kalian tidak percaya pada script di atas dan kalian ingin memeriksanya terlebih dahulu, silahkan saja ya. Caranya:
$ less /tmp/script.deb.sh

Jika kalian sudah siap, rasanya kalian bisa melanjutkan ke tahap selanjutnya, running installer:
$ sudo bash /tmp/script.deb.sh

Script di atas akan mengatur server yang kalian punya agar menggunakan repositori yang dikelola oleh GitLab. Setelah proses di atas selesai, kalian bisa melakukan instalasi aplikasi GitLab dengan perintah apt:
$ sudo apt install gitlab-cesss

Perintah di atas akan menginstall komponen-komponen penting pada sistem kalian.
Langkah 3 – Mengatur Firewall
Sebelum melakukan konfigurasi GitLab, kalian harus memastikan bahwa firewall kalian cukup permisif untuk mengijinkan traffic web terjadi.
Cara melihat status dari firewall pada server kalian adalah:
$ sudo ufw status
Jika statusnya inactive, kalian harus mengaktifkannya terlebih dahulu. Caranya:
$ sudo ufw enable
Setelah itu periksa kembali statusnya dengan ufw status dan pastikan kalau sudah active.

Jika sudah aktif, sekarang waktunya untuk memberikan akses kepada port 80,443 dan 22. Port 80 dibutuhkan sebab GitLab merupakan sebuah aplikasi web. Port 443 dibutuhkan sebab kalian akan mengambil keuntungan dari kemampuan GitLab untuk me-request dan mengaktifkan sertifikat TLS/SSL gratis dari Let’s Encrypt.
Protokol port mapping untuk HTTP dan HTTPS berada pada file /etc/services sehingga kalian bisa mengizinkan lalu lintas pada port tersebut dengan menggunakan nama. Jika kalian belum membuka port OpenSSH, lebih baik lakukan juga sekarang.
$ sudo ufw allow http
$ sudo ufw allow https
$ sudo ufw allow OpenSSH
Periksa kembali status dari frewall dengan perintah ufw status setelah kalian menjalankan perintah di atas dan pastikan hasilnya seperti berikut:

Langkah 4 – Mengedit File Konfigurasi GitLab
Sebelum bisa menggunakan aplikasinya, kalian perlu memperbarui file konfigurasinya dan memanggil perintah rekonfigurasi. Pertama, buka terlebih dahulu file konfigurasi GitLab:
$ vi /etc/gitlab/gitlab.rb
cari external_url dan isi dengan nama domain kalian. Jangan lupa juga untuk mengganti http menjadi https sehingga GitLab secara otomatis akan me-redirect pengunjung ke halaman yang terproteksi oleh sertifikat Let’s Encrypt:

Selanjutnya, cari letsencrypt['contact_emails'] dan isi dengan email kalian. Alamat inila yang akan Let’s Encrypt gunakan untuk mengontak kalian jika terjadi masalah pada domain kalian:

Simpan konfigurasi tersebut dan kemudian keluar. Jalankan perintah berikut:
$ sudo gitlab-ctl reconfigure
Proses ini akan menginisiasi GitLab untuk menggunakan informasi yang ada pada server kalian. Ini proses yang sepenuhnya otomatis, jadi kalian tidak perlu menjawab pertanyaan apapun. Proses ini juga secara otomatis akan mengkonfigurasi sertifikat Let’s Encrypt untuk server kalian.

Langkah 5 – Melakukan Konfigurasi Awal melalui Web
Setelah GitLab berjalan, kalian bisa melakukan konfigurasi awal pada aplikasi melalui web. Pertama kali yang perlu kalian lakukan adalah akses aplikasi melalui nama domain dari server kalian :
https://repository.com
Pertama kali, Kalian akan diminta untuk mengatur password untuk user root. SIlahkan masukkan password yang kalian inginkan dan jangan lupa tekan tombol change your password:

Kalau sudah, kalian akan diarahkan ke halaman login dari aplikais. Untuk bisa masuk ke dalam aplikasi, login dengan user root dan masukkan password yang kalian buat tadi. Setelah itu tekan tombol login.

Setelah itu kalian akan masuk ke dalam halaman dashboard. Tahap selanjutnya adalah mengatur profil. Untuk melakukan hal tersebut, pilih menu user di ujung kanan atas dan pilih settings:


Atur Name dan Email dari ‘administrator’ dan ‘admin@example.com’ menjadi sesuatu yang lebih ‘nyata’. Nama yang kalian tulis akan ditampilkan pada pengguna lainnya, dan email akan digunakan untuk pendeteksian avatar, notifikasi, aksi pada Git, dll.
Pilih tombol update profile settings ketika sudah selesai untuk mengaplikasikan perubahan yang dilakukan:

Selanjutnya adalah mengubah nama akun. Jika tadi akun admin bernama root, sekarang saatnya mengubah nama root tersebut menjadi yang kalian inginkan. Pilih account pada menu di sebelah kiri lalu pilih change username. Tekan update username untuk mengaplikasikan perubahan yang kalian lakukan.

Ingat ya, kalau sudah diubah jangan login dengan username root lagi.
Berikutnya, jika kalian membuat aplikasi ini dapat diakses secara online, maka siapapun memiliki kemungkinan untuk mendaftar (sign up). Untuk mencegah hal tersebut terjadi, kalian bisa menonaktifkan fitur sign up. Caranya:
Pilih gambar kunci inggris alias wrench pada menu bar di bagian atas:

Selanjutnya pilih settings di bagian bawah menu sebelah kiri. Pada bagian sign up restrictions, jangan centang pilihan sign up enabled

Jangan lupa pilih save changes untuk mengaplikasikan perubahan tersebut.
Memperbarui Sertifikat Let’s Encrypt
Secara default, GitLab telah membuat jadwal untuk memperbarui sertifikat Let’s Encrypt setelah tengah malam setiap 4 hari, dengan hitungan menit seusai dengan external_url. Kalian bisa memodifikasinya di /etc/gitlab/gitlab.rb. Misalnya kalian ingin memperbarui setiap hari ketujuh jam 12:30, maka kalian bisa mengkonfigurasinya seperti berikut:

Kalian juga bisa menonaktifkan auto renewal dengan mengubah settingan menjadi:
letsencrypt['auto_renew'] = true
Menambahkan SSH Key pada Akun
Pada beberapa kasus, kalian mungkin menginginkan menggunakan SSH keys untuk berinteraksi dengan proyek GitLab kalian. Untuk melakukan hal tersebut, kalian perlu menambahkan SSH Public Key ke dalam akun kalian.
Jika kalian sudah punya pasangan kunci SSH pada komputer lokal kalian. Kalian bisa melihat kunci publiknya dengan mengetikkan perintah berikut:
$ cat ~/.ssh/id_rsa.pub
maka kalian akan melihat keluaran seperti:

copy teks tersebut ke Profile Settings yang ada pada aplikasi web (settings →SSH Keys) dan kalau sudah, jangan lupa tekan add key:


*****
Itu tadi sedikit cara untuk melakukan instalasi dan konfigurasi GitLab di Ubuntu Server 18.04
Selamat mencoba ya dan sampai jumpa di tulisan selanjutnya
