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:

ComponentRecommendation
CPUIntel i5/i7 atau AMD Ryzen (min 4 cores)
RAM32GB recommended (boleh start 16GB)
StorageSSD untuk OS, HDD untuk data
NetworkGigabit 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

  1. Muat turun ISO dari proxmox.com
  2. Create bootable USB
  3. 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

  1. Backup regularly — guna Proxmox Backup Server atau sekurang-kurangnya snapshot yang konsisten
  2. Use static IPs — lagi senang nak urus service dan elak IP conflict
  3. Monitor resources — jangan tunggu storage penuh baru nak check
  4. Document everything — bila lab dah makin besar, dokumentasi memang menyelamatkan masa
  5. 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.