Home Lab Revamp

Posted on Jun 18, 2025

Dibuat di Surga

Aku memutuskan untuk merombak setup home-lab ku. Kenapa? Karena ada banyak conflict antara service yang berjalan. Aku mencoba memasang Pi-Hole untuk eksperimen DNS dan Ad-Blocker tapi ternyata itu conflict dengan Apache Web Server. Aku tidak mau mematikan Apache karena FreshRSS, Nextcloud berjalan di atas itu.

Alasan yang kedua adalah aku ingin melakukan ekspansi untuk storage. Thinkpad X260 serverku sekarang memiliki “hanya” 128 GB. Aku berencana untuk membuat SMB dan memindahkan banyak film dari PC-ku (sekitar 87.7 GB, 56 film) untuk ditonton dengan streaming via Jellyfin. Kenapa engga streaming pakai website biasa aja? Jawabannya karena ada risiko bakal patah-patah. Aku juga berencana melakukan banyak hal seperti mendownload otomatis film via torrent ke serverku jadi aku tidak perlu menyalakan PC-ku dan menunggu proses download selesai.

Post ini adalah bentuk dari dokumentasi dalam proses perombakan ini.

X260

Mari kenalan dulu sama lappy yang bakal kuoprek. Dia akan kuberi nama, “RENNER” yang artinya pelari (dari bahasa Jerman) dan nama itu bersifat palindrom (dibaca dibalik tetap RENNER). Dia adalah Thinkpad X260 yang kubeli 27 Desember 2021. Waktu itu aku ada di kampung halaman, cuma punya PC dan PC-ku ada di kota aku kuliah😢. Karena mati bosan aku memutuskan untuk membeli laptop yang “murah”. Berikut penampakan si doi.

Sejarah X260

Sedikit flashback, Aku kurang puas dengan layout keyboard Jepang-nya. Jadi aku beli lagi keyboard khusus untuk layout US, tapi karena aku terlalu tengil jadi keycap untuk backspace jadi lepas dan aku engga tahu cara benerinnya.

Setelah beberapa bulan beli, aku kembali kuliah dan laptop ini jadi tidak terpakai. Aku memutuskan untuk meminjamkannya ke sahabatku. Setelah dipakai beberapa semester, laptopnya rusak…keyboard-nya ngetik sendiri sama ada beberapa keys yang tidak berfungsi. Sudah tertekan tetapi dia tidak mau merespon. Sahabatku beli laptop baru dan kembaliin si RENNER.

Aku kira aku masih bisa pakai RENNER sebagai laptop (bisa dibawa ke warkop). Tapi setelah aku coba ganti keyboard ke Jepang lagi ternyata masalahnya di konektor😫. Bisa sih pakai keyboard eksternal tapi yang aku ga suka itu ghost click nya, tiba-tiba bisa ngespam YYYYYYYYYYYYYYYYYYYYYYYYYY tiada aliran elektron tiada tekanan jari manusia.

Kondisi

I/O keyboard ini cukup lengkap, di bagian kanan ada

  • Audio combo jack
  • USB A 3.0 (support Always on)
  • SD Card Reader
  • Port RJ45
  • Kensington Lock
  • Slot SIM card (aku cukup takjub dengan adanya ini, soalnya ini cuma ada di laptop kelas bisnis)

Di bagian kiri ada

  • DC jack
  • HDMI port
  • Mini Display Port
  • 2 USB A 3.0

Namun sayangnya ada sedikit masalah di skrup bagian kanannya. Skrupnya tidak mampu melekatkan bodi atas dan bawah sehingga ada sedikit celah seperti ini

RENNER masih bisa nyala dan bisa kugunakan sebagai bahan homelab, aku bersyukur untuk itu.

Ini adalah spesifikasi hardware singkat dari RENNER

Sedikit tambahan kalau RENNER sebenarnya punya slot M.2 SATA tapi engga kepake dan untuk booting dia pakai SSD SATA 2.5 inch 128 GB.

Memilih OS

