Hi, Saya Rohim Muhamad

Blog ini membahas seputar pengalaman dan dokumen teknikal penulis sebagai seorang software engineer.

Shell Script Untuk Backup Otomatis

Latar Belakang Masalah Sebagai seorang programmer Odoo, kita wajib untuk melakukan backup rutin aplikasi. Aplikasi Odoo bisa di backup melalui frontend. Namun, ketika harus dilakukan rutin, adakalanya saya lupa untuk melakukan backup. Dikarenakan load pekerjaan yang sedang banyak, atau memang lupa saja :) Maka dari itu, diperlukan suatu mekanisme backup otomatis. Dan ketika proses backup selesai, entah itu berhasil atau gagal, maka akan mengirimkan notifikasi melalui webhook discord. Namun, kali ini, saya hanya akan melakukan backup terhadap database-nya saja. Dikarenakan untuk kebutuhannya hanya diperlukan backup transaksi selama 7 hari terakhir. ...

March 28, 2025 · 3 min

Cara Koneksi SSH Tanpa Password

Latar Belakang Masalah Akan datang saatnya ketika kita perlu membuat koneksi dari server A ke server B menggunakan SSH. Namun, kita sebal atau memang mengganggu proses otamasi karena harus selalu input password ketika login menggunakan SSH. Tujuan Kita akan coba melakukan login menggunakan SSH ke server lain tanpa harus input password. Store SSH pada Authorized Keys Intinya, di server A itu harus punya kartu pass milik server B! ...

March 7, 2025 · 1 min

Konfigurasi Dasar CI/CD Gitlab

Persyaratan Saya menggunakan Gilab self-hosted dan gitlab-runner yang di install menggunakan docker. Jika belum dan ingin install GitLab self-hosted bisa lihat caranya disini. Jika ingin install GitLab Runner menggunakan docker bisa lihat caranya disini. Buat job sederhana Sekarang kita akan coba membuat job sederhana. Job yang dijalankan akan seperti ini: Job akan ke trigger jika ada perubahan di branch main. Job akan menjalankan stages build dan deploy. Job akan dijalankan di dalam docker. Membuat file .gitlab-ci.yml stages: - build - deploy build: stage: build image: alpine:latest script: - echo "Starting build stages..." - echo "Running another command..." deploy: stage: deploy image: alpine:latest script: - echo "Starting deploy stages..." - echo "Running another command..." - echo "job finished!" Kemudian, save perubahan tersebut pada gitlab atau push perubahan tersebut ke gitlab pada branch main. ...

February 20, 2025 · 2 min

Install Gitlab Runner

Latar Belakang Masalah Dalam proses deployment fitur ke user. Biasanya, ketika developer sudah menyelesaikan suatu fitur, maka terlebih dahulu akan melakukan push source code fitur ke repository (misal: GitLab). Setelahnya, perubahan terbaru dari repository akan di pull di server untuk selanjutnya dilakukan pengetesan dan lainnya. Kira - kira alur kerjanya akan seperti ini: Developer push branch baru ke remote repository. Developer melakukan merge berisi source code fitur baru ke branch development/staging/production. Developer login ke server, masuk ke directory project. Lalu melakukan pull source code project terbaru. Terakhir, developer akan restart aplikasi. Menggunakan CI/CD bisa menghilangkan langkah nomer 3 dan 4. Sebagai gantinya, kita bisa melakukan trigger langkah nomer 3 & 4 ketika ada perubahan pada branch repository (langkah nomer 2). ...

February 10, 2025 · 2 min

Install Gitlab Community Menggunakan Docker

Latar Belakang Masalah Sebelumnya, saya menggunakan Gitlab.com (Enterprise). Namun belum menggunakan versi berbayarnya. Jadi, ada banyak limitasi di sana-sini. Seperti limitasi jumlah member per project. Untuk itu, saya mencari solusi, dikarenakan perusahaan memiliki beberapa server, Gitlab Community Edition menjadi pilihan. Requirement 2.5 GB storage 8 vCPU 16 GB RAM Untuk lebih lengkapnya, silahkan kunjungi official page. Environment Untuk menginstall Gitlab Community Edition. Saya akan menggunakan docker. Untuk image docker tersebut, tersedia disini. ...

January 30, 2025 · 2 min

Cara Backup Odoo Dan Postgresql

Latar Belakang Masalah Biasanya, kita dapat melakuakn backup odoo berikut database nya melalui front end aplikasi. Tapi, ketika ukuran database sudah besar (file compress > 2GB) akan timbul masalah gagal backup. Biasanya karena faktor koneksi internet yang tidak stabil. Environment Dalam contoh kasus kali ini, penulis menggunakan Odoo dan Postgresql yang dijalankan menggunakan docker. Pada umumnya, cara yang diguanakan jika tidak memnggunakan docker adalah sama. Hanya beda syntax. Solusi Untuk latar belakang masalah yang dikemukakan diatas, perlu mekanisme backup lain untuk mengakomodasi database Odoo yang tidak bisa di backup dari front end. ...

