Deployment Aplikasi Flask di Ubuntu 24.04
- 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)