Setup VPS untuk Python Flask App

Sedang Trending 11 bulan yang lalu

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

1. Persiapan Awal

Sebelum mulai, pastikan Anda sudah memiliki:

  • VPS aktif (disarankan menggunakan Ubuntu 20.04 alias jenis terbaru)
  • Akses SSH ke VPS
  • Aplikasi Flask nan sudah siap dijalankan
  • Domain (opsional, jika mau menggunakan URL khusus)

2. Akses ke VPS

Gunakan terminal alias 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 pembaruan && sudo apt upgrade -y

4. Instal Python, pip, dan venv

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

 Alasan Mengapa Banyak Programmer Memilihnya

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

5. Clone alias Upload Aplikasi Flask

Kamu bisa meng-clone project dari GitHub:

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

Atau Anda 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 keterbatasan dari requirements.txt:

pip install -r requirements.txt

7. Cek File Utama Flask

Pastikan file utama Flask, biasanya app.py alias main.py, mempunyai bagian seperti ini:

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

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

8. Install Gunicorn

Gunicorn adalah WSGI server nan 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 melangkah 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 Anda bisa diakses melalui:

http://ip-address-vps

Atau jika sudah menggunakan domain:

http://your_domain.com

Jika mau menggunakan HTTPS, Anda bisa menambahkan SSL menggunakan Let’s Encrypt dengan Certbot.

Penutup

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

Selengkapnya
Sumber Info Panduan Teknologi Dewabiz
Info Panduan Teknologi Dewabiz