Sebelumnya, aku menggunakan Lubuntu 24 untuk OS homelab ku. Saat itu aku belum tahu tentang Proxmox. Sebuah OS yang memungkinkan virtualisasi VM dan Container. Dengan Proxmox aku tidak perlu takut dengan terjadinya conflict seperti yang aku ceritakan sebelumnya. Aku kenal Proxmox dari video ini. Saatnya kita mulai instalasi

  1. Aku kunjungi situs resminya dan memilih Proxmox VE (Virtual Environment) untuk di-download. Pada waktu aku menulis ini, aku sedang menunggu prosesnya selesai.
  2. Ambil flashdisk engga kepake trus buat jadi bootable USB dengan ISO yang baru di-download. Di sini aku pakai Rufus alt text

Aku kaget karena aku dapet warning kalau bakal pakai DD image (aku engga tahu apa itu, dan rasanya sejauh ini aku buat Bootable USB) engga pernah pakai itu

alt text

Setelah kucari ternyata ini bedanya Oke…dan pas aku klik ternyata aku engga bisa akses USB-nya dan USB-nya jadi 2 partisi

alt text

Dan aku juga engga bisa akses F: dan G: (kedua partisi USB itu) alt text

Jawabannya juga ada di sini

But this can also be one of the drawbacks, as it means you will usually find that you cannot access the content of your USB any longer after it has been created. Itu menjelaskan kenapa.

  1. Sekarang aku perlu colok aja USB ini ke RENNER dan install Proxmox-nya. Aku udah lihat video tutorial ini dan kelihatannya tidak begitu buruk.

Proxmox Setup

Jadi langsung saja aku masuk ke boot option dan memilih flashdisk untuk di-boot

Lalu aku disuguhkan Welcome Screen yang langsung kupilih graphical installation

Seperti instalasi software lainnya aku juga disuguhkan EULA

Setelah itu aku diminta untuk memilih harddisk instalasi dan aku melihat tombol options

Oke di menu ini ada beberapa size yang bisa kita tentukan, penjelasan dari hdsize, minroot, swapsize, minfree, dan maxvz dapat ditemukan di sini

Kurang lebih artinya begini

  • hdsize: ukuran dari harddisk yang ingin digunakan untuk semua partisi
  • swapsize: kapasitas memori swap (virtual memory) untuk partisi ini
  • minroot: ukuran dari partisi OS
  • minfree: ukuran dari harddisk yang tidak boleh digunakan
  • maxvz: ukuran untuk disk VM, dan kawan-kawan

Aku biarkan kosong saja

Lalu aku ditunjukkan halaman untuk konfigurasi jaringan

Aku coba cari-cari tentang apa itu hostname, ternyata bisa aku awur, yang penting masuk saja. Berikut adalah konfigurasiku

Akhirnya aku ditunjukkan ringkasan tentang Proxmox yang kubuat dan ini hasilnya

Dan setelah reboot, aku bisa login. Dan seharusnya aku bisa akses Proxmox dari IP address port 8006

Dan saat kucoba akses 192.168.18.78:8006, lihat apa yang terjadi

alt text

Saat aku coba ping juga tidak dapat sampai

alt text

Lalu aku sadar…aku belum menghubungkannya ke Wi-Fi, bruh. Setelah aku mencari-cari aku menemukan situs ini dan aku langsung edit /etc/network/interfaces dengan menambahkan wpa-essid dan wpa-psk menjadi seperti ini

Dan setelah aku reboot dan aku coba ping 1.1.1.1 ternyata masih tidak bisa. Aku coba ping PC-ku juga tidak bisa😔. Setelah sekian lama mencari ternyata menggunakan Wi-Fi tidak disarankan

Avoid using WLAN if possible, it has several technical limitations making it not really suitable as single interface of a hyper-visor like PVE.

Oke…aku memutuskan untuk berhenti di sini karena aku tidak punya kabel LAN.

Proxmox Setup Retry

Akhirnya, ini kabel LAN yang kupesan sudah sampai. Setelah aku test menggunakan laptop-ku (yang bukan untuk server) ternyata bisa tersambung ke internet. Setelah itu aku memutuskan untuk menyambungkannya ke RENNER namun masih tidak bisa mencapai 1.1.1.1. Aku pun memutuskan untuk meng-install ulang Proxmox (hal ini bisa dihindari jika aku lebih rajin😬). Setelah itu aku mendapat kabar baik.

alt text

Dan juga…aku bisa mengakses :8006 untuk mengakses Proxmox via web UI dari PC-ku.

alt text

Biar lebih aman aku reserve juga static IP di pengaturan modem Wi-Fi-ku

alt text

