Difference between revisions of "Deployment Aplikasi Flask di Ubuntu 24.04"
Onnowpurbo (talk | contribs) (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...") |
Onnowpurbo (talk | contribs) |
||
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 10: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)