Langkah-langkah deployment aplikasi yang dibuat dengan Django. Repository project: https://github.com/writerlab/perpus
sudo apt-get update
sudo apt-get install python3-pip python3-dev nginx
sudo -H pip3 install --upgrade pip
sudo -H pip3 install virtualenv
git clone https://github.com/writerlab/perpus
cd perpus
virtualenv .env
source .env/bin/activate
pip install django==2.2.12 gunicorn pillow django-import-export
nano perpus/settings.py
ALLOWED_HOST = ['192.168.100.19']
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
python manage.py collectstatic
sudo ufw allow 8000
python manage.py runserver 0.0.0.0:8000
http://192.168.100.19:8000
gunicorn --bind 0.0.0.0:8000 perpus.wsgi
deactivate
sudo nano /etc/systemd/system/gunicorn.service
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=zulx
Group=www-data
WorkingDirectory=/home/zulx/perpus
ExecStart=/home/zulx/perpus/.env/bin/gunicorn --access-logfile - --workers 3 --bind unix:/home/zulx/perpus/perpus.sock perpus.wsgi:application
[Install]
WantedBy=multi-user.target
sudo systemctl start gunicorn
sudo systemctl enable gunicorn
sudo systemctl status gunicorn
sudo systemctl daemon-reaload
sudo systemctl restart gunicorn
sudo nano /etc/nginx/sites-available/perpus
server {
listen 80;
server_name 192.168.100.19;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/zulx/perpus;
}
location / {
include proxy_params;
proxy_pass http://unix:/home/zulx/perpus/perpus.sock;
}
}
sudo ln -s /etc/nginx/sites-available/perpus /etc/nginx/sites-enabled
sudo nginx -t
sudo systemctl restart nginx
sudo ufw delete allow 8000
sudo ufw allow 'Nginx Full'
ubah nilainya menjadi False jika sedang dalam mode Production.
dan hapus if settings.DEBUG
di urls.py menjadi
...
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
sudo tail -F /var/log/nginx/error.log
referensi: Digital Ocean
bisa. window hanya untuk remote server-nya.
server tetap pakai GNU/Linux...