Mencegah Suspend saat Lid Ditutup

Saat ditutup, laptop biasanya akan masuk ke mode sleep/suspend. Aku ingin supaya RENNER tidak masuk mode itu ketika aku menutupnya. Oleh karena itu aku mengubah konfigurasi di /etc/systemd/logind.conf.

Aku mengubah line yang kelihatan seperti ini

#HandleLidSwitch=suspend

dan ini

#HandleLidSwitchDocked=ignore

menjadi

HandleLidSwitch=ignore

dan

HandleLidSwitchDocked=ignore

Perhatikan tanda pagarnya. Hasilnya bakal seperti ini

alt text

Setelah itu aku perlu save file-nya dan juga restart systemd

systemctl restart systemd-logind.service

Setelah kucoba…it works🥳. Oh ya aku ketemu tutorialnya di sini

Mematikan layar

Aku tidak mau jika layarku menyala 24/7 karena akan membuat RENNER jadi kepanasan. Jadi aku coba mencari cara mematikan layarnya. Ternyata di video yang sama juga dijelaskan. Aku perlu mengedit file dengan

nano /etc/default/grub

lalu ubah line ini

GRUB_CMDLINE_LINUX=""

jadi

GRUB_CMDLINE_LINUX="consoleblank=60"

Angka di situ menunjukkan berapa detik layar akan mati setelah tidak ada aktivitas. Enam puluh berarti layarku akan mati setelah 60 detik (1 menit tanpa aktivitas). Setelah itu, untuk mengimplementasikan perubahan, aku jalankan

update-grub

Koneksi Harddisk

Aku punya harddisk 1 TB yang rencananya akan kugunakan untuk NAS dan juga menyimpan film serta musik. Pada saat kuhubungkan pertama kali, Proxmox belum mendeteksi adanya harddisk itu. Tetapi setelah aku melakukan reboot harddisk itu dikenali sebagai /dev/sdb

alt text

Aku menemukan jawaban dari Reddit tentang cara untuk memformat harddisk-ku.

fdisk -l dulu untuk melihat disk-nya. Ternyata harddisk-ku ada di /dev/sdb. Trus aku jalanin

fdisk /dev/sdb, habis itu pas CLI-nya berubah aku ketik d, Enter, habis itu w, Enter. Pas aku klik d lalu Enter, itu bakal menghapus partisi di harddisk-ku. Pas aku ketik w itu berarti bakal write changes ke harddisk-ku Kebetulan cuma ada 1 jadi aku perlu jalanin sekali. Habis itu aku ngelihat disk-nya lagi, betul deh, partisinya hilang. Sekarang saatnya buat partisi baru.

fdisk /dev/sdb g, ini bakal ngebuat partisi baru w

Oke sampai sini. Aku baru sadar ternyata ada GUI-nya…

alt text

Moving on, aku mau buat jadi beberapa partisi yaitu

  • 300GB untuk film-film
  • …dan sisanya aku belum tahu😬

Kita masih bakal pakai fdisk karena aku ketemu website buat tutorialnya.

Masalahnya pas aku langsung masukkin n aku dapet prompt ini

alt text

Aku gak tahu bedanya primary sama extended, jadi aku perlu Googling lagi. Untung langsung nemu dan sat-set sat-set, aku langsung pilih primary, start 2048, last sector +300GB, abis itu langsung w. DONE.

alt text

Syncthing

Setup Syncthing jadi prioritasku biar aku bisa sinkronkan PKMS (Personal Knowledge Management System)-ku antara PC, laptop, dan ponsel. Aku kepikirannya pakai container aja soalnya aku cuma jalanin 1 aplikasi dulu. Aku perlu cari cara buat container di Proxmox. Aku ketemu video ini yang pake Docker.

  1. Aku perlu download template untuk container-nya, aku pilih Ubuntu karena…aku lebih suka aja. Sekarang kita menunggu lagi.

alt text

DONE

alt text

  1. Sekarang aku perlu klik Create CT

alt text

alt text

Buat disk aku pilih SSD aja karena PKMS harusnya engga ngabisin banyak tempat. Aku alokasiin 8 GB biar lega (kelegaan malah).

alt text

Aku set 1 core aja buat CPU

alt text

alt text

Ini konfigurasi buat network-nya dan aku biarin aja sih

alt text

