Alerts
Zkrinet tells you when something happens to your project — by email, to a webhook or both. Set it up under the Alerts tab.
#What triggers an alert
| Event | When |
|---|---|
| Down | The project has not responded to two checks in a row. We check once a minute and try to restart it automatically. |
| Up again | The project responds again after a down alert. |
| Storage | Storage reaches 80 % and 95 % of your quota. Alerts once per level; if you drop below 75 % it can alert again. |
| Deploy rolled back | A deploy from GitHub didn't go through and the project was restored. |
A paused project does not alert. At most 20 alerts per project per day (test alerts don't count) — so that a project going up and down doesn't fill your inbox.
Alerts for failed backups COMING together with the backups.
Alerts go to the email address on your account. Uncheck Email me alerts if you only want the webhook.
#Webhook
Enter an https address — for example a Slack or Discord webhook or your own server. Each alert is sent as a POST with JSON:
{
"id": "…", // unique per alert
"typ": "nere", // nere | uppe | lagring | deploy | test
"projekt": "min-app",
"adress": "https://min-app.zkrinet.com",
"text": "Projektet har inte svarat …",
"text_en": "The project has failed …",
"data": {},
"tid": "2026-11-08T10:15:00.000Z"
}
#Verify the signature
When you save a webhook you get a secret (shown once). Every request has two headers:
X-Zk-Tid— the timestamp in seconds (Unix time)X-Zk-Signatur—sha256=+ HMAC-SHA256 with the secret overX-Zk-Tid + "." + the body
Example in Node:
import crypto from "node:crypto"
function verify(req, body, secret) {
const tid = req.headers["x-zk-tid"]
const expected = "sha256=" + crypto.createHmac("sha256", secret).update(tid + "." + body).digest("hex")
const ok = crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(req.headers["x-zk-signatur"] || ""))
const fresh = Math.abs(Date.now() / 1000 - Number(tid)) < 300 // reject old requests
return ok && fresh
}
Use the body exactly as it arrived (raw text), not re-parsed JSON.
#Test
Send test alert sends an alert of type test to email and webhook and shows the result. The history of recent alerts is shown on the same tab.