Living life and Make it Better

life, learn, contribute

Endy Muhardin

Software Developer berdomisili di Jabodetabek, berkutat di lingkungan open source, terutama Java dan Linux.

Workflow Git untuk Kontributor Project Open Source

Beberapa waktu belakangan ini, saya membuat beberapa aplikasi yang kemudian dirilis secara open source. Karena kultur open-source di Indonesia masih berkutat di level user, maka masih jarang yang mau ikut berkontribusi. Mungkin perlu dukungan dari perusahaan agar karyawannya terlibat dalam project open source, ataupun merilis aplikasi yang dibuatnya dengan lisensi open source.

Kendala-kendala yang biasanya terdengar antara lain:

  • tidak punya cukup waktu luang
  • tidak tertarik dengan aplikasi atau teknologi yang digunakan
  • merasa belum cukup mahir coding
  • tidak familiar dengan cara kerja menggunakan Git

Masalah yang pertama dan kedua, saya tidak ada solusinya.

Untuk yang ketiga, seharusnya coba saja kontribusi. Satu dua baris tetap diterima. Kalaupun ada yang perlu diperbaiki, biasanya akan saya berikan feedback yang jelas.

Problem keempat, sebetulnya saya sudah buatkan video tutorialnya.

Tapi agar lebih jelas, saya akan buatkan rangkuman langkah-langkah dan perintah Git yang harus dilakukan.

Lanjut membaca ...


Hosting Blog dengan SSL di Gitlab

Sejak beberapa waktu yang lalu, blog ini sebetulnya sudah pindah hosting dari Github ke Gitlab. Alasannya sederhana, Github sampai saat artikel ini ditulis tidak mendukung SSL untuk custom domain. Ada sih akal-akalan menggunakan CloudFlare, seperti dijelaskan di artikel ini, tapi tetap saja koneksi dari CloudFlare ke Github tidak terproteksi.

Oleh karena itu, saya pindahkan hostingnya ke Gitlab. Berikut langkah-langkah untuk memasang sertifikat SSL.

Lanjut membaca ...


Menggunakan Proprietary Jar dengan Gitlab CI dan Heroku

Pada artikel sebelumnya, kita sudah mengotomasi proses build dengan Gitlab CI dan deployment ke Heroku. Proses tersebut bisa dilakukan dengan lancar apabila semua library/dependensi yang kita gunakan dalam aplikasi kita adalah open source. Dependensi open source tersedia di repository Maven Central, sehingga dimanapun kita jalankan perintah build, maka Maven akan mengunduh dependensi yang dibutuhkan langsung dari internet.

Akan menjadi persoalan kalau project kita menggunakan library yang tidak open source atau proprietary. Contoh paling umum adalah database Oracle. Agar aplikasi kita bisa terhubung ke database Oracle, kita harus menggunakan JDBC Driver dari Oracle yang tidak open source, sehingga tidak tersedia di Maven Central.

Untuk mengatasi hal ini, kita perlu menyesuaikan proses build aplikasi kita agar tetap bisa berjalan otomatis dari commit hingga deployment.

Lanjut membaca ...


SSL Gratis dengan LetsEncrypt

Di tahun 2017 ini, sudah tidak ada lagi alasan bagi kita untuk tidak menggunakan HTTPS. Sertifikat SSL bisa didapatkan dengan mudah dan gratis dengan adanya LetsEncrypt.

LetsEncrypt menyediakan beberapa metode yang bisa kita gunakan untuk membuktikan bahwa domain yang ingin kita buatkan sertifikatnya benar-benar kita miliki (Domain Validation), yaitu:

  • apache
  • nginx
  • standalone
  • manual

Metode apache dan nginx kita gunakan bila kita menggunakan webserver tersebut. Aplikasi Certbot dari LetsEncrypt akan membuat file khusus di webserver tersebut dan mencoba mengaksesnya dari internet. Bila berhasil, artinya kita benar-benar menguasai domain dan webservernya.

Metode standalone kita gunakan bila aplikasi kita tidak berjalan di atas apache atau nginx, misalnya bila kita menggunakan Tomcat, Jetty, dan sebagainya. Dengan metode ini, certbot akan menjalankan webserver dan menunggu request dari server LetsEncrypt. Bila server LetsEncrypt bisa mengakses webserver certbot tersebut, artinya kita benar-benar punya akses ke domain dan servernya. Cara menggunakan metode ini sudah kita bahas di artikel terdahulu.

Walaupun demikian, adakalanya kita belum punya server yang akan kita gunakan untuk menjalankan aplikasi. Belum tahu mau pakai webserver apa. Atau aplikasi kita berjalan di port non-standar (selain 80 dan 443). Karena servernya belum ada, maka kita tidak bisa menunggu request di server tersebut. Kita juga tidak bisa mengarahkan nama domain ke laptop kita, karena pada umumnya, laptop kita tidak memiliki IP publik. Untuk itu, pada artikel kali ini kita akan membahas metode manual dan verifikasi dns. Metode ini bisa dijalankan di laptop, tanpa harus punya server ataupun mendeploy aplikasi kita ke server tertentu.

Lanjut membaca ...


Instalasi dan Hardening Raspberry PI

Raspberry PI tentunya sudah bukan barang baru lagi bagi para opreker nusantara. Cara instalasinya pun saya yakin sudah pada lancar. Akan tetapi, sebelum dipasang ke internet, perlu ada tindakan pengamanan supaya tidak dihack orang.

Berikut langkah-langkah yang biasa saya lakukan pada saat setup Raspberry PI

  1. Instalasi Raspbian ke MicroSD
  2. Login ke Raspbian
  3. Buat user baru
  4. Hapus user pi
  5. Ganti keyboard dan timezone
  6. Update & Upgrade
  7. Setup passwordless login
  8. Proteksi brute-force ssh
  9. Setup WiFi
  10. Automount USB

Lanjut membaca ...