Dan di akhir, aku dikasi summary dari CT yang mau aku buat.

alt text

  1. Setelah itu aku perlu install Docker di CT yang baru kubuat, aku baru aja berhasil login

alt text

Abis itu di tutorial-nya nyaranin buat update dan upgrade. Buat kalian yang belum tahu, update itu bakal download informasi dari update-annya (versi berapa yang baru) dan upgrade itu baru yang bakal mengaplikasikan update yang rilis itu

apt-get update && apt-get upgrade. Engga perlu sudo di depan karena kita udah root.

Habis itu kita install curl, apt install curl -y. Dan setelah tinkering beberapa saat kita dapat masalah

alt text

KAGAK BISA CONNECT INTERNET!!!

Aku coba edit dengan nambahin IP address

alt text

Mantap betul👍

alt text

Kalau kata temenku ini namanya FAFO, which stands for F*ck Around and Figure Out.

Sekarang kita back to the previous step, get update, upgrade, dan sekarang kita tambahin --fix-missing.

alt text

DONE

trus kita run command ini

curl -sSL https://get.docker.com | sh

Aku engga ngerti apa artinya flag -sSL…aku coba cari di Explain Shell dan ini jawabannya

Dan setelah menunggu (lagi). Docker sudah terpasang

alt text

  1. Instal Syncthing di Docker-nya. Ini sebenernya udah malem pas aku nulis ini dan sekarang aku gmw ribet😫😫😫, jadi langsung aja aku run ini

docker run -d \ --name=syncthing \ --hostname=sinker #optional\ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Etc/UTC \ -p 8384:8384 \ -p 22000:22000/tcp \ -p 22000:22000/udp \ -p 21027:21027/udp \ -v /path/to/syncthing/config:/config \ -v /path/to/data1:/data1 \ -v /path/to/data2:/data2 \ --restart unless-stopped \ lscr.io/linuxserver/syncthing:latest

alt text

Okeh maknyus, sudah jalan. Sekarang aku mau coba SSH, tapi ternyata kena tolak terus padahal sshd jalan, password dah betul juga. Ternyata aku perlu edit /etc/ssh/sshd_config trus ubah #PermitRootLogin prohibit-password jadi PermitRootLogin yes dan voila!

alt text

Sekarang aku bisa melakukan SSH Tunneling

ssh -L 6065:localhost:8384 root@192.168.18.204

dan…

alt text

Keren bat guwa mah😎

sekarang saatnya buat folder baru, trus tinggal hubungin deh via GUI.

  1. Setting folder dan GUI

Oke kalau soal GUI tinggal teken-teken aja lah ya, sekarang aku dapet masalah yang menarik.

Aku udah buat folder dengan path dan permission seperti ini

alt text

Tapi masalahnya, aku dapet error message ini terus

alt text

Setelah 2 kali mencoba aku sadar, “Iya juga ya, kan syncthing-nya jalan di Docker”. Kurang pintar saya memang, namanya juga belajar.✌️✌️✌️🕊️🕊️🕊️

Daripada kesulitan mending aku langsung install Syncthing-nya di Ubuntu, kagak usah pake acara Docker-Dockeran segala.

Stop dulu deh Docker-nya

alt text

Abis itu install syncthing versi normal

  1. Aku tinggal ikutin dokumentasi dari APT buat install syncthing.

alt text

Mantap, udah terinstall. Sekarang saatnya ngetes.

alt text

OK, GUI sudah bisa diakses via SSH Tunnelling. Sekarang saatnya klik-klik lagi. Eits tapi sebelum itu aku mau install tmux supaya Syncthing bisa jalan di-“background” (sort of). Aku pakai apt-get install dan aku ikutin aja tutorial dari sini

Dan taraaa

alt text

Kurang lebih ini gambaran buat sinkronisasi file-nya

alt text

RENNER aku jadiin episentrum untuk menyimpan file yang baru. Semisal aku edit di HP dan PC-ku mati, file-nya bakal ke-save di RENNER, dan aku bisa fetch dari PC-ku ketika kunyalakan. Begitu juga sebaliknya.

Fyuh panjang juga ya postingan ini. Thank you yang udah baca sampai abis dan nyimak aku nge-FAFO. Aku rencananya bakal maintain dan ngasi tahu kalau ada update dari homelab-ku ini. Hehe, ciao.