language: Bahasa Indonesia
Contoh project: http://nyc311-azka.herokuapp.com/
Source code: github
PythonAnywhere (paling mudah)
tutorial: https://help.pythonanywhere.com/pages/Flask/
Deploy di PYAW paling mudah karena tidak membutuhkan kita untuk menginstall aplikasi tertentu di komputer, tidak seperti Heroku yang membutuhkan aplikasi Heroku dan Git.
Catatan:
Kalau aplikasinya tidak perlu memakai package dengan versi tertentu, saran saya tidak perlu membuat virtualenv karena memori yang disediakan sangat terbatas (500 MB). Ketika menggunakan virtualenv memori akan termakan banyak untuk install package.
File yang dibutuhkan untuk project kita tinggal di-upload ke PYAW. Jika project terdiri dari beberapa folder dan file (seperti project pada umumnya), akan lebih mudah jika satu kesatuan folder project kita (atau folder tertentu, misal hanya folder static) di-zip terlebih dahulu lalu di-upload di lokasi yang diinginkan.
-
Contoh: untuk project nyc311 yang membutuhkan file static dalam folder static, upload folder static yang sudah di-zip ke direktori /home/azukacchi/nyc311. File zip dapat di-unzip dengan cara: (1) membuka folder tempat file zip berada lalu "Open Bash console here", atau (2) buka bash console dimana pun lalu ubah direktori ke tempat file zip berada
cd /home/azukacchi/nyc311
. Setelah bash console terbuka, ketikunzip namafile.zip
(dalam kasus ini namafile adalahstatic
). File zip yang terekstrak akan menjadi folder berisi file-file. -
Jangan lupa isi detail aplikasi di halaman Web.
Heroku
diadaptasi dari tutorial resmi: Getting Started on Heroku with Python
Asumsi:
- Heroku dan Git sudah ter-install (jika belum, lihat link tutorial)
- folder project sudah tersedia dengan (dengan atau tanpa menggunakan virtual environment), aplikasi Flask sudah berjalan OK di komputer dan siap di-deploy
Langkah-langkah:
-
Di dalam folder project, buat beberapa file dengan menggunakan Notepad bernama
Procfile
,requirements.txt
,runtime.txt
,.gitignore
dengan rincian isi file sebagai berikut:-
Procfile
web: gunicorn app:app
-
requirements.txt
Semua package yang dibutuhkan untuk project kita. Tambah juga
gunicorn
untuk webserver (install dengan pip terlebih dahulu). Contoh untuk project saya
gunicorn flask==1.1.2 imblearn plotly==4.14.3 pandas==1.2.2 numpy==1.19.2 sklearn
-
runtime.txt
Isi dengan versi python yang digunakan untuk project. Misal untuk project ini saya menggunakan virtual environment dengan python versi 3.8.5, maka isi file sebagai berikut.
python-3.8.5
-
.gitignore
Sesuaikan dengan project. Misal:
## Cache __pycache__/
-
-
Dengan asumsi seluruh file sudah final, langkah selanjutnya adalah menjadikan folder project kita menjadi repository git. Buka command prompt lalu buka direktori folder project kita dan ubah folder menjadi repository git. Lalu buat aplikasi heroku baru di folder tersebut. Contoh:
cd "C:\Users\azuka\Drive Folder\Dash\311-nyc" git init heroku create
-
Commit dan push. Perhatikan baik-baik log pada command prompt jika terdapat error pada langkah terakhir. Error bisa datang dari versi python yang tidak sesuai di file
runtime.txt
atau ada package yang tidak tertera di filerequirements.txt
.
git add . git commit -m "lalalayeyeye isi bebas" git push heroku master
-
Jika deploy sudah berhasil, pastikan satu instance app berjalan
heroku ps:scale web=1
-
Ganti nama app lama (secara default di-generate random oleh Heroku) dengan nama yang diinginkan
heroku apps:rename newname
Jika kita membuat perubahan pada aplikasi, cukup ulangi deploy dengan mengulangi langkah nomor 3.
Top comments (0)