Membuat Home Server Berbasis Docker

Apabila perangkat yang akan kita jadikan server agak bagus, docker adalah solusi yang paling efisien. Karena dengan docker aplikasi akan mudah di install, minim konflik, dan mudah di backup dan di maintenance.

Beda dengan server yang saya gunakan pada blog ini karena ini server berbasis STB yang rendah resources. Untuk server ini saya menggunakan cara manual, bukan meggunakan docker.

Ada resources yang sangat menarik di kanal Kepoin Tekno:

  1. Mengubah PC Jadul Jadi Home Server Paling Berguna! | Geeknow #1
  2. Bagaimana Saya Meracik Home Server Handal dari Laptop / PC Tua | Geeknow #2

Kedua konten ini bisa dijadikan referensi untuk membuat home server yang menurut saya cukup memadahi. Bukan hanya home server sih, small office menurut saya juga bisa menggunakan cara ini.

Silahkan disimak ringkasannya:

Meracik Home Server Handal dari PC/Laptop Tua: Panduan Lengkap untuk Hidup Lebih Mudah dan Murah

Di era digital ini, kebutuhan akan penyimpanan data, keamanan, dan akses layanan yang fleksibel semakin meningkat. Seringkali, kita berlangganan berbagai layanan berbayar seperti cloud storage, VPN, atau bahkan streaming film. Namun, tahukah Anda bahwa dengan sedikit “oprek-oprek” dan memanfaatkan PC atau laptop tua yang tidak terpakai, Anda bisa membangun home server sendiri yang handal, menghemat biaya bulanan, dan memberikan kontrol penuh atas data serta layanan Anda?

Seri Geeknow dari Kepoin Tekno berbagi tips dan info menarik seputar teknologi untuk hidup lebih mudah dan lebih murah. Artikel ini akan memandu Anda dalam perjalanan mengubah perangkat jadul menjadi home server yang siap diakses dari mana saja.

Fase 1: Mempersiapkan PC Tua Anda sebagai Pondasi Home Server

Langkah pertama adalah menyiapkan perangkat kerasnya. PC atau laptop tua, bahkan yang berusia 14 tahun, dapat menjadi kandidat ideal.

  1. Pembersihan dan Pengecekan Awal:
    • Lepaskan setiap komponen seperti RAM, heatsink, dan CPU untuk dibersihkan. Pastikan untuk mengganti thermal paste yang mungkin sudah kering.
    • Ganti baterai CMOS jika PC sudah lama tidak menyala, karena kemungkinan besar sudah mati.
    • Manfaatkan hard disk lama sebagai media penyimpanan.
    • Setelah bersih, pasang kembali semua komponen dan uji apakah PC masih bisa berjalan normal.
  2. Perbaikan dan Peningkatan Esensial:
    • Jika PC tidak menyala atau bermasalah, identifikasi komponen yang rusak (umumnya RAM atau power supply) dan ganti.
    • Pertimbangkan peningkatan komponen seperti RAM (misalnya, upgrade ke 8GB DDR3) atau power supply baru untuk stabilitas, mengingat server akan menyala 24/7. Bagian PC jadul seperti ini harganya sangat terjangkau.
  3. Koneksi Internet:
    • PC tua seringkali hanya memiliki port RJ45. Jika router Anda jauh, gunakan solusi seperti WiFi receiver PCI Express (mendukung 5 GHz), USB dongle, atau WiFi extender dengan output RJ45. Ini memungkinkan koneksi internet yang rapi tanpa perlu kabel panjang.
  4. Memilih dan Menginstal Sistem Operasi (OS) Server:
    • Ada banyak pilihan OS server (TrueNAS, Proxmox, Ubuntu Server, Debian, dll.). Untuk PC tua, pertimbangkan tips ini:
      • Pilih yang Ringan: Hindari OS yang membutuhkan resource besar seperti TrueNAS dengan filesystem ZFS.
      • Hindari Virtualisasi Penuh: Meskipun fleksibel, virtualisasi penuh memiliki overhead performa yang berat. Lebih baik gunakan bare metal atau kontainer seperti Docker.
      • Fleksibel dan Sesuai Penggunaan: Pilih Distro Linux biasa yang fleksibel untuk berbagai aplikasi, bukan yang spesifik.
      • Gratis dan Open Source: Sesuai tujuan penghematan biaya.
      • Dukungan Hardware Tua: Pilih OS yang kompatibel dan mulus diinstal pada PC tua Anda. Debian adalah pilihan yang baik dan sukses diinstal pada PC tua di sumber ini.
    • Proses Instalasi Debian:
      • Buat bootable flash drive menggunakan Rufus, pastikan memilih opsi “add fixes for old BIOS” jika PC Anda sangat jadul. Gunakan skema partisi MBR.
      • Atur BIOS untuk boot dari USB flash drive dan ubah konfigurasi SATA ke AHCI.
      • Saat instalasi, pilih graphical install, atur bahasa dan region (penting untuk zona waktu).
      • Buat root password yang aman dan user account terpisah.
      • Pilih partisi LVM untuk fleksibilitas ukuran partisi di masa mendatang.
      • Sangat penting: Instal tanpa lingkungan desktop (headless) untuk efisiensi performa. Centang SSH server dan standard system utilities.
  5. Konfigurasi Awal Pasca-Instalasi:
    • Instal sudo agar user account Anda dapat menjalankan perintah super user.
    • Buat IP server Anda statis/persisten melalui pengaturan DHCP Static IP di admin page router Anda, dengan mengaitkan MAC address server ke IP yang diinginkan (misalnya, 192.168.18.100). Ini penting agar IP tidak berubah saat server atau router di-restart.
    • Uji koneksi SSH dari komputer lain. Jika berhasil, Anda bisa mencabut monitor, keyboard, dan mouse dari server Anda.

