2025-10-17
admin
Diperbarui 2026-01-20

Cara Deploy Aplikasi Python di VPS dengan Plesk Panel (Reverse Proxy)

Ingin aplikasi Python Anda berjalan di VPS dengan Plesk Panel? Pelajari cara deploy script Python menggunakan reverse proxy, konfigurasi nginx, dan setup systemd service. Panduan ini cocok untuk developer dan webmaster!
Cara Deploy Aplikasi Python di VPS dengan Plesk Panel (Reverse Proxy)

Saya akan bantu jelaskan cara deploy script Python di VPS dengan Plesk Panel menggunakan reverse proxy.

Cara Deploy Python Script dengan Reverse Proxy di Plesk

1. Persiapan Script Python

Pertama, pastikan script Python Anda siap untuk production:

# Login SSH ke VPS
ssh user@your-vps-ip

# Buat direktori untuk aplikasi
mkdir -p /var/www/vhosts/yourdomain.com/myapp
cd /var/www/vhosts/yourdomain.com/myapp

# Install virtualenv dan dependencies
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

2. Setup Aplikasi Python (contoh dengan Flask/FastAPI)

Pastikan aplikasi berjalan di port tertentu, misalnya:

# app.py
if __name__ == '__main__':
    app.run(host='127.0.0.1', port=8000)

3. Konfigurasi Reverse Proxy di Plesk

Ada 2 cara:

Cara A: Melalui Plesk Panel (Recommended)

  1. Login ke Plesk Panel
  2. Pilih domain yang ingin digunakan
  3. Masuk ke Apache & nginx Settings
  4. Tambahkan kode berikut di bagian Additional nginx directives:
location / {
    proxy_pass http://127.0.0.1:8000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_redirect off;
}
  1. Klik OK dan restart nginx

Cara B: Manual Edit (butuh akses root)

Edit file konfigurasi domain:

nano /var/www/vhosts/system/yourdomain.com/conf/vhost_nginx.conf

4. Jalankan Aplikasi sebagai Service

Buat systemd service agar aplikasi berjalan otomatis:

# Buat file service
sudo nano /etc/systemd/system/myapp.service

Isi dengan:

[Unit]
Description=My Python App
After=network.target

[Service]
User=www-data
WorkingDirectory=/var/www/vhosts/yourdomain.com/myapp
Environment="PATH=/var/www/vhosts/yourdomain.com/myapp/venv/bin"
ExecStart=/var/www/vhosts/yourdomain.com/myapp/venv/bin/python app.py

[Install]
WantedBy=multi-user.target

Kemudian:

sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl enable myapp
sudo systemctl status myapp

5. Tentang Akses Webmaster di Plesk

Apakah user webmaster bisa melakukan ini?

Tergantung permission yang diberikan:

  • BISA: User webmaster biasanya bisa mengakses "Apache & nginx Settings" untuk konfigurasi reverse proxy
  • BISA: Upload file melalui File Manager Plesk
  • TIDAK BISA: Akses SSH penuh (kecuali diberikan akses khusus)
  • TIDAK BISA: Membuat systemd service (butuh akses root)

Solusi untuk webmaster:

  1. Minta admin root untuk:
  • Setup systemd service
  • Memberikan akses SSH terbatas (jail shell)
  1. Atau gunakan Passenger di Plesk (jika tersedia) yang lebih user-friendly untuk Python apps
  2. Atau gunakan PM2 untuk menjalankan aplikasi:
npm install -g pm2
pm2 start app.py --interpreter python3
pm2 save
pm2 startup

Rekomendasi Best Practice:

  1. Gunakan Gunicorn atau Uvicorn untuk production:
pip install gunicorn
gunicorn -w 4 -b 127.0.0.1:8000 app:app
  1. Setup firewall agar port 8000 hanya bisa diakses localhost
  2. Gunakan SSL/HTTPS (Plesk menyediakan Let's Encrypt gratis)

Apakah Anda butuh bantuan lebih detail untuk bagian tertentu?

blog admin

Artikel Terkait