Cara Deploy Aplikasi FastAPI di aaPanel, Pemula Wajib Tahu!

Oleh Ita Sugiharti
Cara Deploy Aplikasi FastAPI di aaPanel, Pemula Wajib Tahu!

Halo DomaiNesians! Di era microservices dan aplikasi berbasis API yang menuntut performa tinggi, FastAPI telah menjadi salah satu framework Python paling populer. Deploy aplikasi FastAPI memiliki keunggulan dalam kecepatan, dukungan asynchronous (ASGI), dan dokumentasi API otomatis menjadikannya pilihan ideal.

Namun, men-deploy aplikasi Python high-performance seperti FastAPI di server VPS seringkali membutuhkan konfigurasi web server yang detail. Nah, kabar baiknya, bagi kamu pengguna aaPanel, proses ini dapat dipermudah menggunakan tool aaPanel yaitu Python Manager.

Pada artikel kali ini kita akan belajar step by step mulai dari persiapan hingga aplikasi FastAPI kamu dapat diakses publik dengan aman melalui Reverse Proxy Nginx di aaPanel.

Mengapa Menggunakan FastAPI dan Python Manager aaPanel?

Sebelum melangkah ke bagian yang lebih teknis, penting untuk memahami hubungan antara framework yang kita gunakan dan control panel server kita.

Keunggulan FastAPI (ASGI Framework)

Tidak seperti framework Python tradisional (seperti Flask/Django) yang menggunakan standar WSGI (Web Server Gateway Interface) synchronous, FastAPI berjalan di atas standar ASGI (Asynchronous Server Gateway Interface).

  • Asynchronous

FastAPI dapat menangani banyak permintaan secara bersamaan tanpa memblokir thread, menghasilkan throughput (jumlah permintaan yang dilayani per detik) yang jauh lebih tinggi.

  • Performa

Didukung oleh ASGI server seperti Uvicorn, FastAPI dikenal sangat cepat, menyaingi performa Go dan Node.js.

  • Otomatisasi Dokumentasi

Secara otomatis menghasilkan dokumentasi API interaktif (Swagger UI/ReDoc), mempercepat proses debugging dan kolaborasi tim.

Peran Python Manager di aaPanel

Python Manager adalah plugin penting di aaPanel yang berfungsi sebagai jembatan antara project Python kalian dengan lingkungan production server. Plugin ini mengotomatisasi beberapa tugas penting, seperti:

  • Virtual Environment (venv)

Membuat dan mengelola virtual environment terisolasi untuk setiap project.

  • Process Manager

Menggunakan Process Manager (seperti Gunicorn atau Uvicorn, meskipun Uvicorn lebih disarankan untuk FastAPI) untuk menjalankan project kamu di background.

  • Integrasi Nginx
Baca Juga:  Cara Buat Website Profesional di aaPanel dan VPS DomaiNesia

Menyediakan opsi mapping otomatis ke domain melalui konfigurasi Reverse Proxy.

Tahap 1: Persiapan Deploy Aplikasi FastAPI dan Lingkungan Server

Di tahap ini, kita akan memastikan semua tool yang dibutuhkan di aaPanel sudah terinstal dan project FastAPI kamu siap di-deploy.

1. Prasyarat Wajib di aaPanel

Pastikan kamu sudah menginstal komponen berikut melalui menu App Store di aaPanel:

Cara Deploy Aplikasi FastAPI di aaPanel, Pemula Wajib Tahu! 1

  • Nginx/Apache: wajib karena berfungsi sebagai Reverse Proxy dan melayani koneksi publik (Nginx lebih disarankan).
  • Python Manager: instal plugin ini. Di sini kamu bisa menginstal beberapa versi Python (misalnya 3.8, 3.9, 3.10) yang bisa kamu sesuaikan dengan kebutuhan.
  • Domain: pastikan kamu sudah menambahkan domain melalui menu Website dan mengatur A Record untuk domain tersebut.

2. Struktur Project FastAPI

Anggap project FastAPI kamu memiliki struktur sederhana sebagai berikut. Semua kode dan dependencies berada dalam satu virtual environment yang terisolasi.

  • main.py: file entry point utama FastAPI kamu (berisi objek FastAPI).
  • requirements.txt: daftar dependencies yang dibutuhkan project.

Contoh sederhana file main.py:

Contoh isi file requirements.txt:

3. Upload Project ke Server

Gunakan Files Manager di aaPanel atau koneksi FTP/SFTP untuk meng-upload seluruh folder project FastAPI kamu ke path yang mudah diakses di server (misalnya: /www/wwwroot/my_fastapi_app).

Cara Deploy Aplikasi FastAPI di aaPanel, Pemula Wajib Tahu! 2

