Python
Cara deploy Flask, Django, dan FastAPI di Web Hosting AwanCerah
Jalankan aplikasi Python di Web Hosting AwanCerah dengan Setup Python App. Virtualenv dan gunicorn disiapkan otomatis, lalu ikuti contoh untuk Flask, FastAPI, dan Django lengkap dengan migrate, collectstatic, dan superuser.
Lewat Setup Python App, aplikasi Flask, Django, atau FastAPI berjalan terus di Web Hosting AwanCerah. Server membuat virtualenv di folder aplikasi, memasang gunicorn, lalu mengarahkan domain atau path ke aplikasi Anda lengkap dengan SSL.
Kami mencoba ketiga framework di panduan ini sampai tampil lewat HTTPS, termasuk halaman admin Django dengan file statisnya.

Yang Anda perlukan
- Web Hosting paket Kecil atau lebih tinggi. Paket Kecil memuat 1 aplikasi, Sedang 3, dan Besar 5. Jumlah ini dihitung gabungan untuk Node.js, Python, dan Ruby.
- Domain yang sudah mengarah ke hosting dengan SSL aktif. Caranya ada di panduan Web Hosting.
- Kode aplikasi Python dan daftar paketnya di
requirements.txt.
Buat aplikasi
- Di dasbor hosting, buka Setup Python App di kelompok Software.
- Klik Buat aplikasi, lalu pilih Versi Python.
- Isi Folder aplikasi, misalnya
blog. Kode disimpan diapps/blog, di luarpublic_html. - Pilih Domain dan isi Path URL. Isi
/bila seluruh domain dilayani aplikasi. - Isi Entry point dalam bentuk
modul:variabel. Contohnyaapp:appuntuk fileapp.pyyang berisi variabelapp, ataumysite.wsgi:applicationuntuk Django. - Pilih Server: WSGI untuk Flask dan Django, ASGI untuk FastAPI.
- Klik Buat aplikasi.
Pembuatan butuh sekitar 15 detik karena server menyiapkan virtualenv .venv dan memasang gunicorn, ditambah uvicorn untuk ASGI. Bila foldernya masih kosong, folder diisi contoh aplikasi. Klik Buka di kartu aplikasi dan Anda akan melihat tulisan "It works!".
Masukkan kode aplikasi
- Dari Git, sebelum aplikasi dibuat. Buka Terminal di kelompok Advanced, isi Folder kerja dengan
apps, lalu jalankangit clone https://github.com/akun-anda/blog.git blog. Setelah itu buat aplikasi dengan Folder aplikasiblog. Folder yang sudah berisi tidak diisi contoh aplikasi. - Upload dari komputer. Kompres proyek menjadi .zip tanpa folder virtualenv lokal seperti
venv. Di File Manager, buka folder aplikasi, upload, lalu ekstrak. - Mulai dari contoh. Edit file contoh di File Manager.
Jangan menghapus folder .venv di folder aplikasi. Bila terhapus, klik ikon Ubah di kartu aplikasi lalu Simpan untuk membuatnya lagi.
Pasang paket lalu restart
Kotak Jalankan perintah di folder aplikasi menjalankan pip dan python di dalam virtualenv aplikasi, tanpa perlu activate.
- Klik tombol pip install -r requirements.txt, atau ketik perintah lain lalu klik Jalankan, misalnya
pip install flask. - Klik ikon Restart di kartu aplikasi.
- Klik Buka untuk melihat hasilnya.
Perintah yang bisa dijalankan: python, pip, dan git. Perintah berjalan tanpa input interaktif dan berhenti otomatis setelah 15 menit.
Contoh Flask
Buat aplikasi dengan Server WSGI dan Entry point app:app. Isi app.py:
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/')
def index():
return 'Halo dari Flask di AwanCerah!'
@app.route('/api/status')
def status():
return jsonify(status='ok')
Isi requirements.txt:
flask
gunicorn
Klik pip install -r requirements.txt, lalu Restart.
Contoh FastAPI
Buat aplikasi dengan Server ASGI dan Entry point main:app. Isi main.py:
import os
from fastapi import FastAPI
app = FastAPI(root_path=os.environ.get('APP_BASE_PATH', ''))
@app.get('/')
def index():
return {'pesan': 'Halo dari FastAPI di AwanCerah!'}
Jalankan pip install fastapi, lalu Restart. Dokumentasi API otomatis tampil di /docs. Baris root_path membuat FastAPI tetap benar bila aplikasi dipasang di path seperti /api.
Contoh Django
Bila proyek Django belum ada, buat aplikasi dengan Folder aplikasi baru dan Entry point bawaan, lalu jalankan dua perintah ini di kotak perintah:
pip install django whitenoise
python -m django startproject mysite .
Setelah itu klik ikon Ubah, ganti Entry point menjadi mysite.wsgi:application, lalu simpan. Untuk proyek yang sudah ada, pakai nama folder proyek Anda sebagai pengganti mysite.
Sesuaikan mysite/settings.py lewat File Manager:
import os
SECRET_KEY = os.environ['DJANGO_SECRET_KEY']
DEBUG = os.environ.get('DJANGO_DEBUG') == '1'
ALLOWED_HOSTS = ['tokoanda.com', 'www.tokoanda.com']
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
# tambahkan WhiteNoise tepat di bawah SecurityMiddleware
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
# ... middleware lain tetap seperti semula
]
STATIC_URL = 'static/'
STATIC_ROOT = BASE_DIR / 'staticfiles'
WhiteNoise menyajikan file statis seperti CSS halaman admin langsung dari aplikasi. SECURE_PROXY_SSL_HEADER memberi tahu Django bahwa pengunjung datang lewat HTTPS.
Lalu siapkan secret key, database, file statis, dan akun admin:
- Buat secret key dengan perintah
python -c "import secrets; print(secrets.token_urlsafe(50))", lalu salin hasilnya. - Klik ikon Ubah di kartu aplikasi. Di Environment variables, tambahkan
DJANGO_SECRET_KEYberisi secret key tadi. Tambahkan jugaDJANGO_SUPERUSER_USERNAME,DJANGO_SUPERUSER_EMAIL, danDJANGO_SUPERUSER_PASSWORDuntuk akun admin, lalu simpan. - Jalankan
python manage.py migrate. - Jalankan
python manage.py collectstatic --noinput. - Jalankan
python manage.py createsuperuser --noinput. - Buka lagi Ubah, hapus
DJANGO_SUPERUSER_PASSWORD, lalu simpan. Password admin sudah tersimpan di database. - Buka
https://tokoanda.com/admin/dan masuk dengan akun admin tadi.
Untuk database, Django memakai SQLite di folder aplikasi secara bawaan. Untuk MariaDB, buat database di Databases, jalankan pip install mysqlclient, lalu isi DATABASES dengan ENGINE django.db.backends.mysql, host localhost, dan port 3306.
Django di path selain /. Bila Path URL diisi, misalnya /blog, tambahkan FORCE_SCRIPT_NAME = os.environ.get('APP_BASE_PATH') or None dan ganti STATIC_URL menjadi (FORCE_SCRIPT_NAME or '') + '/static/'. Tanpa itu, tautan CSS halaman admin tidak memakai awalan /blog.
Environment variables
Klik ikon Ubah di kartu aplikasi, lalu tambahkan nama dan nilai di bagian Environment variables. Setelah disimpan, aplikasi di-restart otomatis. Nilainya dibaca lewat os.environ. Environment variables juga berlaku untuk perintah di kotak perintah, jadi manage.py membaca nilai yang sama dengan aplikasi.
Log dan performa
- Klik Lihat log di kartu aplikasi. Log memuat keluaran
print(), error Python, dan access log gunicorn. - Aplikasi yang crash dinyalakan ulang otomatis. Bila terus gagal, kartu menampilkan Gagal berjalan. Perbaiki penyebabnya dari log, lalu klik Restart.
- Jumlah worker gunicorn mengikuti RAM paket: 2 di Kecil, 3 di Sedang, dan 4 di Besar. Permintaan yang berjalan lebih dari 120 detik dihentikan.
Memperbarui aplikasi
Jalankan git pull, lalu pip install -r requirements.txt bila paket berubah. Untuk Django, jalankan juga python manage.py migrate dan python manage.py collectstatic --noinput. Setelah itu klik Restart.
Tips
- Aplikasi di path seperti
/apimenerima path lengkap. Path itu tersedia di environment variableAPP_BASE_PATH, dan Flask serta Django mengenalinya lewatSCRIPT_NAMEyang diatur server. - Folder
appsikut backup harian, termasuk database SQLite di dalamnya. - Bila aplikasi dihapus dari console, file di foldernya tidak ikut terhapus.
- Butuh Celery, worker terpisah, atau akses root? Pakai Cloud VPS.
Jalankan aplikasi Python Anda
Setup Python App tersedia mulai paket Kecil Rp35.000 per bulan, sudah termasuk SSL, email, dan backup harian.
Masih ada pertanyaan?
Tim kami siap membantu lewat live chat, email, atau WhatsApp.
Chat WhatsApp support@awancerah.cloud