1. Persiapan
Sebelum melakukan deployment django project, kita perlu melakukan persiapan yaitu mempersiapkan :
Python 3.7
Django 3.1.4
- Sebelum menginstal Django, harus dipastikan kita sudah menginstall pip terlebih dahulu dan pastikan juga sudah upgrade yang terbaru. Jika tidak, instalasi tidak akan berjalan.
- Menginstall Django dengan command
python -m pip install Django
Python Virtual Environment
- Perbarui server lokal (OS Ubuntu) terlebih dahulu
sudo apt-get update
- Virtualenv bisa diinstall menggunakan command apt
sudo apt intall python3-virtualenv
*Note : Command ini digunakan pada python 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 - 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
- Login sebagai root user pada server
ssh root@server_ip_address -p "portserver"
- Gunakan command adduser untuk menambahkan user baru pada server
sudo adduser username
- Masukkan username baru dan membuat password untuk username baru
Set password prompts:
Enter new UNIS password
Retype new UNIX password:
passwd: password update successfully
- 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]
- Username baru telah berhasil dibuat. Jika ingin beralik ke user baru bisa menggunakan command su
su -username_anda
- Masukkan password user baru anda untuk beralih user
2. Proses Deployment
- Sebelum melakukan migrasi untuk deployment agar mengatur Host di file settings.py yang berada pada direktori
ALLOWED_HOSTS = ['*']
- Aktifkan virtual environment
source venv/bin/activate
- Lakulan pull Django Project yang telah dibuat dari github/bitbucket
git clone 'https://linkgithub'
- Masuk ke direktori Django Project yang dimana terdapat file manage.py
- Melakukan migrasi terlebuh dahulu
python manage.py makemigrations
python manage.py migrate
- 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
- 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 - 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
- Untuk memasang SSL Certificate, yang diperlukan adalah certbot
- Untuk menginstall certbot dengan command
sudo add-apt-repository ppa:certbot/certbot
Jika error atau gagal bisa mencoba dua opsi yaitu dengansudo apt-get update
atau dengan menginstall certbot menggunakan commandsudo apt-get install python-certbot-nginx
- 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 cukupsudo certbot --nginx -d 'nama domain'
Jika terjadi error “no module cffi” maka install terlebih dahulu cffi dengan commandpyhton3 -m pip install cffi
kemudian lakukan kembali langkah nomor 3. - 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 - Kemudian pilih file vim.basic
- Tekan tombol I untuk mulai edit
- Pada bagian paling bawah tambahan baris
0 12 ***/usr/bin/certbot renew -quiet
- Tekan esc untuk keluar dari mode edit
- Kemudian ketik :wq untuk menyimpan dan keluar dari file tersebut
- Pemasang SSL Certificate dan update otomatis pun sudah selesai di konfirmasi.