Tahap 2: Konfigurasi Project & Instalasi ASGI di Python Manager

Di tahap ini, kita akan membuat project baru dan segera menginstal dependencies penting (fastapi dan uvicorn), serta memastikan startup command menggunakan ASGI worker yang benar agar aplikasi tidak crash.

1. Menambahkan Proyek Baru

a. Masuk ke menu App Store > Python Manager > Setting.

Cara Deploy Aplikasi FastAPI di aaPanel, Pemula Wajib Tahu! 3

b. Pada tab Project List, klik tombol Add Project.

Cara Deploy Aplikasi FastAPI di aaPanel, Pemula Wajib Tahu! 4

2. Mengisi Detail Proyek FastAPI

Isi form penambahan project dengan konfigurasi khusus untuk FastAPI.

Cara Deploy Aplikasi FastAPI di aaPanel, Pemula Wajib Tahu! 5

  • Name: nama proyek kamu, contoh my_fastapi_app.
  • Version: pilih versi Python dan pastikan versi ini kompatibel dengan library kamu, contoh 3.11.4.
  • Framework: pilih flask atau django (saat FastAPI tidak tersedia). Jika tidak ada pilihan FastAPI, kita akan menggunakan Flask atau Django dan kemudian mengubah perintah Startup Mode secara manual.
  • Startup Mode: pilih gunicorn. Kita akan menggunakan Uvicorn, namun kita akan memanggilnya melalui Gunicorn Worker (atau langsung Uvicorn) di kolom Command.
  • Project path: path folder yang berisi file main.py dan requirements.txt, contoh: /www/wwwroot/my_fastapi_app/.
  • Log path: path untuk folder log, contoh: /www/wwwroot/my_fastapi_app/logs.
  • Startup file/dir: file entry point utama, contoh: /www/wwwroot/my_fastapi_app/main.py.
  • Port: port internal server yang akan digunakan oleh Uvicorn, contoh: 2000 (atau port kosong lainnya).
  • Run user: pengguna yang menjalankan service, contoh: www.
  • Centang opsi Install Module dan System startup.
Baca Juga:  Cara Menghubungkan WordPress dengan aaPanel, Mudah!

3. Instalasi Modul Wajib

Meskipun kamu sudah meng-upload file requirements.txt dan mencentang opsi Install Module, namun proses instalasi dependency ini seringkali gagal. Proses gagalnya instalasi modul ini bisa ditandai dengan status project “Suspended” pada project yang baru saja kamu tambahkan.

Cara Deploy Aplikasi FastAPI di aaPanel, Pemula Wajib Tahu! 6

Selain itu, kamu bisa cek pada tab Module. Jika dependency yang kamu install di file requirements.txt (fastapi dan uvicorn) tidak terinstal secara sempurna, maka kamu bisa menginstal modul-modul tersebut secara manual ke dalam lingkungan virtual yang baru dibuat.

Cara Deploy Aplikasi FastAPI di aaPanel, Pemula Wajib Tahu! 7

a. Jalankan perintah berikut di terminal:

(Ganti /path/ke/venv/bin/pip dengan path yang kamu copy).

Jika kamu menemui error seperti No such file or directory saat memanggil /path/to/pip, coba ganti pip menjadi pip3.x (misalnya pip3.11) sesuai versi Python yang kamu pakai di ven.

4. Mengatur Startup Command Khusus FastAPI

Setelah semua modul terinstal, kita harus memberitahu Gunicorn untuk menggunakan worker yang kompatibel dengan FastAPI (ASGI).

a. Kembali ke Project List dan klik Conf (Settings).

b. Sesuaikan konfigurasi seperti berikut:

Cara Deploy Aplikasi FastAPI di aaPanel, Pemula Wajib Tahu! 8

Keterangan perubahan:

  • workers = 4: sesuaikan angka 4 dengan jumlah CPU core * 2 + 1. Karena pada tutorial ini kita menggunakan VPS Cloud DomaiNesia 2 CPU Core, maka nilai workers yang digunakan adalah 2 * 2 + 1 = 5.
  • threads=1: bertujuan untuk mengoptimalkan cara Gunicorn bekerja dengan FastAPI (ASGI).
  • worker_class = ‘uvicorn.workers.UvicornWorker’: bertujuan untuk memaksa Gunicorn menggunakan worker asinkron Uvicorn.

Setelah Anda menyimpan perubahan di panel Conf, Restart proyek Anda di Python Manager. Server FastAPI Anda sekarang akan berjalan dalam mode ASGI yang optimal.

5. Menjalankan dan Verifikasi Project

