“Us, tolong oprek Gitlab server dong supaya bisa kirim notifikasi E-Mail setiap kali ada yang buat issue baru atau balas issue. Itu nge-bantu banget buat gue” Ucap salah seorang teman saya.
Mendapat permintaan seperti itu, saya pun langsung meluncur ke dalam Gitlab server tersebut dan mencoba untuk mengonfigurasi ulang aplikasi tersebut agar memunculkan fitur yang dibutuhkan oleh teman saya itu.
Dan berikut ini adalah konfigurasi yang saya lakukan agar memunculkan notifikasi e-mail tersebut.
*Catatan:
- Dalam tutorial kali ini saya menggunakan mail server sendiri yang sudah ada sebelumnya. Jadi sebelum mencoba konfigurasi ini, pastikan kalian sudah memiliki mail server sendiri (saya tidak menggunakan gmail).
- Gitlab yang saya gunakan adalah versi 12.9.2 (Community Edition) dengan menggunakan omnibus package
Tahapan Konfigurasi
- Backup Aplikasi
Sebelum melakukan perubahan, biasakan untuk melakukan backup terlebih dahulu. Bila menggunakan virtualisasi, kalian bisa mengambil snapshot-nya terlebih dahulu. Namun bila kalian menggunakan server fisik, kalian bisa melakukan backup Gitlab server dengan menjalankan perintah berikut di terminal:sudo gitlab-backup create
Creating backup Bila tidak melakukan perubahan terhadap file gitlab.rb, maka hasil backup secara otomatis akan tersimpan di /var/opt/gitlab/backups

beberapa file backup yang berhasil dilakukan - Backup Konfigurasi
Pada gambar nomor 1 sudah dijelaskan kalau proses backup yang dilakukan hanyalah backup aplikasi dan tidak melakukan backup terhadap file konfigurasi (gitlab-secrets.json dan gitlab.rb).
Untuk melakukan backup terhadap file konfigurasinya, jalankan perintah berikut di terminal:sudo gitlab-ctl backup-etc <directory>
backup konfigurasi 
Contoh hasil backup file konfigurasi Sangat direkomendasikan untuk menyimpan hasil backup dari file konfigurasi ini di tempat yang aman. Bila kalian tidak menggunakan opsi <directory> seperti yang saya lakukan, maka file tersebut secara otomatis akan tersimpan di /etc/gitlab/config_backup/ (direktori dan hasil backup hanya bisa diakses oleh user root)
Kenapa kalian harus mem-backup file konfigurasi ini? File gitlab-secrets.json dan gitlab.rb menyimpan keys untuk enkripsi database yang memproteksi data sensitif di SQL database seperti 2 factor authentication dan juga Gitlab CI. Bila tidak mem-backup-nya, maka user akan kehilangan akses ke Gitlab server dan ‘secured variables’ yang tersimpan di Gitlab CI akan hilang ketika kalian me-restore aplikasi.
Silakan pisahkan lokasi backup konfigurasi dan aplikasi untuk mencegah bila pencurian data terjadi.
- Pengaturan SMTP
Sekarang adalah waktunya pengaturan SMTP Server. Seperti yang sudah saya jelaskan sedikit di awal, saya tidak menggunakan Gmail, Yahoo, AWS Workmail, atau aplikasi semacamnya, melainkan menggunakan mail server yang dibangun sendiri.
Untuk melakukan konfigurasi tersebut, ubah baris yang ada pada /etc/gitlab/gitlab.rb menjadi seperti berikut:gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "<alamat smtp server>" gitlab_rails['smtp_port'] = "<port smtp>" gitlab_rails['smtp_user_name'] = "<user smtp>" gitlab_rails['smtp_password'] = "<password smtp>" gitlab_rails['smtp_domain'] = "<domain smtp>" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = true

