Apa yang bisa kami bantu?

A. Pendahuluan

Django merupakan salah satu framework web berbasis Python yang populer dan banyak digunakan untuk membangun aplikasi web berskala kecil hingga besar. Framework ini menawarkan fitur bawaan seperti sistem autentikasi, ORM (Object-Relational Mapping), serta struktur proyek yang terorganisir sehingga memudahkan proses pengembangan.

Pada artikel ini, akan dijelaskan langkah-langkah untuk melakukan instalasi dan deployment website berbasis Django di sistem operasi Ubuntu. Panduan ini mencakup persiapan environment Python, instalasi dependensi, serta pengaturan server web agar aplikasi Django dapat diakses melalui internet.

Dengan mengikuti panduan ini, diharapkan Anda dapat memahami proses standar deployment Django di Ubuntu sehingga aplikasi web dapat berjalan stabil, aman, dan siap digunakan dalam lingkungan produksi.

B. Persiapan

Sebelum melanjutkan menginstal dan mendeploy Website Django di Ubuntu pada OS Ubuntu, pada artikel kali ini memerlukan persiapan service yang dibutuhkan seperti:

1.  Sistem Operasi : Pada artikel kali ini menggunakan Ubuntu 22.04 LTS.

2.  Spesifikasi Minimum Server :

  • CPU: 2 core atau lebih
  • RAM: Minimal 4 GB (disarankan 8 GB untuk produksi)
  • Disk: Minimal 20 GB kosong
  • Akses root atau user dengan hak sudo

Setelah menyiapkan service yang diperlukan, maka dapat melanjutkan ke tahap selanjutnya yaitu instalasi Wazuh.

C. Instalasi dan deploy Website Django di Ubuntu

1. Perbarui sistem

Untuk memperbarui daftar paket dari repository agar sistem tahu versi terbaru dari paket-paket yang tersedia dan meng-upgrade semua paket yang bisa diperbarui ke versi terbaru tanpa konfirmasi pengguna (-y otomatis menjawab "yes") dapat menjalankan command berikut:

sudo apt update && sudo apt upgrade

2. Instalasi Python & Tool Pendukung

Setelah berhasil memperbarui daftar paket dari repository dan meng-upgrade semua paket, maka dapat melanjutkan instalasi Python & tool pendukung dengan menjalankan command:

apt install python3 python3-pip python3-venv
  • python3 → menginstal interpreter Python versi 3.
  • python3-pip → menginstal pip, package manager untuk Python (untuk install library seperti Django, Gunicorn, dsb.).
  • python3-venv → menginstal modul untuk membuat virtual environment (lingkungan terisolasi agar tiap proyek Python punya library sendiri).

3. Membuat Virtual Environment

Jalankan perintah berikut untuk membuat virtual environment baru:

python3 -m venv venv

Perintah di atas akan membuat folder bernama venv yang berisi file Python dan pip khusus untuk project ini.

4. Mengaktifkan Virtual Environment

Aktifkan environment dengan perintah:

source venv/bin/activate
  • Prompt terminal berubah jadi (venv) → artinya environment aktif.
  • Semua pip install ... hanya akan masuk ke environment ini.

5. Upgrade pip

Gunakan perintah berikut:

pip install --upgrade pip

6. Menginstal Django dan Gunicorn

Setelah virtual environment aktif, jalankan perintah berikut:

pip install django gunicorn
  • Django → framework Python untuk membangun aplikasi web.
  • Gunicorn → WSGI HTTP server yang digunakan untuk menjalankan aplikasi Django pada environment production.

7. Siapkan folder kemudian buat project dan app

Masuk ke direktori kerja (dapat disesuaikan jika sudah ada):

cd /home/kbdjango

Buat project bernama myproject, lalu app utama core:

django-admin startproject myproject
cd myproject
python manage.py startapp core

Daftarkan app core di INSTALLED_APPS:

nano myproject/settings.py

Tambahkan/ pastikan:

INSTALLED_APPS = [
    # app bawaan django...
    'core',
]

8. Setting Dasar settings.py

Masih di myproject/settings.py, sesuaikan beberapa hal penting:

from pathlib import Path
BASE_DIR = Path(__file__).resolve().parent.parent

# Saat pengujian awal boleh True, untuk production WAJIB False
DEBUG = True

ALLOWED_HOSTS = ['IP-SERVER', 'domainkamu.com', 'localhost']

# Static files
STATIC_URL = '/static/'
STATIC_ROOT = BASE_DIR / 'static'   # untuk collectstatic nanti

Catatan: Saat go-live, set DEBUG = False, isi ALLOWED_HOSTS dengan domain/IP yang valid.

9. Menjalankan Aplikasi Django dengan Gunicorn

Setelah menginstal Django dan Gunicorn di dalam virtual environment, langkah berikutnya adalah menjalankan aplikasi Django menggunakan Gunicorn. Hal ini dilakukan agar aplikasi dapat diakses melalui server HTTP production yang lebih stabil dibandingkan runserver. Gunakan perintah berikut:

gunicorn --bind 0.0.0.0:8000 myproject.wsgi:application
Gambar 1. Log Gunicorn

Jika perintah berhasil dijalankan, output terminal akan menampilkan log Gunicorn. Akses aplikasi di browser melalui:

http://<IP_SERVER>:8000
Gambar 2. Tampilan Aplikasi di Browser

 

10. Instal Paket PostgreSQL & Dependensi

Gunakan perintah berikut:

apt install postgresql postgresql-contrib libpq-dev

Catatan: Django memerlukan driver PostgreSQL di sisi Python. Gunakan salah satu:

pip install psycopg2-binary

Cek service:

systemctl status postgresql

11. Buat Database & User

