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.

Diperbarui 13 November 2026 · ±5 menit baca

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.

Membuat aplikasi di Setup Python App
Membuat aplikasi di Setup Python App

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

  1. Di dasbor hosting, buka Setup Python App di kelompok Software.
  2. Klik Buat aplikasi, lalu pilih Versi Python.
  3. Isi Folder aplikasi, misalnya blog. Kode disimpan di apps/blog, di luar public_html.
  4. Pilih Domain dan isi Path URL. Isi / bila seluruh domain dilayani aplikasi.
  5. Isi Entry point dalam bentuk modul:variabel. Contohnya app:app untuk file app.py yang berisi variabel app, atau mysite.wsgi:application untuk Django.
  6. Pilih Server: WSGI untuk Flask dan Django, ASGI untuk FastAPI.
  7. 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 jalankan git clone https://github.com/akun-anda/blog.git blog. Setelah itu buat aplikasi dengan Folder aplikasi blog. 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.

  1. Klik tombol pip install -r requirements.txt, atau ketik perintah lain lalu klik Jalankan, misalnya pip install flask.
  2. Klik ikon Restart di kartu aplikasi.
  3. 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:

  1. Buat secret key dengan perintah python -c "import secrets; print(secrets.token_urlsafe(50))", lalu salin hasilnya.
  2. Klik ikon Ubah di kartu aplikasi. Di Environment variables, tambahkan DJANGO_SECRET_KEY berisi secret key tadi. Tambahkan juga DJANGO_SUPERUSER_USERNAME, DJANGO_SUPERUSER_EMAIL, dan DJANGO_SUPERUSER_PASSWORD untuk akun admin, lalu simpan.
  3. Jalankan python manage.py migrate.
  4. Jalankan python manage.py collectstatic --noinput.
  5. Jalankan python manage.py createsuperuser --noinput.
  6. Buka lagi Ubah, hapus DJANGO_SUPERUSER_PASSWORD, lalu simpan. Password admin sudah tersimpan di database.
  7. 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 /api menerima path lengkap. Path itu tersedia di environment variable APP_BASE_PATH, dan Flask serta Django mengenalinya lewat SCRIPT_NAME yang diatur server.
  • Folder apps ikut 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.

Buat Web Hosting

Masih ada pertanyaan?

Tim kami siap membantu lewat live chat, email, atau WhatsApp.

Chat WhatsApp support@awancerah.cloud