Deployment Aplikasi Flask di Ubuntu 24.04: Difference between revisions
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 |
||
| Line 1: | Line 1: | ||
# Modul 4.3: Deployment Aplikasi Flask di Ubuntu 24.04 | |||
## Pendahuluan | |||
Mendeploy aplikasi Flask di server Ubuntu 24.04 memerlukan beberapa langkah penting untuk memastikan aplikasi berjalan dengan efisien dan aman di lingkungan produksi. Dalam modul ini, kita akan membahas langkah-langkah untuk mendeploy aplikasi Flask menggunakan **Gunicorn** sebagai WSGI server dan **Nginx** sebagai reverse proxy. Pendekatan ini akan meningkatkan performa dan keamanan aplikasi Anda. | |||
## 1. Prasyarat | |||
Sebelum memulai, pastikan Anda memiliki: | |||
** | - **Server Ubuntu 24.04** yang telah dikonfigurasi dengan akses root atau pengguna dengan hak sudo. | ||
- **Aplikasi Flask** yang telah dikembangkan dan siap untuk dideploy. | |||
- **Domain** yang telah diarahkan ke server Anda (opsional, tetapi disarankan untuk produksi). | |||
## 2. Memperbarui dan Menginstal Paket yang Diperlukan | |||
Langkah pertama adalah memperbarui daftar paket dan menginstal dependensi yang diperlukan: | |||
```bash | |||
sudo apt update | |||
sudo apt upgrade -y | |||
sudo apt install python3 python3-pip python3-venv nginx -y | |||
``` | |||
Perintah di atas akan memastikan bahwa Python 3, pip, modul venv, dan Nginx terinstal di server Anda. | |||
## 3. Menyiapkan Aplikasi Flask | |||
### a. Membuat Direktori Proyek | |||
** | Buat direktori untuk aplikasi Flask Anda dan navigasikan ke dalamnya: | ||
```bash | |||
mkdir ~/flaskapp | |||
cd ~/flaskapp | |||
``` | |||
### b. Membuat Virtual Environment | |||
Buat dan aktifkan virtual environment untuk mengisolasi dependensi aplikasi: | |||
```bash | |||
python3 -m venv venv | |||
source venv/bin/activate | |||
``` | |||
### c. Menginstal Flask dan Gunicorn | |||
Dengan virtual environment aktif, instal Flask dan Gunicorn: | |||
```bash | |||
pip install Flask gunicorn | |||
``` | |||
### d. Membuat Aplikasi Flask Sederhana | |||
Buat file `app.py` dengan konten berikut: | |||
```python | |||
from flask import Flask | |||
app = Flask(__name__) | |||
@app.route('/') | |||
def hello(): | |||
return "Halo, Flask di Ubuntu 24.04!" | |||
if __name__ == '__main__': | |||
app.run(host='0.0.0.0', port=8000) | |||
``` | |||
Kode ini mendefinisikan aplikasi Flask sederhana yang akan dijalankan pada port 8000. | |||
## 4. Menguji Aplikasi Flask | |||
Sebelum melanjutkan, uji aplikasi Flask Anda dengan menjalankan: | |||
```bash | |||
python app.py | |||
``` | |||
Akses aplikasi melalui browser di `http://server_ip:8000` untuk memastikan aplikasi berjalan dengan benar. | |||
## 5. Mengonfigurasi Gunicorn | |||
Gunicorn akan digunakan sebagai WSGI server untuk menjalankan aplikasi Flask. Jalankan perintah berikut untuk menguji aplikasi dengan Gunicorn: | |||
```bash | |||
gunicorn --bind 0.0.0.0:8000 app:app | |||
``` | |||
Pastikan aplikasi dapat diakses melalui `http://server_ip:8000`. | |||
## 6. Menyiapkan Nginx sebagai Reverse Proxy | |||
Nginx akan berfungsi sebagai reverse proxy yang meneruskan permintaan ke Gunicorn. | |||
### a. Membuat Konfigurasi Nginx | |||
Buat file konfigurasi Nginx untuk aplikasi Anda: | |||
```bash | |||
sudo nano /etc/nginx/sites-available/flaskapp | |||
``` | |||
Tambahkan konfigurasi berikut: | |||
```nginx | |||
server { | |||
listen 80; | |||
server_name your_domain_or_IP; | |||
location / { | |||
proxy_pass http://127.0.0.1:8000; | |||
proxy_set_header Host $host; | |||
proxy_set_header X-Real-IP $remote_addr; | |||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |||
proxy_set_header X-Forwarded-Proto $scheme; | |||
} | |||
} | |||
``` | |||
Gantilah `your_domain_or_IP` dengan domain atau alamat IP server Anda. | |||
### b. Mengaktifkan Konfigurasi dan Merestart Nginx | |||
Aktifkan konfigurasi dan restart Nginx: | |||
```bash | |||
sudo ln -s /etc/nginx/sites-available/flaskapp /etc/nginx/sites-enabled | |||
sudo nginx -t | |||
sudo systemctl restart nginx | |||
``` | |||
Pastikan tidak ada error pada konfigurasi Nginx. | |||
## 7. Menjalankan Gunicorn sebagai Layanan Sistem | |||
Untuk memastikan aplikasi berjalan secara otomatis setelah reboot, konfigurasikan Gunicorn sebagai layanan sistem. | |||
### a. Membuat File Layanan | |||
Buat file layanan systemd: | |||
```bash | |||
sudo nano /etc/systemd/system/flaskapp.service | |||
``` | |||
Tambahkan konfigurasi berikut: | |||
```ini | |||
[Unit] | |||
Description=Gunicorn instance to serve flaskapp | |||
After=network.target | |||
[Service] | |||
User=your_username | |||
Group=www-data | |||
WorkingDirectory=/home/your_username/flaskapp | |||
Environment="PATH=/home/your_username/flaskapp/venv/bin" | |||
ExecStart=/home/your_username/flaskapp/venv/bin/gunicorn --workers 3 --bind unix:flaskapp.sock -m 007 app:app | |||
[Install] | |||
WantedBy=multi-user.target | |||
``` | |||
Gantilah `your_username` dengan nama pengguna Anda. | |||
### b. Mengaktifkan dan Menjalankan Layanan | |||
Jalankan perintah berikut untuk mengaktifkan dan memulai layanan: | |||
```bash | |||
sudo systemctl start flaskapp | |||
sudo systemctl enable flaskapp | |||
``` | |||
Pastikan layanan berjalan dengan memeriksa statusnya: | |||
```bash | |||
sudo systemctl status flaskapp | |||
``` | |||
## 8. Mengamankan Aplikasi dengan HTTPS (Opsional) | |||
Untuk meningkatkan keamanan, disarankan untuk menggunakan HTTPS. Anda dapat menggunakan **Certbot** untuk memperoleh sertifikat SSL gratis dari Let's Encrypt. | |||
- **4.3. Deployment Aplikasi Flask di Ubuntu 24.04** | - **4.3. Deployment Aplikasi Flask di Ubuntu 24.04** | ||
| Line 68: | Line 202: | ||
- Contoh: Menggunakan Gunicorn dan Nginx untuk menjalankan aplikasi di lingkungan produksi. | - Contoh: Menggunakan Gunicorn dan Nginx untuk menjalankan aplikasi di lingkungan produksi. | ||
- Referensi: [Instalasi Flask di Ubuntu 24.04](https://support.hostinger.com/en/articles/10725412-how-to-install-flask-on-ubuntu-24-04) | - Referensi: [Instalasi Flask di Ubuntu 24.04](https://support.hostinger.com/en/articles/10725412-how-to-install-flask-on-ubuntu-24-04) | ||
Revision as of 03:28, 6 April 2025
- Modul 4.3: Deployment Aplikasi Flask di Ubuntu 24.04
- Pendahuluan
Mendeploy aplikasi Flask di server Ubuntu 24.04 memerlukan beberapa langkah penting untuk memastikan aplikasi berjalan dengan efisien dan aman di lingkungan produksi. Dalam modul ini, kita akan membahas langkah-langkah untuk mendeploy aplikasi Flask menggunakan **Gunicorn** sebagai WSGI server dan **Nginx** sebagai reverse proxy. Pendekatan ini akan meningkatkan performa dan keamanan aplikasi Anda.
- 1. Prasyarat
Sebelum memulai, pastikan Anda memiliki:
- **Server Ubuntu 24.04** yang telah dikonfigurasi dengan akses root atau pengguna dengan hak sudo. - **Aplikasi Flask** yang telah dikembangkan dan siap untuk dideploy. - **Domain** yang telah diarahkan ke server Anda (opsional, tetapi disarankan untuk produksi).
- 2. Memperbarui dan Menginstal Paket yang Diperlukan
Langkah pertama adalah memperbarui daftar paket dan menginstal dependensi yang diperlukan:
```bash sudo apt update sudo apt upgrade -y sudo apt install python3 python3-pip python3-venv nginx -y ```
Perintah di atas akan memastikan bahwa Python 3, pip, modul venv, dan Nginx terinstal di server Anda.
- 3. Menyiapkan Aplikasi Flask
- a. Membuat Direktori Proyek
Buat direktori untuk aplikasi Flask Anda dan navigasikan ke dalamnya:
```bash mkdir ~/flaskapp cd ~/flaskapp ```
- b. Membuat Virtual Environment
Buat dan aktifkan virtual environment untuk mengisolasi dependensi aplikasi:
```bash python3 -m venv venv source venv/bin/activate ```
- c. Menginstal Flask dan Gunicorn
Dengan virtual environment aktif, instal Flask dan Gunicorn:
```bash pip install Flask gunicorn ```
- d. Membuat Aplikasi Flask Sederhana
Buat file `app.py` dengan konten berikut:
```python from flask import Flask
app = Flask(__name__)
@app.route('/') def hello():
return "Halo, Flask di Ubuntu 24.04!"
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8000)
```
Kode ini mendefinisikan aplikasi Flask sederhana yang akan dijalankan pada port 8000.
- 4. Menguji Aplikasi Flask
Sebelum melanjutkan, uji aplikasi Flask Anda dengan menjalankan:
```bash python app.py ```
Akses aplikasi melalui browser di `http://server_ip:8000` untuk memastikan aplikasi berjalan dengan benar.
- 5. Mengonfigurasi Gunicorn
Gunicorn akan digunakan sebagai WSGI server untuk menjalankan aplikasi Flask. Jalankan perintah berikut untuk menguji aplikasi dengan Gunicorn:
```bash gunicorn --bind 0.0.0.0:8000 app:app ```
Pastikan aplikasi dapat diakses melalui `http://server_ip:8000`.
- 6. Menyiapkan Nginx sebagai Reverse Proxy
Nginx akan berfungsi sebagai reverse proxy yang meneruskan permintaan ke Gunicorn.
- a. Membuat Konfigurasi Nginx
Buat file konfigurasi Nginx untuk aplikasi Anda:
```bash sudo nano /etc/nginx/sites-available/flaskapp ```
Tambahkan konfigurasi berikut:
```nginx server {
listen 80; server_name your_domain_or_IP;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
} ```
Gantilah `your_domain_or_IP` dengan domain atau alamat IP server Anda.
- b. Mengaktifkan Konfigurasi dan Merestart Nginx
Aktifkan konfigurasi dan restart Nginx:
```bash sudo ln -s /etc/nginx/sites-available/flaskapp /etc/nginx/sites-enabled sudo nginx -t sudo systemctl restart nginx ```
Pastikan tidak ada error pada konfigurasi Nginx.
- 7. Menjalankan Gunicorn sebagai Layanan Sistem
Untuk memastikan aplikasi berjalan secara otomatis setelah reboot, konfigurasikan Gunicorn sebagai layanan sistem.
- a. Membuat File Layanan
Buat file layanan systemd:
```bash sudo nano /etc/systemd/system/flaskapp.service ```
Tambahkan konfigurasi berikut:
```ini [Unit] Description=Gunicorn instance to serve flaskapp After=network.target
[Service] User=your_username Group=www-data WorkingDirectory=/home/your_username/flaskapp Environment="PATH=/home/your_username/flaskapp/venv/bin" ExecStart=/home/your_username/flaskapp/venv/bin/gunicorn --workers 3 --bind unix:flaskapp.sock -m 007 app:app
[Install] WantedBy=multi-user.target ```
Gantilah `your_username` dengan nama pengguna Anda.
- b. Mengaktifkan dan Menjalankan Layanan
Jalankan perintah berikut untuk mengaktifkan dan memulai layanan:
```bash sudo systemctl start flaskapp sudo systemctl enable flaskapp ```
Pastikan layanan berjalan dengan memeriksa statusnya:
```bash sudo systemctl status flaskapp ```
- 8. Mengamankan Aplikasi dengan HTTPS (Opsional)
Untuk meningkatkan keamanan, disarankan untuk menggunakan HTTPS. Anda dapat menggunakan **Certbot** untuk memperoleh sertifikat SSL gratis dari Let's Encrypt.
- **4.3. Deployment Aplikasi Flask di Ubuntu 24.04**
- Langkah-langkah untuk mendeploy aplikasi Flask pada server Ubuntu 24.04 tanpa menggunakan alat dari Microsoft.
- Contoh: Menggunakan Gunicorn dan Nginx untuk menjalankan aplikasi di lingkungan produksi.
- Referensi: [Instalasi Flask di Ubuntu 24.04](https://support.hostinger.com/en/articles/10725412-how-to-install-flask-on-ubuntu-24-04)