Files
Aplikasi-Kehadiran-KTM/docker/host-nginx/ktmspr.apps.mbip.my.conf
Saufi dfd22ff2af Aplikasi kehadiran KTM ambil peti undi (SPR 2026)
Sistem untuk admin DUN merekod waktu KTM (Ketua Tempat Mengundi) hadir
mengambil peti undi. Data KTM dibaca daripada DB sppm (spr2026) melalui
connection kedua — hanya penempatan berjawatan KTM yang dipaparkan.

- Dashboard: senarai KTM ikut pusat mengundi (asc) & saluran (asc),
  status BELUM HADIR (merah) / HADIR (hijau) + tarikh & masa
- Carian nama/no. KP, tapisan pusat mengundi & status
- Tanda hadir / batal dengan kawalan DUN (admin terhad ke DUN sendiri)
- Eksport Excel (worksheet Hadir & Belum Hadir) guna SimpleXlsx
- Peranan: superadmin (urus pengguna, semua DUN) & admin DUN
- Docker: nginx + php-fpm + queue + scheduler + webhook deploy,
  port 127.0.0.1:8009, TZ Asia/Kuala_Lumpur di semua container
- Zon waktu aplikasi: Asia/Kuala_Lumpur (APP_TIMEZONE)

Berasaskan scaffold spr2026_taklimat.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-11 02:40:00 +08:00

50 lines
1.7 KiB
Plaintext

# Host nginx reverse proxy for the Dockerized app.
# Install on the Ubuntu host:
# sudo cp docker/host-nginx/ktmspr.apps.mbip.my.conf \
# /etc/nginx/sites-available/ktmspr.apps.mbip.my
# sudo ln -s /etc/nginx/sites-available/ktmspr.apps.mbip.my \
# /etc/nginx/sites-enabled/
# sudo nginx -t && sudo systemctl reload nginx
server {
listen 80;
listen [::]:80;
server_name ktmspr.apps.mbip.my;
client_max_body_size 21M;
access_log /var/log/nginx/ktmspr.access.log;
error_log /var/log/nginx/ktmspr.error.log;
location / {
proxy_pass http://127.0.0.1:8009;
proxy_http_version 1.1;
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 $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_connect_timeout 30s;
proxy_read_timeout 60s;
}
# GitHub webhook deploy -> container webhook (adnanh/webhook) di 127.0.0.1:9002.
# Endpoint GitHub: https://ktmspr.apps.mbip.my/hooks/deploy
location /hooks/ {
proxy_pass http://127.0.0.1:9002;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# Deploy (build) ambil masa; bagi masa yg cukup utk response.
proxy_read_timeout 600s;
}
}
# NOTA: Selepas pasang SSL (certbot), blok di atas biasanya bertukar jadi
# `listen 443 ssl`. Pastikan KEDUA-DUA `location /` dan `location /hooks/`
# berada dalam blok 443 itu, dan `X-Forwarded-Proto $scheme` kekal ada.