Setelah konfigurasi baru untuk project FastAPI tersimpan, klik Restart pada proyek kamu di Project List. Status proyek harus berubah menjadi Running atau Open. Jika status kembali Suspended, cek Log untuk memastikan tidak ada error. Jika berhasil, log akan menunjukkan Uvicorn/Gunicorn sedang menggunakan port 2000.

Baca Juga:  Cara Instal WordPress di aaPanel untuk Pemula (Step-by-Step)

Tahap 3: Menghubungkan Domain via Reverse Proxy Nginx

Saat ini, aplikasi FastAPI kamu sudah berjalan di port 2000 di dalam server (127.0.0.1:2000), tetapi belum bisa diakses dari luar. Kita perlu menggunakan Nginx sebagai Reverse Proxy untuk meneruskan traffic dari domain kamu (port 80/443) ke port 2000 internal.

1. Mengatur Reverse Proxy

a. Buka menu Website, lalu pilih domain yang sudah kamu tambahkan untuk project FastAPI tersebut. Jika belum ada, klik tombol Add Site untuk menambahkan domain.

b. Pada halaman Site modification, buka tab Reverse proxy kemudian klik tombol Add reverse proxy.

Cara Deploy Aplikasi FastAPI di aaPanel, Pemula Wajib Tahu! 9

c. Arahkan URL ke port projek kamu di http://127.0.0.1:2000 agar kamu bisa mengakses hasil deploy project FastAPI kamu langsung dari domain http://api.domainku.com tanpa perlu menambahkan port lagi di belakang URL.

Cara Deploy Aplikasi FastAPI di aaPanel, Pemula Wajib Tahu! 10

d. Klik Confirm.

2. Verifikasi dan Pengujian

a. Buka browser dan akses domain kamu (misalnya: http://api.domainku.com).

b. Jika berhasil, maka output yang tampil adalah hasil deployment project FastAPI kamu.

Cara Deploy Aplikasi FastAPI di aaPanel, Pemula Wajib Tahu! 11

3. Mengamankan dengan SSL (HTTPS)

Setelah Reverse Proxy terpasang, segera amankan koneksi dengan SSL/HTTPS:

a. Masuk ke menu Website.

b. Pilih domain project FastAPI kamu.

Cara Deploy Aplikasi FastAPI di aaPanel, Pemula Wajib Tahu! 12

c. Masuk ke tab SSL.

Cara Deploy Aplikasi FastAPI di aaPanel, Pemula Wajib Tahu! 13

d. Lakukan instalasi sertifikat Let’s Encrypt atau upload sertifikat kamu.

Cara Deploy Aplikasi FastAPI di aaPanel, Pemula Wajib Tahu! 14

e. Aktifkan Force HTTPS untuk memastikan semua koneksi diarahkan ke 443.

Perlu kamu tahu bahwa koneksi antara Nginx dan Uvicorn/FastAPI (di 127.0.0.1:2000) tetap tidak terenkripsi, tetapi ini aman karena terjadi internal di dalam server yang sama. Koneksi publik (antara user dan Nginx) sudah dienkripsi oleh SSL.

Cara Deploy Aplikasi FastAPI di aaPanel, Pemula Wajib Tahu! 15

Kesimpulan

Plugin Python Manager di aaPanel terbukti menjadi alat yang penting dalam menyederhanakan deployment aplikasi backend Python yang kompleks, mulai dari instalasi dependencies hingga setup Reverse Proxy Nginx.

Dengan deployment ini, aplikasi FastAPI kamu dapat melayani permintaan dengan performa tinggi, memanfaatkan kemampuan asynchronous secara maksimal, dan diakses publik dengan koneksi HTTPS yang aman. Ini adalah best practice yang wajib diikuti oleh setiap developer modern.

Jika kamu ingin menjalankan aplikasi FastAPI Anda di lingkungan server yang stabil, performa tinggi, dan mudah diintegrasikan dengan aaPanel, Cloud VPS DomaiNesia adalah solusi yang tepat. Kamu akan mendapatkan resource yang memadai, akses root penuh, dan keandalan yang dibutuhkan oleh aplikasi high-performance berbasis Python.

Ita Sugiharti

If this post has reached you, then I hope it helps. If you have any questions or feedback, just leave a comment.

Berlangganan Artikel

Dapatkan artikel, free ebook dan video
terbaru dari DomaiNesia

{{ errors.name }} {{ errors.email }}
Migrasi ke DomaiNesia

Migrasi Hosting ke DomaiNesia Gratis 1 Bulan

Ingin memiliki hosting dengan performa terbaik? Migrasikan hosting Anda ke DomaiNesia. Gratis jasa migrasi dan gratis 1 bulan masa aktif!

Ya, Migrasikan Hosting Saya

Hosting Murah

This will close in 0 seconds