Deployment Aplikasi Flask di Ubuntu 24.04
Jump to navigation
Jump to search
Deployment Aplikasi Flask di Ubuntu 24.04, dari awal sampai bisa diakses via browser pakai domain atau IP publik. Kita akan deploy menggunakan Gunicorn + Nginx supaya production-ready.
Install Dependensi Dasar
sudo apt update && sudo apt upgrade -y sudo apt install python3 python3-pip python3-venv nginx -y
Siapkan Direktori Project
mkdir ~/flaskapp cd ~/flaskapp python3 -m venv venv source venv/bin/activate
Install Flask dan Gunicorn
pip install flask gunicorn
Buat Aplikasi Flask (`app.py`)
# app.py from flask import Flask app = Flask(__name__) @app.route('/') def home(): return "Hello, Metro TV from Flask on Ubuntu 24.04!"
Test Jalankan Lokal
python app.py
Tambahkan ini kalau kamu mau bisa akses langsung:
if __name__ == '__main__': app.run(host='0.0.0.0')
Jalankan dengan Gunicorn
gunicorn --bind 0.0.0.0:8000 app:app
Cek dengan: `http://YOUR_SERVER_IP:8000`
(Opsional) Buat File Service Systemd
sudo nano /etc/systemd/system/flaskapp.service
Isi dengan:
[Unit] Description=Gunicorn instance to serve flaskapp After=network.target [Service] User=ubuntu Group=www-data WorkingDirectory=/home/ubuntu/flaskapp Environment="PATH=/home/ubuntu/flaskapp/venv/bin" ExecStart=/home/ubuntu/flaskapp/venv/bin/gunicorn --workers 3 --bind unix:flaskapp.sock -m 007 app:app [Install] WantedBy=multi-user.target
> Ganti `ubuntu` sesuai user kamu, dan `WorkingDirectory` sesuai folder.
Lalu:
sudo systemctl daemon-reexec sudo systemctl daemon-reload sudo systemctl start flaskapp sudo systemctl enable flaskapp
Konfigurasi Nginx
sudo nano /etc/nginx/sites-available/flaskapp
Isi dengan:
nginx server { listen 80; server_name your_domain.com; # Atau IP kamu location / { include proxy_params; proxy_pass http://unix:/home/ubuntu/flaskapp/flaskapp.sock; } }
Aktifkan config-nya:
sudo ln -s /etc/nginx/sites-available/flaskapp /etc/nginx/sites-enabled sudo nginx -t sudo systemctl restart nginx
(Opsional) Tambah HTTPS dengan Let's Encrypt
Install Certbot:
sudo apt install certbot python3-certbot-nginx -y
Dapatkan SSL gratis:
sudo certbot --nginx -d your_domain.com
Final Cek
- Akses aplikasi: `http://your_domain.com` atau `http://your_server_ip`
- Gunicorn berjalan sebagai service
- Nginx mengarahkan trafik ke Flask
Bonus: Struktur Folder
flaskapp/ │ ├── app.py ├── venv/ └── flaskapp.sock (auto created by gunicorn)