Cara Install Portainer di VPS Ubuntu

Cara Install Portainer di VPS Ubuntu

Apa Itu Portainer?

Portainer adalah web-based management UI untuk Docker dan Kubernetes. Dengan Portainer, kamu bisa mengelola container, image, volume, network, dan stack tanpa harus selalu menggunakan command line.

1. Prasyarat

  • VPS Ubuntu 20.04 / 22.04
  • Docker sudah terinstall
  • Port 9000 atau 9443 tidak digunakan aplikasi lain
  • Akses SSH ke server

2. Pastikan Docker Sudah Terinstall

Cek versi Docker:

docker --version
*Jika belum ada, install Docker terlebih dahulu.

3. Buat Volume Portainer

Portainer memerlukan volume untuk menyimpan data persistent:

docker volume create portainer_data

4. Install Portainer (Metode CLI)

Jalankan perintah berikut:

docker run -d \
--name portainer \
--restart unless-stopped \
-p 9000:9000 \
-p 9443:9443 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest

Penjelasan:

  • -p 9000:9000 → HTTP access
  • -p 9443:9443 → HTTPS secure access
  • -v docker.sock → agar Portainer bisa mengontrol Docker
  • -v portainer_data → penyimpanan data

5. Akses Dashboard Portainer

Buka browser:

https://IP_VPS_KAMU:9443

Saat pertama kali login, kamu akan diminta membuat password admin.

6. Hardening & Security (Production)

6.1 Batasi Port dengan Firewall

sudo ufw allow 9443
sudo ufw deny 9000
sudo ufw status

6.2 Gunakan Reverse Proxy (Rekomendasi)

Disarankan agar Portainer tidak diakses langsung melalui IP dan port. Gunakan Nginx atau Nginx Proxy Manager untuk mengatur domain dan SSL.

Contoh reverse proxy Nginx:

location / {
    proxy_pass https://127.0.0.1:9443;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}

7. Install Portainer Menggunakan Docker Compose

Buat file docker-compose.yml:

nano docker-compose.yml

Isi konfigurasi berikut:

version: '3'

services:
  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    restart: unless-stopped
    ports:
      - "9443:9443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data

volumes:
  portainer_data:

Jalankan:

docker compose up -d

8. Troubleshooting Umum

8.1 Port Already in Use

sudo ss -tulpn | grep 9443

8.2 Container Tidak Running

docker ps -a

8.3 Tidak Bisa Login

Reset container dan hapus volume jika perlu:

docker stop portainer
docker rm portainer
docker volume rm portainer_data

9. Best Practice Production

  • Gunakan domain + SSL (Let’s Encrypt)
  • Backup volume portainer_data secara berkala
  • Batasi akses IP admin dengan firewall
  • Gunakan password kuat dan aktifkan 2FA jika tersedia

10. Kesimpulan

Portainer memudahkan pengelolaan Docker melalui antarmuka web yang user-friendly. Dengan konfigurasi security dan reverse proxy yang tepat, Portainer dapat digunakan secara aman untuk environment production.