404 Not Found


nginx/1.18.0 (Ubuntu)
Deployment Django Project - School of Applied STEM - Universitas Prasetiya Mulya

1. Persiapan

Sebelum melakukan deployment django project, kita perlu melakukan persiapan yaitu mempersiapkan :

Python 3.7

Django 3.1.4

  1. Sebelum menginstal Django, harus dipastikan kita sudah menginstall pip terlebih dahulu dan pastikan juga sudah upgrade yang terbaru. Jika tidak, instalasi tidak akan berjalan.
  2. Menginstall Django dengan command
    python -m pip install Django

Python Virtual Environment

  1. Perbarui server lokal (OS Ubuntu) terlebih dahulu
    sudo apt-get update
  2. Virtualenv bisa diinstall menggunakan command apt 
    sudo apt intall python3-virtualenv
    *Note : Command ini digunakan pada python 3
  3. Jika telah melakukan instalasi virtualenv, anda bisa membuat virtualenv anda pada direktori yang anda tentukan
    virtualenv venv
    *Note : Anda bisa menggunakan nama apapun untuk virtualenv anda selain venv
  4. Jika anda ingin mengaktifkan virtualenv dengan command
    source venv/bin/activate

*Note:
Pastikan versi python yang anda install di server anda sama dengan yang anda gunakan di local sehinnga bisa meminimalisir error yang terjadi saat melakukan instalasi virtualenv

Buat User Baru pada Server

  1. Login sebagai root user pada server
    ssh root@server_ip_address -p "portserver"
  2. Gunakan command adduser untuk menambahkan user baru pada server
    sudo adduser username
  3. Masukkan username baru dan membuat password untuk username baru
    Set password prompts:
    Enter new UNIS password
    Retype new UNIX password:
    passwd: password update successfully
  4. Ikuti petunjuk untuk mengatur informasi untuk user baru. Tidak masalah jika mengosongkan informasi
    User information prompts:
    Changing the user information for username
    Enter the new value, or press Enter for the default
    Full Name []:
    Room Number []:
    Work Phone []:
    Home Phone []:
    Other []:
    Is the information correct? [Y/n]
  5. Username baru telah berhasil dibuat. Jika ingin beralik ke user baru bisa menggunakan command su 
    su -username_anda
  6. Masukkan password user baru anda untuk beralih user

2. Proses Deployment

  1. Sebelum melakukan migrasi untuk deployment agar mengatur Host di file settings.py yang berada pada direktori
    ALLOWED_HOSTS = ['*']
  2. Aktifkan virtual environment
    source venv/bin/activate
  3. Lakulan pull Django Project yang telah dibuat dari github/bitbucket
    git clone 'https://linkgithub'
  4. Masuk ke direktori Django Project yang dimana terdapat file manage.py
  5. Melakukan migrasi terlebuh dahulu
    python manage.py makemigrations
    python manage.py migrate
  6. Jalankan server menggunakan command nohup
    nohup python manage.py runserver 0.0.0.0:8000 >/dev/null 2>&1 & 

3. Runserver Dengan Melihat list Process

  1. Setelah menjalankan django project dengan menggunakan command nohup. Kita bisa memastikan apakah django akan berjalan dengan semestinya
    sudo ps -aux | sudo grep 8888
    *Note : pastikan port yang anda gunakan saat menjalankan server django project Disini saya menggunakan port 8888
  2. Jika anda ingin menghentikan proses yang sedang berjalan. Anda bisa menggunakan command kill.
    sudo kill -9 "ID_proses"
    *Note : Masukkan ID Proses tanpa menggunakan tanda petik

4. SSL Certificate

  1. Untuk memasang SSL Certificate, yang diperlukan adalah certbot
  2. Untuk menginstall certbot dengan command
    sudo add-apt-repository ppa:certbot/certbot
    Jika error atau gagal bisa mencoba dua opsi yaitu dengan
    sudo apt-get update
    atau dengan menginstall certbot menggunakan command
    sudo apt-get install python-certbot-nginx
  3. Jika certbot sudah terinstall, maka berikutnya adalah dengan memasang sertifikat ssl pada domain dengan command
    sudo certbot --nginx -d 'nama domain' -d www'namadomain'

    Jika domain tidak menggunakan www maka cukup
    sudo certbot --nginx -d 'nama domain'Jika terjadi error “no module cffi” maka install terlebih dahulu cffi dengan command
    pyhton3 -m pip install cffikemudian lakukan kembali langkah nomor 3.
  4. Selesai memasang sertifikat maka yang perlu dilakukan adalah melakukan update secara berkala atau otomatis dengan menggunakan crontabUntuk melakukan konfigurasi crontab, pertama menggunakan command
    crontab -e
    untuk melihat file crontab
  5. Kemudian pilih file vim.basic
  6. Tekan tombol untuk mulai edit
  7. Pada bagian paling bawah tambahan baris
    0 12 ***/usr/bin/certbot renew -quiet
  8. Tekan esc untuk keluar dari mode edit
  9. Kemudian ketik :wq untuk menyimpan dan keluar dari file tersebut
  10. Pemasang SSL Certificate dan update otomatis pun sudah selesai di konfirmasi.

Leave a Reply