Cara Deploy Flask di Server dengan mudah

Cara Deploy Flask di Server dengan mudah – pesonainformatika.com, sebuah website agar bisa diakses setiap orang tentu kita memerlukan sebuah server, untuk menempatkan website yang telah kita buat, pada kesempatan kali ini kita akan belajar bagaimana cara deploy sebuah website ke sebuah server, website yang dibuat menggunakan bahasa pemrograman python menggunakan framework flask

persiapan yang harus dilakukan

ada beberapa persiapan yang harus kita lakukan sebelum melakukan deploy seperti instalasi aplikasi yang dibutuhkan dan instalasi requirement python package yang dibutuhkan, untuk website yang akan kita buat, berikut langkah langkahnya

install paket aplikasi yang dibutuhkan

terdapat paket aplikasi yang diperlukan untuk mendeploy sebuah website yang kita buat menggunakan flask, saya asumsikan sudah mempunyai vps atau bisa praktek menggunakan teknologi virtualisasi seperti virtualbox, VMWare atau yang lainya pada meteri kali ini kita akan menggunakan komputer lokal yang sudah mempunyai/terinstall sistem operasi linux, install aplikasi yang diperlukan menggunakan perintah

sudo apt-get install nginx supervisor python3-pip python3-virtualenv

jika sudah terinstall outputnya seperti ini

instalasi requirements

langkah selanjutnya kita membuat virtual envitontment untuk menginstall modul yang dibutuhkan untuk website kita

Membuat Virtual Environtment

untuk membuat virtual environtment kita menggunakan aplikasi python3-virtualenv untuk membuatnya, caranya cukup mudah kita bisa menggunakan perintah

virtualenv -p python3 venv

dimana format pembuatanya seperti ini

virtualenv -p python3 <nama_virtual_environtment>

dalam kasus ini kita membuat virtual environtment dengan nama venv
Cara Deploy Flask di Server dengan mudah - pesonainformatika.com
membuat virtual environtment

setelah terinstal kita perlu mengaktifkan virtual environtment yang tadi telah kita buat, caranya cukup dengan perintah

source venv/bin/activate

setelah instalasi dan mengaktifkan virtualenv kita instal modul yang dibutuhkan untuk aplikasi kita

Instalasi Aplikasi Flask

pada studi kasus kali ini kita akan membuat aplikasi flask sederhana untuk kita jadikan sample dan contoh untuk mendeploy

kita instal dulu modul yang dibutuhkan

pip install flask gunicorn
Cara Deploy Flask di Server dengan mudah - pesonainformatika.com
instalasi modul aplikasi

kita membuat aplikasi sederhana menggunakan flask seperti ini

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

simpan dalam nama app.py

setelah itu kita setting gunicorn

Setting Gunicorn

langkah ini kita setting gunicorn untuk menjalankan aplikasi python agar bisa berjalan di localhost

pada contoh ini kita akan menjalankan aplikasi flask dengan alamat port 8001 bisa menjalankan dengan perintah ini

gunicorn app:app -b localhost:8001 &
Cara Deploy Flask di Server dengan mudah - pesonainformatika.com
tampilan web setelah dijalankan dengan gunicorn

Setup Supervisor

kita akan menggunakan untuk memanajemen gunicorn agar bisa dimonitoring oleh pemilik dan admin website tersebut

kita buat konfigurasi di /etc/supervisor/conf.d/ misal namanya flaskapp.conf lalu isinya seperti ini

[program:flaskapp]
command=/var/www/0-env/flaskenv/bin/gunicorn --bind localhost:8000 -w 4 app:app
directory=/var/www/flaskapp
user=pery
autostart=true
autorestart=true

kemudian aktivkan konfigurasi dengan perintah

sudo supervisorctl reread
sudo supervisorctl restart

Setup Nginx

kita perlu konfigurasi reverse proxy menggunakan nginx agar aplikasi dengan port 8001 tadi bisa berjalan di port 80, caranya adalah membuat virtualhost di /etc/nginx/conf.d/ misal dengan nama file flaskapp.conf kemudian isi seperti ini

server {
    listen       80;
    server_name  localhost;

    location / {
        proxy_pass http://127.0.0.1:8000;
    }
}

kemudian restart nginx dengan perintah

sudo service nginx restart

maka aplikasi yang tadi dibuat sudah terdeploy dan berjalan di server menggunakan nginx dan gunicorn

tampilan aplikasi yang telah di deploy

semoga bermanfaat dan mencoba, ikuti studi kasus lainya di pesonainformatika ada beberapa bahasa pemrograman lainya seperti Java, Python C++