Django adalah salah satu framework web Python yang paling populer. Cocok digunakan untuk membangun aplikasi web dengan cepat dan efisien. Namun, agar aplikasi Django bisa diakses oleh pengguna secara luas, kita perlu menjalankannya di server, salah satunya menggunakan VPS (Virtual Private Server). Artikel ini akan membahas secara lengkap cara menjalankan project Django di VPS berbasis Ubuntu, mulai dari instalasi hingga bisa diakses melalui domain atau IP publik.
Persiapan Awal
Sebelum mulai, pastikan kamu sudah memiliki hal-hal berikut:
- VPS aktif dengan akses root (disarankan menggunakan Ubuntu 20.04 atau lebih baru)
- Akses SSH ke VPS
- Project Django yang sudah siap dijalankan (bisa hasil development lokal)
- Domain (opsional, jika ingin menggunakan nama domain)
1. Login ke VPS
Gunakan terminal atau aplikasi SSH seperti PuTTY untuk masuk ke server:
ssh root@ip-address-vps
Ganti ip-address-vps
dengan alamat IP dari server kamu.
2. Update Sistem
Lakukan update dan upgrade sistem:
sudo apt update && sudo apt upgrade -y
3. Instal Python, pip, dan venv
Project Django membutuhkan Python dan pip untuk dependency management.
sudo apt install python3 python3-pip python3-venv -y
4. Instal dan Konfigurasi Git (Opsional)
Jika kamu ingin menarik project dari GitHub:
sudo apt install git -y
git clone https://github.com/username/project-django.git
cd project-django
5. Buat Virtual Environment dan Install Dependency
Masuk ke folder project dan buat virtual environment:
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Pastikan requirements.txt
memuat semua dependensi, termasuk Django dan gunicorn.
6. Migrasi Database dan Collect Static Files
Lakukan migrasi database dan kumpulkan file statis:
python manage.py migrate
python manage.py collectstatic
7. Cek ALLOWED_HOSTS
dan DEBUG
Edit file settings.py
:
DEBUG = False
ALLOWED_HOSTS = ['your_domain.com', 'ip-address-vps']
Gantilah your_domain.com
dan ip-address-vps
sesuai kebutuhan.
8. Jalankan Gunicorn
Gunicorn digunakan untuk menjalankan aplikasi Django di server produksi.
Instal Gunicorn:
pip install gunicorn
Jalankan Gunicorn:
gunicorn --bind 0.0.0.0:8000 project_name.wsgi:application
Ganti project_name
dengan nama folder utama project Django kamu.
9. Instal dan Konfigurasi Nginx
Nginx berfungsi sebagai reverse proxy yang meneruskan permintaan HTTP ke Gunicorn.
a. Instal Nginx
sudo apt install nginx -y
b. Buat Konfigurasi Nginx
Buat file konfigurasi:
sudo nano /etc/nginx/sites-available/django_project
Isi contoh konfigurasi:
server {
listen 80;
server_name your_domain.com ip-address-vps;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/username/project-django;
}
location / {
include proxy_params;
proxy_pass http://127.0.0.1:8000;
}
}
Aktifkan konfigurasi:
sudo ln -s /etc/nginx/sites-available/django_project /etc/nginx/sites-enabled
sudo nginx -t
sudo systemctl restart nginx
10. Konfigurasi Firewall (UFW)
Jika menggunakan UFW, buka port HTTP:
sudo ufw allow 'Nginx Full'
sudo ufw enable
11. Gunakan Supervisor (Opsional)
Gunakan Supervisor untuk memastikan Gunicorn tetap aktif meski server restart:
sudo apt install supervisor -y
Buat file konfigurasi:
sudo nano /etc/supervisor/conf.d/gunicorn.conf
Contoh isi:
[program:gunicorn]
directory=/home/username/project-django
command=/home/username/project-django/venv/bin/gunicorn --workers 3 --bind 127.0.0.1:8000 project_name.wsgi:application
autostart=true
autorestart=true
stderr_logfile=/var/log/gunicorn.err.log
stdout_logfile=/var/log/gunicorn.out.log
user=username
Aktifkan supervisor:
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start gunicorn
12. Akses Project dari Browser
Sekarang, buka browser dan akses:
http://ip-address-vps
Atau jika menggunakan domain:
http://your_domain.com
Jika semua konfigurasi benar, maka website Django kamu sudah live!
Penutup
Menjalankan project Django di VPS memerlukan beberapa konfigurasi, namun dengan pendekatan yang sistematis, proses ini cukup mudah dilakukan. Kamu mempelajari mulai dari instalasi Python, setup environment, hingga integrasi Gunicorn dan Nginx. Langkah selanjutnya adalah menambahkan fitur keamanan seperti SSL dengan Let’s Encrypt dan memonitor performa aplikasi menggunakan tool seperti Prometheus atau Grafana. Selamat mencoba dan semoga sukses menjalankan project Django kamu secara online!