Pengaturan SMTP Untuk E-Mail yang akan mengirimkan pesan, kalian bisa mengubahnya seeprti berikut:
gitlab_rails['gitlab_email_enabled'] = true gitlab_rails['gitlab_email_from'] = '<alamat email>' gitlab_rails['gitlab_email_display_name] = '<nama yang muncul>' gitlab_rails['gitlab_email_reply_to'] = '<alamat email>'

Pengaturan email dan nama pengirim Sampai tahap ini konfigurasi sudah berhasil dilakukan. Namun ada satu hal yang perlu diingat. Untuk bagian smtp_password jangan menggunakan delimiter yang digunakan dalam ruby dan YAML (contohnya: ‘tanda petik satu’). Hal tersebut untuk mencegah kejadian tak terduga saat memproses file pengaturan ini.
- Rekonfigurasi
Setelah perubahan pada gitlab.rb dilakukan, sekarang adalah waktunya untuk menjalankan konfigurasi baru tersebut. Cara menjalankannya adalah dengan mengetikkan perintah berikut:sudo gitlab-ctl reconfigure
rekonfigurasi Biarkan proses rekonfigurasi selesai. Pada proses inilah kalian bisa melihat perubahan yang kalian lakukan pada file gitlab.rb. Biasanya perubahan yang kalian lakukan akan memberikan warna yang berbeda.

Perubahan yang terjadi bisa dilihat di sini - Pengujian
Usai rekonfigurasi berhasil dilakukan, tahapan selanjutnya adalah pengujian. Untuk mengujinya, Gitlab Server sudah menyiapkan sebuah perintah dari console, jadi kalian masih akan melakukannya di terminal. Jalankan perintah:sudo gitlab-rails consoleJika perintah tersebut sudah dimasukkan, berikutnya adalah memasukkan baris perintah berikut agar Gitlab mengirimkan E-Mail pengujian:
Notify.test_email('<alamat email yang dituju>', '<Subjek pesan>', '<isi pesan>').deliver_now

Contoh uji coba pengiriman email dan berhasil 
Bukti dari mail server kalau pengiriman yang dilakukan berhasil
Pengaturan Notifikasi
Konfigurasi SMTP sudah berhasil dilakukan, sekarang waktunya untuk memberi pengaturan mengenai notifikasi apa saja yang akan diterima di E-Mail. Tahapannya adalah sebagai berikut:
- Sign In
Silakan kalian masuk ke dalam akun Gitlab kalian. Setelah masuk, pilih avatar username (di pojok kanan atas) → settings → notifications. Pada bagian Notification E-Mail, masukkan E-Mail yang ingin kalian gunakan untuk menerima notifikasi.
Tahapan pengaturan notifikasi Di bagian bawah Notification E-Mail, Pilih watch pada bagian Global notification level dan jangan lupa centang ‘Receive notifications about your own activity’.
Pilihan watch berarti kalian akan menerima notifikasi untuk aktivitas apapun yang terjadi pada suatu project dimana kalian terlibat. Sedangkan pilihan check box berarti kalian pun akan menerima notifikasi atas kegiatan yang kalian lakukan sendiri.
- Project
Berikutnya kalian akan memilih project dimana kalian akan menerima notifikasi. Pilih Gitlab → Project kalian
Pilih Project Selanjutnya kalian akan membuat issue. Pilih issues → new issues

Membuat issue baru Jika sudah, silakan buat judul issue barunya, deskripsi issue, dan siapa yang ditugaskan untuk menangani issue tersebut.

Issue baru Issue sudah berhasil dibuat. Sekarang tinggal menunggu adanya notifikasi yang masuk ke dalam E-Mail.

Issue berhasil dibuat - Notifikasi E-Mail Masuk
Notifikasi sudah masuk dan itu tandanya semua konfigurasi sudah selesai dan berjalan dengan lancar.
Pesan sudah masuk
*****
Itu tadi sedikit informasi mengenai pengaturan notifikasi email di Gitlab server. Semoga informasinya cukup jelas dan berguna ya 🙂