Masuk ke shell PostgreSQL:

sudo -u postgres psql

Di dalam psql, jalankan:

CREATE DATABASE myprojectdb;
CREATE USER myprojectuser WITH PASSWORD 'passwordku';

-- Opsional: set default konfigurasi role
ALTER ROLE myprojectuser SET client_encoding TO 'utf8';
ALTER ROLE myprojectuser SET default_transaction_isolation TO 'read committed';
ALTER ROLE myprojectuser SET timezone TO 'UTC';

-- Beri hak akses penuh ke DB
GRANT ALL PRIVILEGES ON DATABASE myprojectdb TO myprojectuser;
\q

Catatan:

  • Gunakan password yang kuat (kombinasi huruf besar/kecil, angka, simbol).
  • Untuk production, simpan kredensial di environment variables / file .env, bukan hard-code.

12. Konfigurasi Django (settings.py)

Edit myproject/settings.py:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'myproject',
        'USER': 'myprojectuser',
        'PASSWORD': 'passwordku',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

13. Migrasi Database

Jalankan:

python manage.py migrate

14. Buat Tampilan Awal (URL & View)

Buat view sederhana:

nano core/views.py

Isi:

from django.http import HttpResponse

def home(request):
    return HttpResponse("Halo, Django siap di production!")

Tambahkan URL root:

nano myproject/urls.py

Isi:

from django.contrib import admin
from django.urls import path
from core.views import home

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', home, name='home'),
]

15. Membuat File Service

Agar aplikasi Django dapat berjalan otomatis saat server direboot dan lebih mudah dikelola, Gunicorn dapat dijalankan sebagai service menggunakan systemd.

Buat file service baru dengan perintah:

nano /etc/systemd/system/gunicorn.service

Isi dengan konfigurasi berikut:

[Unit]
Description=Gunicorn daemon for Django project
After=network.target

[Service]
User=kbdjango
Group=www-data
WorkingDirectory=/home/kbdjango/myproject
ExecStart=/home/kbdjango/venv/bin/gunicorn --workers 3 --bind 127.0.0.1:8000 myproject.wsgi:application
Environment="PATH=/home/kbdjango/venv/bin"
Environment="DJANGO_SETTINGS_MODULE=myproject.settings"

[Install]
WantedBy=multi-user.target

Penjelasan:

  • User → user Linux yang digunakan untuk menjalankan aplikasi (kbdjango).
  • Group → grup yang digunakan untuk izin file (www-data agar kompatibel dengan Nginx).
  • WorkingDirectory → lokasi folder project Django.
  • ExecStart → perintah untuk menjalankan Gunicorn.
  • Environment → environment variables untuk Gunicorn & Django.
  • WantedBy → memastikan service dijalankan pada mode multi-user (default server mode).

16. Mengaktifkan Service

Setelah file dibuat, jalankan perintah berikut:

sudo systemctl start gunicorn
sudo systemctl enable gunicorn

17. Mengecek Status Service

Gunakan perintah:

sudo systemctl status gunicorn

Jika berhasil, akan muncul status active (running) yang menandakan Gunicorn sudah berjalan sebagai service.

18. Instal Nginx

Gunakan perintah:

apt install nginx 

Cek status:

systemctl status nginx

19. Buat Konfigurasi Server Block

Buat file konfigurasi baru:

nano /etc/nginx/sites-available/myproject

Isi file dengan konfigurasi berikut:

server {
    server_name namadomain.tld;

    location /static/ {
        alias /home/kbdjango/myproject/static/;
    }
    location /media/ {
        alias /home/kbdjango/myproject/media/;
    }

    location / {
        include proxy_params;
        proxy_pass http://127.0.0.1:8000;   # atau socket jika menggunakan unix socket
    }

    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/namadomain.tld/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/namadomain.tld/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

server {
    if ($host = namadomain.tld) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    listen 80;
    listen [::]:80;
    server_name namadomain.tld;
    return 404; # managed by Certbot
}

20. Instal & Konfigurasi Certbot (SSL)

Pada artikel panduan ini digunakan contoh SSL dari Certbot untuk mempermudah proses instalasi dan uji coba. Namun, untuk kebutuhan production, kami tidak menyarankan penggunaan SSL Certbot. Sebagai alternatif, silakan gunakan SSL bertipe wildcard apabila sertifikat akan digunakan secara bersamaan pada domain utama maupun seluruh subdomain terkait.

apt install certbot python3-certbot-nginx

Minta sertifikat SSL Let’s Encrypt:

certbot --nginx -d namadomain.tld

21. Aktifkan Site & Restart Nginx

Gunakan perintah:

sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled
sudo nginx -t
sudo systemctl restart nginx

D. Hasil Uji Coba

Setelah proses instal dan Mendeploy Website telah selesai, silakan akses aplikasi di browser di URL berikut :

https://namadomain.tld

Ganti namadomain.tld dengan domain Anda. Setalah akses akan menampilkan tampilan dashboard berikut :

Gambar 3. Tampilan Website Django

Selamat anda telah meyelesaikan instalasi dan deploy Website Django di Ubuntu 22.04 LTS.

E. Penutup.

Seluruh tahapan instalasi dan deploy Website Django pada Ubuntu 22.04 LTS telah berhasil diselesaikan dan diharapkan panduan ini dapat menjadi referensi dalam proses implementasi.

Semoga artikel ini dapat membantu Anda. Temukan bantuan lainnya melalui Knowledge Base Biznet Gio. Jika Anda masih memiliki kendala silakan hubungi Support Biznet GIO melalui email support@biznetgio.com atau live chat maupun WA ke website www.biznetgio.com dan bisa juga melalui telepon ke nomor (021) 5714567.