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-vpsGanti 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 -y4. Instal Python, pip, dan venv
Karena Flask berbasis Python, pastikan Python dan pip sudah tersedia di server.

5. Clone alias Upload Aplikasi Flask
Kamu bisa meng-clone project dari GitHub:
git clone https://github.com/username/flask-app.git cd flask-appAtau 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/activateLalu install semua keterbatasan dari requirements.txt:
pip install -r requirements.txt7. 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 gunicornCoba jalankan aplikasi:
gunicorn --bind 0.0.0.0:8000 app:appKeterangan:
- 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 -yb. Buat File Konfigurasi
Buat file baru:
sudo nano /etc/nginx/sites-available/flaskappIsi 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 nginx10. Konfigurasi Firewall
Jika firewall aktif, pastikan port 80 dan 443 dibuka:
sudo ufw allow 'Nginx Full' sudo ufw enable11. Setup Supervisor (Opsional tapi Disarankan)
Agar aplikasi tetap melangkah meskipun server reboot, gunakan Supervisor:
sudo apt install supervisor -yBuat konfigurasi Supervisor:
sudo nano /etc/supervisor/conf.d/flaskapp.confIsi 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=usernameAktifkan Supervisor:
sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl start flaskapp12. Akses dari Browser
Sekarang aplikasi Flask Anda bisa diakses melalui:
http://ip-address-vpsAtau jika sudah menggunakan domain:
http://your_domain.comJika 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!
English (US) ·
Indonesian (ID) ·