Homelab bagi saya memang antara cara paling best untuk belajar dan experiment dengan setup yang biasa kita nampak dekat production, tapi tanpa kos yang terlalu tinggi.
Kenapa Homelab?
Dengan homelab, kita boleh:
- Belajar virtualization — Proxmox, VMware, Hyper-V
- Test deployment — Sebelum deploy ke production
- Self-host services — Media server, NAS, web apps
- Improve skills — Hands-on experience dengan real hardware
Hardware Setup
Kalau nak mula dengan setup yang cost-effective, ini spesifikasi yang saya rasa cukup ngam:
| Component | Recommendation |
|---|---|
| CPU | Intel i5/i7 atau AMD Ryzen (min 4 cores) |
| RAM | 32GB recommended (boleh start 16GB) |
| Storage | SSD untuk OS, HDD untuk data |
| Network | Gigabit ethernet |
Tip: Mini PC biasanya jauh lebih jimat elektrik berbanding tower server. Dell OptiPlex atau HP EliteDesk secondhand memang antara pilihan yang best untuk start.
Proxmox VE Installation
Step 1: Download & Install
- Muat turun ISO dari proxmox.com
- Create bootable USB
- Boot dan install
Step 2: Post-Install Configuration
# Remove subscription nag
sed -i.bak "s/data.status !== 'Active'/false/g" \
/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
# Add no-subscription repo
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" \
> /etc/apt/sources.list.d/pve-no-subscription.list
# Update system
apt update && apt upgrade -y
Docker dalam LXC Container
Untuk Docker, saya lebih suka guna LXC container berbanding VM sebab rasa lebih ringan dan cukup sesuai untuk kebanyakan service self-hosted.
Create LXC Container
Settings yang saya biasa guna:
- Memory: 4GB+
- Disk: 50GB+
- Features: Nesting enabled
Enable Docker Support
Edit container config di Proxmox host:
# /etc/pve/lxc/<CTID>.conf
features: nesting=1
lxc.apparmor.profile: unconfined
lxc.cgroup2.devices.allow: a
lxc.cap.drop:
Install Docker
# Install Docker
curl -fsSL https://get.docker.com | sh
# Add user to docker group
usermod -aG docker $USER
# Install Docker Compose
apt install docker-compose-plugin -y
Essential Services
Portainer — Docker Management
services:
portainer:
image: portainer/portainer-ce
container_name: portainer
restart: always
ports:
- "9000:9000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
volumes:
portainer_data:
Nginx Proxy Manager — Reverse Proxy
services:
npm:
image: jc21/nginx-proxy-manager
container_name: npm
restart: always
ports:
- "80:80"
- "443:443"
- "81:81"
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
Uptime Kuma — Monitoring
services:
uptime-kuma:
image: louislam/uptime-kuma
container_name: uptime-kuma
restart: always
ports:
- "3001:3001"
volumes:
- ./data:/app/data
Tips & Best Practices
- Backup regularly — guna Proxmox Backup Server atau sekurang-kurangnya snapshot yang konsisten
- Use static IPs — lagi senang nak urus service dan elak IP conflict
- Monitor resources — jangan tunggu storage penuh baru nak check
- Document everything — bila lab dah makin besar, dokumentasi memang menyelamatkan masa
- Separate networks — kalau boleh, asingkan management network dengan service network
Kesimpulan
Homelab dengan Proxmox dan Docker memang kombinasi yang sangat sedap untuk belajar. Tak perlu terus beli setup besar. Start kecil dulu, test banyak benda, dan expand bila betul-betul perlu.
Kalau ada soalan atau nak sembang pasal setup homelab, boleh reach out melalui LinkedIn atau email.