January 25, 2025 · 2 min

Backup dan Restore Gitlab Dengan Docker Pada Server Berbeda

Latar Belakang Masalah Adakalanya, karena beberapa masalah, jadi mengharuskan kita untuk memindahkan GitLab ke server lain. Jika ingin melihat garis besar cara backup dan restore GitLab, teman-teman bisa lihat dokumentasinya langsung di Overview Backup Restore Gitlab. Atau, jika ingin langsung praktik, bisa mengikuti Tutorial berikut pada artikel ini. Prerequisites GitLab harus memiliki versi yang sama. Asumsi bahwa GitLab sudah terinstall di kedua server menggunakan docker. Storage yang mencukupi, karena file backup GitLab cukup besar (2GB ++). Backup # Lokasi default file backup di /var/opt/gitlab/backups docker exec -t <name of container> gitlab-rake gitlab:backup:create # copy file hasil backup, dari container ke host machine docker cp <name of container>:/var/opt/gitlab/backups/<name of backup> . # backup file gitlab-secrets.json docker cp <name of container>:/etc/gitlab/gitlab-secrets.json . # backup file gitlab.rb docker cp <name of container>:/etc/gitlab/gitlab.rb . Kemudian, file hasil backup dijadikan satu kedalam sebuah folder, misalkan backup_dir. Lalu lakukan compress dengan command : tar -zcvf backup_dir.tar.gz backup_dir ...

December 24, 2024 · 3 min

Cara Debug Odoo Di Docker Menggunakan Pdb

Latar Belakang Masalah Untuk melakukan debugging di odoo, ada beberapa cara. Yang paling direkomendasikan adalah menggunakan python package pdb. Sayangnya, ketika develop Odoo menggunakan docker. Perlu ada konfigurasi khusus agar kita bisa menggunakan package tersebut. Dalam praktik kali ini saya mengasumsikan teman-teman sudah menginstall odoo menggunakan docker. Kali ini, kita akan menggunakan VSCode sebagai text editor. Ada dua cara untuk melakukan debugging saat develop menggunakan docker. 1. Menggunakan Metode Attach Container Baik digunakan di local development environment. Karena tidak akan mengganggu STDIN dari program dan bisa melalui remote debugging. Tambahkan kedua line dibawah ini pada pengaturan docker-compose.yaml. ...

December 16, 2024 · 2 min

Membuat Notifikasi Menggunakan Webhook Discord

Webhook Webhook adalah sebuah metode untuk memungkinkan aplikasi atau layanan berkomunikasi satu sama lain secara otomatis melalui HTTP request. Secara sederhana, webhook adalah cara bagi satu aplikasi untuk memberi tahu aplikasi lain tentang suatu kejadian (event) atau peristiwa yang terjadi secara real-time. Keuntungan Menggunakan Webhook Real-Time: Webhook memungkinkan komunikasi yang cepat dan real-time antara aplikasi atau sistem. Efisien: Daripada aplikasi penerima harus secara terus-menerus memeriksa data (polling), webhook hanya mengirimkan data ketika terjadi perubahan, sehingga lebih efisien dalam hal penggunaan sumber daya. Automatisasi: Webhook dapat digunakan untuk mengotomatisasi alur kerja atau tindakan berdasarkan event yang terjadi, seperti mengirimkan pemberitahuan, memperbarui database, atau menjalankan skrip otomatis. Latar Belakang Masalah Ketika melakukan event mengeksekusi di server menggunakan script .sh perlu ada mekanisme mengirim notifikasi ketika ada error dalam proses tersebut. Ada banyak pilihan, tapi disini saya memilih untuk menggunakan Webhook Discord. ...

December 14, 2024 · 3 min

Cara Menyimpan Query SQL Pada Modul Odoo

Masalahnya, praktik meletakkan query procedure PostgreSQL langsung di database lalu memanggilnya dengan function execute di kode python merupakan hal yang buruk ketika procedure tersebut dikerjakan oleh beberapa orang. Sayangnya, ketika banyak orang mengerjakan query procedure langsung di database, bisa mengakibatkan inkonsistensi kode. Untuk itu, diperlukan suatu cara untuk mensinkronkan query sql yang di kerjakan di dalam team. Buat Folder db Pertama, kita buat folder baru didalam modul kustom kita dengan nama db. Yang nantinya akan menjadi tempat kita meletakkan file berformat .sql. ...

November 26, 2024 · 1 min