Cara Backup & Restore Nginx Proxy Manager (NPM) Tanpa Mematikan Server Lama (Docker) – Di tutorial ini kita akan backup Nginx Proxy Manager (NPM) dari VPS lama, lalu pindahkan ke VPS baru sebagai backup/standby, tanpa mematikan NPM di VPS lama.
Cocok kalau kamu mau punya 2 server:
- VPS lama tetap jalan (produksi)
- VPS baru jadi cadangan (backup)
Yang Akan Kita Backup
NPM menyimpan data penting di dalam container Docker, terutama:
/data→ database dan konfigurasi Proxy Host, user login, setting, dll/etc/letsencrypt→ SSL certificate (Let’s Encrypt)
Kalau dua folder ini dibackup, maka semua setting NPM ikut pindah.
A. Backup NPM di VPS Lama (Tanpa Stop NPM)
1) Pastikan container NPM kamu jalan
Di VPS lama, cek container NPM:
docker ps --format "table {{.Names}}\t{{.Image}}\t{{.Ports}}"
Di kasus kita, nama container NPM adalah:
✅ npm
Kalau nama container kamu beda, sesuaikan di command berikutnya.
2) Buat folder backup
mkdir -p /root/npm-backup
3) Backup /data dan /etc/letsencrypt jadi 1 file
Command ini tidak mematikan NPM, jadi aman buat server produksi:
docker run --rm \
--volumes-from npm \
-v /root/npm-backup:/backup \
alpine sh -c "cd / && tar -czf /backup/npm-data.tar.gz data etc/letsencrypt"
4) Pastikan file backup sudah jadi
ls -lh /root/npm-backup/npm-data.tar.gz
Kalau muncul file dan ukurannya ratusan MB (contoh 600MB+), berarti backup sukses.
B. Pindahkan File Backup ke VPS Baru (Paling Gampang via HTTPS)
Pada contoh ini, file backup disimpan ke folder web supaya bisa didownload langsung pakai HTTPS.
Contoh lokasi file di server web:
/www/wwwroot/rodadunia.com/npm-data.tar.gz
Dan bisa diakses dari:
https://rodadunia.com/npm-data.tar.gz
Catatan: cara ini paling gampang, tapi file backup jadi publik, jadi nanti wajib dihapus setelah selesai.
Download dari VPS Baru (ambil dari HTTPS)
Login ke VPS baru, lalu jalankan:
wget -O /root/npm-data.tar.gz https://rodadunia.com/npm-data.tar.gz
Cek file sudah masuk atau belum
ls -lh /root/npm-data.tar.gz
Kalau ukuran sesuai (misal 600MB+), berarti file backup sudah ada di VPS baru.
C. Install Docker di VPS Baru
Kalau VPS baru belum ada Docker, install dulu.
1) Install Docker
apt update && apt install -y docker.io
2) Aktifkan Docker otomatis saat boot
systemctl enable --now docker
3) Cek Docker sudah jalan
docker -v
Kalau keluar versi Docker, berarti aman lanjut.
D. Restore NPM di VPS Baru (Backup/Standby)
Di sini kita akan menjalankan NPM di VPS baru sebagai backup.
1) Jalankan container NPM kosong dulu
Ini untuk membuat volume /data dan /etc/letsencrypt di VPS baru.
docker run -d \
--name npm \
--restart unless-stopped \
-p 80:80 -p 81:81 -p 443:443 \
-v npm_data:/data \
-v npm_letsencrypt:/etc/letsencrypt \
jc21/nginx-proxy-manager:latest
2) Stop container NPM baru dulu
Agar restore lebih aman:
docker stop npm
3) Restore file backup ke volume NPM
Jalankan command ini:
docker run --rm \
--volumes-from npm \
-v /root:/backup \
alpine sh -c "cd / && tar -xzf /backup/npm-data.tar.gz"
4) Start lagi NPM
docker start npm
E. Akses Panel NPM di VPS Baru
Panel NPM bisa diakses dari:
http://IP_VPS_BARU:81
Gunakan IP VPS baru langsung.
Kenapa Kalau Pakai Domain Bisa Error 521?
Kalau kamu pakai domain yang diproxy Cloudflare, bisa muncul:
Error 521 Web server is down
Itu bukan error NPM, tapi karena:
- Cloudflare tidak bisa connect ke server
- atau port panel NPM (81) tidak diproxy Cloudflare
Solusi paling aman:
✅ akses panel pakai IP langsung
http://IP_VPS_BARU:81
F. Setelah Berhasil, WAJIB Hapus File Backup dari Web
Kalau kamu tadi taruh file backup di folder web (bisa diakses HTTPS), ini bahaya karena orang lain bisa download.
Hapus file backup dari server web:
rm -f /www/wwwroot/rodadunia.com/npm-data.tar.gz
Kesimpulan
Dengan cara ini kamu bisa:
✅ Backup NPM Docker tanpa mematikan NPM lama
✅ Pindah data NPM lengkap (proxy host + SSL + config)
✅ Menjalankan NPM di VPS baru sebagai backup/standby