Membangun Home Server dengan Single Board Computer

Banyak sekali hal yang berubah dalam beberapa tahun ini, bukan hanya Web yang menjadi semakin powerfull dan mudah, namun juga cloud, membangun on-premise server sendiri dirumah menjadi hal yang amat mudah dan murah saat ini.

Pada tulisan ini saya menceritakan beberapa tips dan beberapa hal yang telah saya lakukan untuk membangun on-premise / Home Server pribadi saya dirumah yang faktanya juga mentenagai web ini.

Pemilihan Hardware

Hardware yang paling umum di Indonesia based on content youtube adalah laptop bekas karena memang harganya yang murah. Namun saran saya lebih baik menggunakan arm based single board seperti Raspberry PI atau Orange PI. saya sendiri menggunakan Orange PI.

Untuk pemilihan hardware sebenarnya saya tidak banyak melakukan riset, saya memilih Orange PI sesimpel karena support M.2 slot dan perbandingan harga dengan Raspi lebih worth.

Preferensi Saya dalam Memilih Hardware


Image Caption
Dan pilihan saya jatuh pada Orange Pi 5 Plus 16 GB. Berikut 2 items yang saya beli via tokopedia.

Orange Pi 5 Plus

Metal Case

Orange Pi 5V/4A (TYPE-C) Power Adaptor 20W - REAL 4A

Operating System

Kesalahan umum yang saya temui saat pertama kali membangun home server adalah menginstall OS menggunakan Desktop Environment / DE, which is tidak saya sarankan karena Desktop Environment tidak akan ada gunanya dan hanya akan menambah overhead dari server kita nantinya.

Saya pribadi, entah itu raspi atau orange pi saya selalu menggunakan ubuntu server atau debian based OS karena memang itu OS yang saya paling familiar, resource di internet berlimpah, dan saya tidak pernah mengalami masalah.

Setup Server Environment

Semenjak familiar dengan docker, saya tidak pernah menggunakan alternative lain untuk urusan server. Menggunakan docker seperti memiliki tombol riset, isolated, service kita kemungkinan besar tidak akan merusak host OS, bahkan dalam kasus umum tidak mungkin terjadi karena nature dari docker adalah isolation.

Docker GUI

Image Caption
Untuk memanage containers, kita juga dapat menggunakan Web Based GUI, berikut beberapa OSS yang bisa digunakan

  1. Casa OS
  2. Portainer
  3. Caprover
  4. Coolify

Expose Ke Internet

Tentu ada banyak opsi untuk expose ke internet, jika internet kita memiliki static public ip kita bisa langsung menggunakan ip forwarding. Namun preferensi saya adalah menggunakan beberapa free service based on wireguard.

Tailscale

Tailscale saya gunakan untuk vpn split route, dengan tailscale saya bisa mengakses internal network rumah saya dengan aman karena cara kerjanya sama seperti split route pada open vpn.

Hal yang paling saya sukai dari Tailscale adalah magic DNSnya, saya dapat mengakses device saya hanya dengan nama alias. contoh ketika saya memberi nama / alias devbox pada device saya maka untuk ssh

ssh foo@devbox​

Cloudflare Zero Trust

CF Zero Trust saya gunakan untuk mengexpose / tiap port / service ke setiap domain representatifnya.

Karena semua domain saya menggunakan cloudflare dns maka setup ini sangat mudah

Kesimpulan

What a time to be alive! bahkan situs ini saya host dari home server saya, menggunakan semua service atau oss yang saya sebutkan diatas.

Dulu, sekitar 11 tahun yang lalu, saat saya masih SMA bahkan untuk hosting static html,css adalah sesuatu yang tak terjamah bagi saya. tapi sekarang tanpa static ip, tanpa pengetahuan networking yang mendalam kita bisa menjalankan on-premise server dari rumah, dengan device yang sangat efisien dan hampir semuanya gratis ( kecuali domain dan listrik )