Kondisi Homelab 2026: Evolusi Hobi Self-Hosting
(mrlokans.work)- Ringkasan contoh pembangunan homelab yang menggabungkan perangkat keras kecil dan tunneling cloud gratis untuk menjalankan sendiri berbagai layanan seperti media, AI, foto, dan pemantauan
- Dimulai dari OrangePI 5 lalu di-upgrade ke GMKTec NUC (RAM 32GB, NVMe 1TB), dengan struktur hibrida yang juga menjalankan mesin virtual Hetzner secara paralel
- Semua layanan dijalankan dalam container Docker, dengan IaC berbasis role Ansible dan enkripsi SOPS untuk memastikan reproduksibilitas dan keamanan
- Melalui Cloudflare Tunnel, akses eksternal disediakan tanpa membuka port inbound, sementara Traefik + Authentik menangani reverse proxy dan autentikasi SSO
- Dengan biaya operasional sekitar 7 euro per bulan, pemilik tetap mempertahankan kepemilikan data tanpa vendor lock-in, serta menempatkan nilai pada pembelajaran dan kesenangan alih-alih kesempurnaan
Konfigurasi perangkat keras
- Awalnya menggunakan OrangePI 5, tetapi beralih ke GMKTec NUC karena masalah manajemen daya dan storage yang terhubung lewat USB
- Dilengkapi CPU AMD Ryzen 7 5700U, RAM 32GB, storage NVMe M2 1TB
- Memiliki 2 slot M2 sehingga RAM dan disk sama-sama bisa diperluas
- Jauh lebih stabil untuk operasi tahunan
- Layanan yang perlu berjalan 24/7 dioperasikan terpisah pada mesin virtual Hetzner
- NAS masih belum dibangun, dan data penting disinkronkan dengan Syncthing
- Ada ketertarikan pada Ugreen NAS, Ubiquiti, dan lainnya, tetapi saat ini masih lebih menikmati proses mengutak-atiknya sendiri
Prinsip operasional
- Infrastructure-as-Code: sebisa mungkin semua konfigurasi diotomatisasi dengan skrip atau platform manajemen (seperti Ansible) dan disimpan sebagai kode
- Reproduksibilitas: saat terjadi gangguan atau penggantian mesin, infrastruktur harus bisa dideploy dan dikonfigurasi ulang dengan cepat, dan tidak boleh meninggalkan sisa ketika layanan eksperimen dihapus
- Kemudahan penggunaan: karena ini proyek hobi, pendekatan yang standar dan familier lebih disukai
Sistem operasi
- Menggunakan distribusi Debian yang dipasang langsung pada bare metal
- Sempat mempertimbangkan NixOS (build yang reproducible) atau Talos (cluster k8s), tetapi ditunda karena beban pengelolaan workload k8s di mesin tunggal dan keterbatasan waktu
- Juga menilai hypervisor seperti ProxMox tidak perlu, sehingga tidak digunakan
Arsitektur jaringan
- Memilih Cloudflare Tunnel sebagai cara mengekspos layanan ke luar
- Server membuat koneksi khusus outbound ke jaringan Cloudflare, sehingga tidak perlu membuka port inbound di firewall
- Setelah tunnel dikonfigurasi, lalu lintas dua arah akan mengalir melalui tunnel
- Dengan menghubungkan domain ke Cloudflare DNS, tiap subdomain bisa dipetakan ke port atau protokol tertentu pada mesin (HTTP/HTTPS/TCP, dll.)
- Disediakan sepenuhnya gratis, dan dinilai sebagai alternatif yang lebih baik daripada ngrok
- Pendekatan IP statis (White IP) memiliki biaya dan risiko keamanan, dan walau ada alternatif seperti Tailscale Funnel, Cloudflare Tunnel dipilih sebagai solusi paling praktis
-
Traefik
- Reverse proxy open source yang mengenali Docker secara native, sehingga menguntungkan untuk otomatisasi server
- Jika container diberi label yang sesuai, routing akan terdeteksi otomatis tanpa perlu mengubah file konfigurasi terpisah
-
Authentik
- Platform IdP (Identity Provider) dan SSO
- Konfigurasi dapat disimpan dalam bentuk blueprint (file YAML) sehingga tetap mengikuti prinsip IaC
- Melalui middleware ForwardAuth, akses ke layanan sensitif dialihkan ke halaman login
Alat operasional
-
Ansible
- Alat otomatisasi infrastruktur agentless (hanya perlu SSH), dengan keunggulan konfigurasi berbasis YAML dan banyak contoh yang tersedia
- Setiap layanan didefinisikan per role: terdiri dari tasks, defaults, handlers, templates, files
- tasks: mendefinisikan pekerjaan yang akan dijalankan
- defaults: nilai default seperti image tag, port, nama container
- handlers: me-restart container saat konfigurasi berubah
- templates: merender file
.env,config.yamlberbasis Jinja2 - files: konfigurasi statis, skrip
- Tahapan umum deployment layanan:
- membuat resource bersama (network, volume) → membuat schema dan user di PostgreSQL → merender template konfigurasi → pull image Docker → menjalankan container (termasuk environment variable dan pengaturan logging) → provisioning konfigurasi autentikasi ke blueprint Authentik → bila perlu menambahkan konfigurasi Cloudflare Tunnel
- Kekurangannya adalah dokumentasi yang sangat besar, struktur DSL yang repetitif, dan boilerplate, tetapi tetap dipakai karena sudah terbiasa
- Menjalankan playbook secara manual tanpa integrasi GitOps, dan untuk saat ini itu sudah cukup
-
SOPS (Secrets OPerationS)
- Hanya mengenkripsi nilai YAML/JSON sambil mempertahankan struktur key, sehingga Git diff tetap berguna
- Menggunakan backend enkripsi age — alat yang “membuat enkripsi lebih sederhana tanpa PGP”
- Per host, file konfigurasi biasa (
homelab.yaml) dan file terenkripsi (homelab.sops.yaml) dikelola secara terpisah - Workflow:
- membuat key dengan
age-keygen→ mengedit file terenkripsi dengan perintahsops(didekripsi di editor lalu otomatis dienkripsi ulang saat disimpan) → dekripsi otomatis saat menjalankan Ansible - Karena Ansible mendukung SOPS secara native, tidak perlu modul atau flag tambahan
- membuat key dengan
- Keunggulan dibanding Ansible Vault: enkripsi per nilai, bukan seluruh file, sehingga diff tetap bisa dimanfaatkan
- Keterbatasan: private key age harus dibagikan dengan aman kepada anggota tim, dan jika key hilang maka secret tidak bisa dipulihkan
- Untuk homelab yang dikelola sendiri, ini adalah tingkat kompleksitas yang sesuai
Layanan yang sedang dijalankan
-
Manajemen media: stack *arr
- Prowlarr: manajer indexer yang meneruskan hasil pencarian ke layanan *arr lainnya
- Radarr: manajer koleksi film — saat film yang diinginkan ditentukan, pencarian, pengunduhan, dan perapian berjalan otomatis
- Lidarr: fungsi serupa untuk musik, terintegrasi dengan Navidrome
- Bazarr: mengunduh subtitle secara otomatis
- Tidarr: layanan untuk menyimpan audio Tidal secara lokal
- Transmission: klien BitTorrent (port 9091) yang menangani semua permintaan unduhan dari layanan *arr
- Semua layanan berada di balik autentikasi Authentik
- Menggunakan direktori unduhan bersama (
/mnt/data/docker/transmission/downloads) dan PUID/PGID 1000 untuk menghemat ruang disk dengan hardlink - Contoh workflow: menambahkan film ke Radarr → mencari lewat Prowlarr → Transmission mengunduh → Radarr memindahkan ke library media → dapat ditonton di Jellyfin
-
Konsumsi media
- Jellyfin: server media open source yang, tidak seperti Plex, tidak memerlukan login cloud. Menggunakan autentikasi sendiri dan mendukung berbagai perangkat termasuk aplikasi Android TV
- Navidrome: server streaming musik yang mendukung Subsonic API dan terhubung dengan aplikasi seluler (seperti DSub2000). Lidarr memasok musik ke folder library
- Calibre Web: manajer dan pembaca library ebook
- Database metadata yang dikelola di aplikasi desktop Calibre pada laptop disinkronkan ke server dengan Syncthing
- Buku dapat diakses dari berbagai reader melalui OPDS API
-
AI dan chat
- LibreChat: antarmuka chat AI self-hosted yang dapat terhubung ke berbagai provider LLM (OpenAI, Anthropic, Ollama lokal)
- Mendukung RAG (Retrieval Augmented Generation)
- Memerlukan MongoDB (riwayat chat), PostgreSQL + pgvector (embedding), dan MeiliSearch (pencarian full-text), sehingga konfigurasinya relatif berat
- Karena Claude Code lebih mudah diakses, frekuensi pemakaiannya rendah dan sedang dipertimbangkan untuk dihapus
- LibreChat: antarmuka chat AI self-hosted yang dapat terhubung ke berbagai provider LLM (OpenAI, Anthropic, Ollama lokal)
-
Foto dan file
- Immich: layanan self-hosted pengganti Google Photos
- Backup foto otomatis dari ponsel, pengenalan wajah, pengelolaan album, ekstraksi metadata EXIF
- Menggunakan PostgreSQL sendiri (termasuk pgvector) dan container machine learning (klasifikasi gambar), dan saat ini menyimpan ribuan foto
- Syncthing: sinkronisasi folder antara laptop, ponsel, dan server. Sinkronisasi langsung P2P tanpa perantara cloud
- Menyinkronkan Obsidian Vault, dokumen, dan lainnya di berbagai perangkat termasuk Android
- MinIO: object storage kompatibel S3 yang digunakan untuk pengujian atau aplikasi yang memerlukan API S3
- Immich: layanan self-hosted pengganti Google Photos
-
Membaca dan informasi
- Miniflux: pembaca feed RSS minimalis yang berlangganan sekitar 50 blog dan sumber berita
- Mendukung shortcut keyboard dan menyediakan feed kronologis tanpa pengurutan berbasis algoritme
- Miniflux: pembaca feed RSS minimalis yang berlangganan sekitar 50 blog dan sumber berita
-
Infrastruktur dan autentikasi
- Traefik: reverse proxy yang merutekan trafik ke container Docker berdasarkan hostname. Saat container dimulai, cukup ada label yang sesuai agar terdeteksi otomatis
- Authentik: provider SSO dan ID. Melindungi layanan dengan middleware ForwardAuth, dan menyimpan blueprint di Git untuk mengelola seluruh konfigurasi autentikasi
- PostgreSQL: server database bersama; Authentik, Miniflux, Immich, LibreChat, dan lainnya berbagi satu instance alih-alih memiliki DB terpisah, sehingga menghemat resource dan memudahkan backup
- Redis: cache bersama dan penyimpanan sesi, terutama digunakan untuk manajemen sesi dan antrean pekerjaan seperti pada Authentik
-
Perangkat lunak kustom
- Highlight Exporter: layanan Go yang mengekstrak highlight buku dari KOReader, Readwise, dan Apple Books lalu mengubahnya menjadi Markdown kompatibel Obsidian
- Telegram Assistant: bot Telegram yang menyediakan berbagai tugas otomatisasi dan akses AI dalam group chat. Ini adalah proyek yang paling sering ditulis ulang untuk menguji teknologi baru
- Chess-blunder trainer: webapp yang mengambil game dari chess.com atau lichess.com, menganalisisnya dengan Stockfish, lalu memilih langkah blunder untuk latihan, dan akan segera dirilis sebagai open source
Pemantauan
-
Beszel
- Solusi pemantauan ringan dengan konfigurasi dan operasional yang sederhana, serta default yang baik
- Stack Grafana dianggap terlalu berlebihan dan kompleks hanya untuk melihat statistik OS dasar di dua mesin
- Proyek serupa seperti Glances juga terasa memerlukan terlalu banyak tuning
- Beszel mencakup 120% dari kebutuhan sambil tetap mudah dipasang
-
Statsping
- Alat ping layanan minimalis untuk pemantauan detail terhadap resource tertentu
- Mengirim ping ke endpoint yang didefinisikan untuk melaporkan latensi dan ketersediaan, serta memberi notifikasi dengan berbagai cara saat layanan gagal
- Di-host di mesin cloud agar tetap hidup meskipun homelab bermasalah, tanpa overhead pemeliharaan tambahan
Kekurangan saat ini
-
Backup
- Meski menyadari pentingnya backup, saat ini belum diimplementasikan sama sekali
- Dibanding kehilangan data film, musik, atau foto, yang lebih dibutuhkan adalah backup database tiap layanan, tetapi solusi yang tepat (seperti restic) dan konfigurasi hardware-nya masih belum diputuskan
-
Konfigurasi RAID
- Data media dan sistem berdampingan pada satu drive M2 NVMe
- Ruang fisik untuk server NAS atau mesin backup terpisah masih kurang
-
Kemandirian dari cloud
- Ketersediaan resource sangat bergantung pada infrastruktur Cloudflare Tunnel
- Jika Cloudflare mengalami gangguan, akses ke infrastruktur juga terhenti, dan ada rencana berinvestasi pada alternatif di masa depan
-
IaC dan otomatisasi penuh
- Playbook Ansible dijalankan manual tanpa pipeline CI atau provisioning otomatis
- Untuk saat ini, belum terasa bahwa beralih ke GitOps akan memberi manfaat besar
Efisiensi biaya dan kesimpulan
- Mengeluarkan sekitar 7 euro per bulan untuk mesin virtual Hetzner, dan penggunaan listrik home server diperkirakan sangat kecil
- Menambahkan layanan baru atau mengubah konfigurasi memerlukan sekitar 20–30 menit, dengan sebagian besar didelegasikan ke Claude Code dan hanya ditinjau singkat sebelum deployment
- Total waktu yang dihabiskan untuk seluruh proyek diperkirakan sekitar 100–150 jam selama beberapa tahun
- Tetap memiliki data sendiri dengan vendor lock-in yang minimal, tanpa risiko kehilangan data akibat perubahan mendadak pada syarat layanan, feed algoritmik, atau merger dan akuisisi
- Tujuannya bukan sistem yang sempurna, melainkan memahami infrastruktur dan menikmati prosesnya; setiap layanan yang dideploy, setiap role Ansible yang ditulis, dan setiap secret yang dienkripsi punya nilai pembelajaran
- Untuk mulai membangun homelab, yang penting adalah memulai dari kecil dan tidak terlalu banyak overthinking
19 komentar
Saya dulu pakai Tailscale lalu beralih ke Cloudflare Tunnel, dan benar-benar suka. Memang kegunaannya agak berbeda, tetapi dalam kasus saya, Tailscale bentrok dengan Adguard jadi agak sulit dipakai.
Bukankah cukup menetapkan parent DNS Tailscale ke AdGuard?
Bukan
adguard desktop, tetapiadguard mobileberjalan sebagai VPN lokal sehingga tidak bisa digunakan bersamaan.Sepertinya konflik terjadi pada bagian VPN, bukan DNS.
Baru-baru ini saya mencoba berbagai cara agar radio MBC bisa diputar di Google Nest.
Saya menggunakan Cloudflare Tunnel. Ini layanan bagus yang membuat kita bertanya-tanya kenapa bisa gratis.
Menarik juga. Coba ceritakan sedikit dong.
Saya menggunakan Oracle Cloud free tier. Dengan 4 vCPU, RAM 24 GB, dan 200 GB, plus berbasis ARM, jadi kadang ada yang tidak kompatibel, tetapi selain itu ini sangat menyenangkan sebagai mainan.
Provider internet yang baru saya daftari ternyata memblokir port 80 dan 443, jadi saya mengakalinya dengan
cloudflare tunnel.Kalau tidak ada itu, saya mungkin sudah ganti provider sambil bayar penalti pemutusan kontrak.
Anda pakai operator internet mana sampai port-nya diblokir?
Sebenarnya bukan saya yang memblokirnya secara langsung; yang benar adalah router dari ISP memang memblokir port forwarding untuk port 80 dan 443.
Begitu saya memakai router pihak ketiga untuk melakukan port forwarding, kecepatan paket internet 1G yang saya langgani diam-diam diturunkan menjadi 100 Mbps.
Saat mencari alternatif, ternyata yang paling rapi adalah langsung memakai CF Tunnel.
Coba cek apakah router pihak ketiga Anda punya fitur untuk mengubah
MAC address, lalu coba ubah menjadi milik router dari ISP; sepertinya itu juga bisa dilewati.Setelah mengatur
cf tunnel, log fail2ban yang biasanya menumpuk di port 80 dan 443 hilang sama sekali, jadi saya sekalian melepasnya dan tidak memikirkannya lagi.Domainnya sendiri saya beli di Cloudflare, lalu SSO juga saya atur di Cloudflare, dan kalau tidak lolos SSO maka layanan tidak bisa dipakai, jadi semua serangan dibuat agar ditangani Cloudflare di depan.
Karena isinya hanya layanan yang saya pakai sendiri, ternyata konfigurasi seperti ini sudah lebih dari cukup untuk digunakan.
Kalau Cloudflare mengalami gangguan, saya memutuskan untuk menerima risikonya.
Saya dengar biasanya ada kasus port forwarding diblokir di router bawaan dari penyedia layanan internet.
Kalau pasang satu router pihak ketiga sih mungkin bisa dibuka... tapi seperti yang Anda bilang,
cf tunnelsudah punya WAF dasar, bahkan bisa diarahkan ke region ICN, jadi memang tidak banyak alasan untuk tidak memakainya.Saya menjalankan berbagai tugas kecil dengan memasang n8n di homelab lalu menghubungkannya ke Anthropic, Telegram, storage, dan lain-lain, dan itu cukup nyaman karena konektornya sudah tertata dengan baik.
Saya menggunakan perangkat berdaya rendah seri Ryzen 8000 sebagai home server 24/7.
Biasanya dipakai sebagai NAS, dan total ada sekitar 70 kontainer serta layanan yang berjalan, tetapi penggunaan listriknya bahkan tidak sampai 10 kWh per bulan. Biayanya sekitar 2.000 won.
Cloudflare Tunnel
Sangat bagus.
Teman-teman yang butuh waktu sampai respons selesai kadang memang suka mengeluarkan 502,
namun ya gratis~
Saya juga memakai cloud tunnel, dan itu sangat bagus.
Biasanya ketika router terhubung, sering kali IP eksternal dimiliki oleh router.
Dengan memakai Cloudflare Tunnel, bahkan IP internal pun
bisa dibuat terhubung dari luar melalui pendaftaran domain~
Bahkan gratis juga,
Komentar Hacker News
Ini memang keren, tetapi Cloudflare Tunnel sebaiknya tidak digunakan untuk streaming media
Itu dilarang oleh ketentuan layanan, atau setidaknya bukan penggunaan yang dimaksudkan. Layanannya bisa saja diblokir
Sebaiknya gunakan Wireguard atau Tailscale sebagai gantinya
Artikel terkait
Ini juga bagus untuk melewati CGNAT, dan untuk GUI saya merekomendasikan Nginx Proxy Manager
Saya sedang pindah ke kombinasi rathole + traefik. Saya bereksperimen sampai dini hari dan akhirnya begadang semalaman
Tailscale (bukan Headscale) memang menyediakan fitur reverse proxy bernama Funnel, tetapi tidak bisa memakai domain pribadi
Alternatif yang paling mirip dengan CF Tunnel adalah Pangolin, dan ada juga cara self-hosting NetBird bersama fitur reverse proxy
Ini rasanya bukan fantasi tentang ‘kemandirian’, melainkan fantasi menjadi administrator sistem
Tetapi jujur saja, membayar Google atau Apple 5 dolar per bulan tampaknya pilihan yang jauh lebih baik. Saya juga ragu mereka benar-benar menerapkan backup 3-2-1
Akan bagus jika ada kelompok relawan di perpustakaan daerah yang menjalankan layanan seperti ini
Anak-anak bisa belajar mengoperasikan layanan, dan orang yang kurang paham teknologi juga mendapat kesempatan memanfaatkan open source
Tidak ada yang mau menangani dukungan pelanggan. Karena itu banyak layanan akhirnya dibayar agar bisa berkata, “silakan hubungi pihak sana untuk dukungan”
Saya memakai fnox untuk manajemen secret
Dibanding
sops, ia mendukung jauh lebih banyak backend, dan menurut saya DX (developer experience)-nya juga lebih baikAda ungkapan tentang ‘fantasi pria yang mandiri dan siap sedia’, tetapi pada akhirnya tetap ada Cloudflare di tengah, jadi itu belum sepenuhnya mandiri
Cloudflare Tunnel benar-benar alat yang hebat
Dulu saya hosting langsung dengan IP rumah, tetapi sekarang jauh lebih mudah dikelola dengan
cloudflaredKekhawatiran soal firewall atau intrusi jaringan juga berkurang
homelab saya sekarang dikelola dengan skrip bash idempoten yang ditulis oleh Claude
Menurut saya dependensi menjadi rumit karena keinginan orang untuk mengubah sifat-sifatnya, dan interaksi antarbagian itulah yang menimbulkan bug
Karena itu, mengekspresikan semuanya lewat skrip bash sederhana terasa lebih stabil
Saat ini saya memakai systemd + container podman, dan untuk catatan pribadi saya meninggalkan halaman memo
Saya penasaran apakah kenyamanan praktisnya memang cukup untuk menutupi kekurangan itu
Saya tidak paham kenapa orang-orang menaruh hal seperti ini di internet publik. Kenapa tidak pakai Tailscale saja?
Penulis tampaknya mencampuradukkan homelab dan self-hosting
self-hosting adalah menjalankan layanan yang benar-benar dipakai, sedangkan homelab adalah lingkungan untuk eksperimen dan belajar
Saya tidak menaruh data atau layanan pribadi saya di homelab. Itu tempat yang bisa rusak kapan saja
Saya pernah melihat perusahaan SaaS di Ukraina yang benar-benar menangani traffic produksi dari dalam bunker bawah tanah
Saya kaget karena langganan streaming saja mencapai 1.300 dolar per tahun
Jadi saya membeli NAS dan hard disk 36TB, lalu membangun arr stack dan membatalkan semua langganan
Seluruh keluarga ikut melakukan hal yang sama dan sekarang menghemat 5–6 ribu dolar per tahun
NAS itu kemungkinan balik modal dalam beberapa bulan, dan setelah itu semuanya jadi keuntungan bersih
Berkat Claude Code, pengaturannya juga selesai hanya dalam beberapa jam
Selain itu, saya jadi bisa melakukan kurasi konten tanpa gangguan ala Netflix atau Hulu, dan rasanya jauh lebih menyenangkan
Jika Anda me-rip Blu-ray 4K lalu men-streaming-nya di rumah, kualitas gambarnya jauh lebih baik daripada layanan komersial
Saya merasa value for money layanan streaming sekarang sudah sangat buruk. Paket mahal pun sering kali mentok di 1080p