HEX
Server: nginx/1.18.0
System: Linux mail.dakarash.co.id 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64
User: www-data (33)
PHP: 8.1.2-1ubuntu2.23
Disabled: NONE
Upload Files
File: //etc/nginx/sites-available/cargochains.conf
server {
    listen 80;
    listen [::]:80;
    server_name cargochains.dakarash.co.id;
    return 301 https://$host$request_uri;

    server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name cargochains.dakarash.co.id;

    # --- Sesuaikan path sertifikat sesuai 'sudo certbot certificates' ---
    ssl_certificate  /etc/letsencrypt/live/cargochains.dakarash.co.id-0001/fullchain.pem
    ssl_certificate_key /etc/letsencrypt/live/cargochains.dakarash.co.id-001/privkey.pem;

    # Header keamanan (opsional tapi direkomendasikan)
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
    add_header Content-Security-Policy "upgrade-insecure-requests" always;

    # Static & media (pastikan collectstatic sudah)
    location /static/ { alias /home/django/apps/cargochains/staticfiles/; }
    location /media/  { alias /home/django/apps/cargochains/media/; }

    # Healthcheck sederhana
    location = /healthz { return 200 "ok"; add_header Content-Type text/plain; }

    # Proxy ke Gunicorn
    location / {
        proxy_pass http://127.0.0.1:8001;
        proxy_set_header Host               $host;
        proxy_set_header X-Real-IP          $remote_addr;
        proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto  https;   # penting agar Django tahu HTTPS
        proxy_read_timeout 60s;
        proxy_connect_timeout 10s;
        proxy_send_timeout 60s;
    }



    # optional: langsung serve static/media kalau sudah collectstatic
    location /static/ { alias /home/django/apps/cargochains/staticfiles/; }
    location /media/  { alias /home/django/apps/cargochains/media/; }

    location = /healthz { return 200 "ok"; add_header Content-Type text/plain; }
}