Skip to main content
Orkestrasi Proyek Python dengan Gunicorn pada Ubuntu
  1. doc/

Orkestrasi Proyek Python dengan Gunicorn pada Ubuntu

·2 mins·

Tutorial ini menjelaskan cara menjalankan project Python dengan gunicorn sebagai aplikasi service dan systemd agar otomatis aktif saat server restart.

Daftar Isi
#

1. Persiapan project
#

Pastikan project Python Anda sudah siap dijalankan, misalnya memakai virtual environment dan memiliki file utama aplikasi.

Contoh struktur project:

/home/aska/pickupSession/
├── venv/
├── app.py
└── start.sh

Jika Anda memakai Flask, FastAPI, atau framework lain, sesuaikan module dan command gunicorn dengan aplikasi Anda.

2. Instal dependensi
#

Aktifkan virtual environment lalu instal gunicorn dan dependency project.

cd /home/aska/pickupSession
source venv/bin/activate
pip install gunicorn
pip install -r requirements.txt

Jika Anda belum punya requirements.txt, pastikan minimal gunicorn dan framework Python yang dipakai sudah terpasang.

3. Buat service systemd
#

Buat file unit service di /etc/systemd/system/.

sudo nano /etc/systemd/system/pickupsession.service

Lalu isi dengan konfigurasi berikut.

[Unit]
Description=PickupSession Python Gunicorn Service
After=network.target

[Service]
User=aska
Group=aska
WorkingDirectory=/home/aska/pickupSession
Environment="PATH=/home/aska/pickupSession/venv/bin"
ExecStart=/home/aska/pickupSession/venv/bin/gunicorn --workers 3 --bind 0.0.0.0:8000 app:app
Restart=always
RestartSec=5
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

Sesuaikan beberapa bagian berikut jika perlu:

  • User dan Group sesuai user Linux yang menjalankan project.
  • WorkingDirectory sesuai lokasi project Anda.
  • ExecStart sesuai module Flask/FastAPI Anda.
  • Port 8000 bisa diganti sesuai kebutuhan.

4. Aktifkan service
#

Setelah file service dibuat, reload konfigurasi systemd lalu aktifkan service.

sudo systemctl daemon-reload
sudo systemctl enable pickupsession.service
sudo systemctl start pickupsession.service

5. Verifikasi dan debugging
#

Periksa status service untuk memastikan aplikasi berjalan normal.

sudo systemctl status pickupsession.service

Untuk melihat log aplikasi secara realtime, gunakan:

sudo journalctl -u pickupsession.service -f

Dengan cara ini, project Python Anda akan berjalan sebagai service dan otomatis aktif kembali setelah server restart.

Askarhabibulloh
Author
Askarhabibulloh