Fase 2: Mendesain dan Mengkonfigurasi Home Server yang Handal dan Aman

Setelah home server dasar siap, saatnya merancang strukturnya agar handal dan bisa diakses dari mana saja.

  1. Desain Struktur Internal yang Optimal:
    • Kontainerisasi dengan Docker: Semua aplikasi diinstal sebagai kontainer terpisah menggunakan Docker. Ini membuat server lebih rapi, mudah dikelola, mudah di-backup, dan aman dari error saat update karena menghindari konflik dependensi.
    • Jaringan Internal Privat: Hubungkan semua kontainer dalam satu jaringan internal privat yang sama. Meskipun terpisah, aplikasi dapat berkomunikasi satu sama lain dengan aman. Anda bisa membuat jaringan ini dengan perintah docker network create private.
    • Akses Terpusat dengan Reverse Proxy: Kumpulkan akses ke setiap aplikasi melalui satu pintu yang sama menggunakan reverse proxy. Ini membuat akses lebih rapi, aman, dan mudah diingat menggunakan subdomain alih-alih IP dan port. Nginx Proxy Manager (NPM) digunakan sebagai proxy manager.
  2. Blueprint Konfigurasi Aplikasi:
    • Selalu instal aplikasi menggunakan Docker Compose dengan file docker-compose.yml.
    • Gunakan bind mounting untuk menempatkan data atau konfigurasi di folder eksternal, memudahkan akses dan backup.
    • Setiap kontainer harus terhubung ke jaringan internal privat yang telah dibuat.
    • Simpan password, username, API token, atau data privat lainnya di file .env untuk keamanan dan kerapian.
    • Selalu adopsi konfigurasi dari dokumentasi resmi, bukan mengambil mentah-mentah.
  3. Instalasi Komponen Kunci:
    • AdGuard Home: Instal sebagai DNS lokal Anda.
      • Buat folder adguardhome, lalu file docker-compose.yml dengan konfigurasi AdGuard Home (menggunakan image terbaru, membuka port 53 (DNS), 3000 (setup), dan 8080 (web admin sementara), dan menghubungkannya ke jaringan privat).
      • Jalankan docker compose up -d.
      • Setelah instalasi, setup AdGuard Home melalui browser (misalnya IP_SERVER:3000), lalu atur all interface dan buat username/password. Dashboard dapat diakses di IP_SERVER:8080.
    • Nginx Proxy Manager (NPM): Instal sebagai proxy manager dan gateway koneksi.
      • Buat folder npm, lalu file docker-compose.yml dengan konfigurasi NPM (menggunakan image versi 2.12.3, membuka port 80 (HTTP) dan 443 (HTTPS) sebagai gateway, serta port 81 (web admin sementara)).
      • Jalankan docker compose up -d.
      • Akses web admin NPM di IP_SERVER:81. Gunakan default username [email protected] dan password changeme, lalu segera ganti username dan password default.
  4. Menyiapkan Akses Eksternal dengan Domain dan SSL:
    • Daftarkan Domain: Beli domain murah (misalnya Dmy.id seharga Rp10.000/tahun) untuk mengakses semua layanan Anda.
    • Integrasi Cloudflare: Hubungkan domain Anda ke Cloudflare untuk memanfaatkan fitur gratisnya, termasuk DNS dan SSL. Tambahkan name server Cloudflare ke pengaturan domain Anda.
    • Jadikan Home Server sebagai DNS Koneksi Rumah:
      • Login ke router Anda (misalnya 192.168.1.1 atau 192.168.18.1).
      • Di pengaturan DHCP (misalnya Advanced > LAN > DHCP Server), masukkan IP home server Anda sebagai Primary DNS Server. Ini mengarahkan semua koneksi internet rumah ke AdGuard Home Anda.
      • Di admin page AdGuard Home, tambahkan DNS rewrite: arahkan domain utama (febian.my.id) dan wildcard subdomain (*.febian.my.id) ke IP home server Anda.
  5. Mengamankan Koneksi dengan SSL (HTTPS):
    • Gunakan fitur DNS Challenge dari Cloudflare untuk mendapatkan sertifikat SSL gratis untuk semua subdomain.
    • Buat API token di Cloudflare (Profile > API Tokens > Create Token > Edit Zone DNS, atur specific zone untuk domain Anda).
    • Di web admin NPM (menu SSL Certificates), tambahkan SSL certificate: masukkan domain utama dan wildcard subdomain, aktifkan DNS Challenge, pilih Cloudflare sebagai provider, dan masukkan API token yang sudah dibuat.
  6. Membuat Proxy Subdomain:
    • Di NPM (menu Proxy Hosts), buat entri baru untuk setiap aplikasi Anda:
      • Masukkan subdomain yang diinginkan (misalnya adguard.febian.my.id, npm.febian.my.id).
      • Untuk forward host name, masukkan nama kontainer (misalnya adguardhome, npm).
      • Untuk forward port, masukkan port internal kontainer (misalnya 80 untuk AdGuard Home, 81 untuk NPM).
      • Aktifkan “block common exploit“.
      • Di menu SSL, pilih sertifikat SSL yang sudah dibuat dan paksa koneksi HTTPS (force SSL).
    • Setelah subdomain berfungsi, nonaktifkan akses web admin melalui IP dan port dengan mengedit file docker-compose.yml setiap aplikasi (cukup komentar baris port web admin atau hapus). Server Anda sekarang akan diakses sepenuhnya melalui subdomain yang aman.

