Deployment Aplikasi Flask di Ubuntu 24.04: Difference between revisions
From OnnoCenterWiki
Jump to navigationJump to search
Created page with "Berikut adalah struktur materi untuk kuliah "Pengenalan Deployment Aplikasi Web menggunakan Python" yang terdiri dari empat bagian utama, masing-masing dengan tiga modul: **1..." |
No edit summary |
||
| (2 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
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) | |||
==Pranala Menarik== | |||
* [[Web Programming]] | |||
Latest revision as of 01:15, 8 April 2025
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)