Men-deploy proyek Wagtail pada server Ubuntu dengan Nginx membutuhkan beberapa langkah, termasuk men-setup sebuah virtual environment, meng-konfigurasi Gunicorn sebagai server WSGI, dan men-setup Nginx sebagai reverse proxy. Berikut langkah demi langkah proses pengerjaannya.
Pertama, update dan upgrade Ubuntu Packages untuk memastikan semua telah up-to-date.
sudo apt update && sudo apt upgrade -y
Install Python 3, pip (Python package installer), dan Virtualenv untuk membuat Python environment terisolasi.
sudo apt install python3-pip python3-dev python3-venv -y
Buka direktori proyek Anda dan buat sebuah virtual environment.
cd /path/to/your/project
python3 -m venv myvenv
Aktifkan virtual environment tersebut.
source myenv/bin/activate
Dengan virtual environment telah aktif, install proyek Wagtail Anda (jika belum terinstall) dan Gunicorn.
pip install -r requirements.txt
pip install gunicorn
Jalankan Gunicorn untuk memastikan bahwa ia dapat melayani proyek Anda.
gunicorn your_project_name.wsgi:application
Ganti your_project_name dengan nama proyek Wagtail Anda. Jika Gunicorn dapat melayani proyek Anda, Anda dapat melanjutkan ke langkah selanjutnya.
Buat file Gunicorn systemd service untuk memastikan proyek Anda dapat berjalan secara otomatis ketika boot.
sudo nano /etc/systemd/system/gunicorn.service
Masukkan konfigurasi berikut ini, pastikan paths dan nama-nama diubah sesuai kebutuhan.
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=youruser
Group=www-data
WorkingDirectory=/path/to/your/project
ExecStart=/path/to/your/project/myvenv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/path/to/your/project/yourproject.sock your_project_name.wsgi:application
[Install]
WantedBy=multi-user.target
Install Nginx
sudo apt install nginx -y
Buat sebuah file Nginx server block configuration untuk proyek Anda
sudo nano /etc/nginx/sites-avaiable/your_project_name
Masukkan konfigurasi berikut, pastikan paths dan nama-nama diubah sesuai kebutuhan.
server {
listen 80;
server_name your_server_domain_or_IP;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /path/to/your/project;
}
location / {
include proxy_params;
proxy_pass http://unix:/path/to/your/project/yourproject.sock;
}
}
Aktifkan Nginx server block tersebut dengan membuat link ke directory sites-enabled.
sudo ln -s /etc/nginx/sites-available/your_project_name /etc/nginx/sites-enabled
Lakukan test konfigurasi Nginx untuk memastikan tidak terdapat syntax error.
sudo nginx -t
Reload Nginx untuk me-load konfigurasi baru.
sudo systemctl reload nginx
Proyek Wagtail Anda seharusnya sekarang sudah ter-deploy dan dapat diakses melalui domain atau alamat IP yang Anda set. Pastikan sesuaikan setting firewall jika diperlukan untuk memperbolehkan traffic pada port 80 dan 443.