EMJIJAYA / INFRASTRUCTURE

VPS Alert Bridge

Terima alert dari server lain tanpa memasang atau login WhatsApp di server tersebut. Hermes di server utama meneruskan alert ke WhatsApp Channel EMJIJAYA.

HTTP webhook · direct delivery · tanpa LLM

Alur pengiriman

Server lainwatchdog / monitoring
HTTP POSTemjijaya.tech/webhooks/vps-alert
Hermesvalidasi HMAC-SHA256
WhatsApp ChannelEMJIJAYA

Endpoint

POST http://emjijaya.tech/webhooks/vps-alert
Content-Type: application/json
X-Hub-Signature-256: sha256=<HMAC>
X-GitHub-Event: vps.alert

Request memakai event vps.alert. Endpoint menerima JSON maksimal seperlunya dan hanya meneruskan pesan setelah signature valid.

Format payload

{
  "event_type": "vps.alert",
  "host": "server-2",
  "severity": "critical",
  "message": "Disk usage 92%",
  "metric": "disk",
  "value": 92
}

Contoh pengiriman dari server

SECRET='isi secret webhook di server sumber'
BODY='{"event_type":"vps.alert","host":"server-2","severity":"critical","message":"Disk usage 92%","metric":"disk","value":92}'
SIGNATURE=$(printf '%s' "$BODY" | openssl dgst -sha256 -hmac "$SECRET" | awk '{print "sha256="$2}')

curl -X POST http://emjijaya.tech/webhooks/vps-alert \
  -H 'Content-Type: application/json' \
  -H "X-Hub-Signature-256: $SIGNATURE" \
  -H 'X-GitHub-Event: vps.alert' \
  --data "$BODY"

Field wajib

  • event_type: harus vps.alert
  • host: nama server sumber
  • severity: info, warning, atau critical
  • message: isi alert

Respons

200 OK
{"ok":true}

Signature salah menghasilkan 401. Kegagalan pengiriman ke WhatsApp menghasilkan 502, sehingga watchdog dapat melakukan retry.

Catatan keamanan: HTTP tidak mengenkripsi payload. Jangan kirim password, API key, atau data sensitif. Secret webhook harus disimpan di environment atau file permission 600. HTTPS dapat diaktifkan kemudian tanpa mengubah format request.