Promo Domain .web.id .biz.id .my.id Hanya 5.000 Rupiah

AplikasiPanduanVPSWebsite

Setup VPS untuk Python Flask App

Ferdin Alamsyah

Flask adalah micro-framework Python yang ringan, fleksibel, dan sangat cocok untuk membangun aplikasi web skala kecil hingga menengah. Namun, agar aplikasi Flask dapat diakses secara publik, kamu perlu menyebarkannya ke server. Salah satu opsi terbaik adalah menggunakan VPS (Virtual Private Server). Artikel ini akan membahas langkah demi langkah bagaimana melakukan setup VPS untuk menjalankan aplikasi Flask secara produksi.

1. Persiapan Awal

Sebelum mulai, pastikan kamu sudah memiliki:

  • VPS aktif (disarankan menggunakan Ubuntu 20.04 atau versi terbaru)
  • Akses SSH ke VPS
  • Aplikasi Flask yang sudah siap dijalankan
  • Domain (opsional, jika ingin menggunakan URL khusus)

2. Akses ke VPS

Gunakan terminal atau aplikasi SSH (seperti PuTTY di Windows) untuk masuk ke server:

ssh root@ip-address-vps

Ganti ip-address-vps dengan IP publik VPS kamu.

3. Update Sistem

Selalu perbarui sistem untuk memastikan semua paket dalam kondisi terbaru:

sudo apt update && sudo apt upgrade -y

4. Instal Python, pip, dan venv

Karena Flask berbasis Python, pastikan Python dan pip sudah tersedia di server.

sudo apt install python3 python3-pip python3-venv -y

5. Clone atau Upload Aplikasi Flask

Kamu bisa meng-clone project dari GitHub:

git clone https://github.com/username/flask-app.git
cd flask-app

Atau kamu bisa upload project melalui SFTP jika tidak menggunakan Git.

6. Buat Virtual Environment

Selalu jalankan aplikasi Python dalam virtual environment untuk isolasi dependensi:

python3 -m venv venv
source venv/bin/activate

Lalu install semua dependensi dari requirements.txt:

pip install -r requirements.txt

7. Cek File Utama Flask

Pastikan file utama Flask, biasanya app.py atau main.py, memiliki bagian seperti ini:

if __name__ == '__main__':
    app.run()

Namun untuk deployment produksi, kita akan menjalankannya menggunakan Gunicorn, bukan langsung via flask run.

8. Install Gunicorn

Gunicorn adalah WSGI server yang digunakan untuk menjalankan aplikasi Flask di lingkungan produksi:

pip install gunicorn

Coba jalankan aplikasi:

gunicorn --bind 0.0.0.0:8000 app:app

Keterangan:

  • app:app artinya: app.py adalah nama file, dan app adalah nama variabel objek Flask.

Jika muncul error, pastikan nama file dan objek sesuai.

9. Install dan Konfigurasi Nginx

a. Install Nginx

sudo apt install nginx -y

b. Buat File Konfigurasi

Buat file baru:

sudo nano /etc/nginx/sites-available/flaskapp

Isi dengan konfigurasi berikut:

server {
    listen 80;
    server_name your_domain.com ip-address-vps;

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

Aktifkan konfigurasi:

sudo ln -s /etc/nginx/sites-available/flaskapp /etc/nginx/sites-enabled
sudo nginx -t
sudo systemctl restart nginx

10. Konfigurasi Firewall

Jika firewall aktif, pastikan port 80 dan 443 dibuka:

sudo ufw allow 'Nginx Full'
sudo ufw enable

11. Setup Supervisor (Opsional tapi Disarankan)

Agar aplikasi tetap berjalan meskipun server reboot, gunakan Supervisor:

sudo apt install supervisor -y

Buat konfigurasi Supervisor:

sudo nano /etc/supervisor/conf.d/flaskapp.conf

Isi contoh:

[program:flaskapp]
directory=/home/username/flask-app
command=/home/username/flask-app/venv/bin/gunicorn --workers 3 --bind 127.0.0.1:8000 app:app
autostart=true
autorestart=true
stderr_logfile=/var/log/flaskapp.err.log
stdout_logfile=/var/log/flaskapp.out.log
user=username

Aktifkan Supervisor:

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start flaskapp

12. Akses dari Browser

Sekarang aplikasi Flask kamu bisa diakses melalui:

http://ip-address-vps

Atau jika sudah menggunakan domain:

http://your_domain.com

Jika ingin menggunakan HTTPS, kamu bisa menambahkan SSL menggunakan Let’s Encrypt dengan Certbot.

Penutup

Menyebarkan aplikasi Flask di VPS memberikan kamu kendali penuh atas server dan performa aplikasi. Dengan setup menggunakan Gunicorn dan Nginx, aplikasi berjalan secara optimal dan aman untuk lingkungan produksi. Jangan lupa mengamankan VPS, memperbarui dependensi secara berkala, dan memonitor performa aplikasi. Selamat mencoba!

Baca Juga