Manfaat dan Contoh Aplikasi yang Dihosting Sendiri

Dengan home server ini, Anda dapat menghemat ratusan ribu hingga jutaan rupiah per bulan dengan menggantikan layanan berbayar. Anda bisa membangun alternatif open source secara gratis.

Beberapa contoh aplikasi yang dapat Anda hosting sendiri:

  • OwnCloud: Pengganti cloud storage seperti Google Drive atau Dropbox, dapat diakses dari mana saja dan berbagi file.
  • AdGuard Home: Menjadi DNS di koneksi internet Anda, berfungsi memblokir iklan dan tracker di semua perangkat, memblokir website tertentu, atau membuka akses ke website yang diblokir.
  • Uptime Kuma: Memantau uptime website Anda dan memberikan notifikasi jika ada masalah, seperti fitur berbayar UptimeRobot.
  • Nginx Proxy Manager: Sebagai reverse proxy yang memungkinkan akses semua layanan privat Anda menggunakan domain dengan SSL aktif, layaknya website publik.

Efisiensi Biaya

Meskipun menyala 24/7, home server ini sangat efisien. Dengan konsumsi daya rata-rata sekitar 37 watt, biaya listrik bulanannya bisa sekitar Rp38.486 atau kurang dari Rp50.000. Ini adalah investasi kecil untuk penghematan besar dan kontrol penuh atas data Anda.


Membangun home server dari perangkat tua seperti menanam pohon buah di halaman belakang rumah Anda yang dulunya kosong. Alih-alih terus membeli buah dari toko, Anda kini memiliki sumber buah sendiri yang berlimpah, gratis, dan bisa Anda sesuaikan dengan keinginan Anda. Ini adalah tentang mengoptimalkan apa yang Anda miliki untuk hidup yang lebih mandiri dan efisien.

Spread the love

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.