My BEAM .me

June 24, 2024

Deploy Proyek Wagtail ke Server Ubuntu dengan Nginx

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.

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.

Langkah 1 - Update dan Upgrade Ubuntu Packages.

Pertama, update dan upgrade Ubuntu Packages untuk memastikan semua telah up-to-date.

sudo apt update && sudo apt upgrade -y

Langkah 2 - Install Python, pip, dan Virtualenv

Install Python 3, pip (Python package installer), dan Virtualenv untuk membuat Python environment terisolasi.

sudo apt install python3-pip python3-dev python3-venv -y

Langkah 3 - Buat sebuah Virtual Environment

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

Langkah 4 - Install Proyek Wagtail Anda dan Gunicorn

Dengan virtual environment telah aktif, install proyek Wagtail Anda (jika belum terinstall) dan Gunicorn.

pip install -r requirements.txt
pip install gunicorn

Langkah 5 - Test Untuk Memastikan Gunicorn dapat Men-service Proyek Anda.

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.

Langkah 6 - Buat File systemd Service untuk Gunicorn

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

Langkah 7 - Install dan Konfigurasi Nginx

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

Langkah Terakhir

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.

Return