feat: add zulip integration

This commit is contained in:
Jet 2026-03-23 22:18:23 -07:00
parent 50468db20b
commit 3a0d464234
No known key found for this signature in database
14 changed files with 430 additions and 5 deletions

View file

@ -42,3 +42,34 @@ NixOS options under `services.noisebell-cache`:
| `piApiKeyFile` | Bearer token to poll the Pi's GET endpoints |
| `inboundApiKeyFile` | Bearer token the Pi sends when POSTing to `/webhook` |
| `outboundWebhooks[].secretFile` | Bearer token sent with outbound webhook POSTs |
## Home Assistant
Home Assistant works well as another `outboundWebhooks` target.
- For fast automations, point a webhook target at Home Assistant's `/api/webhook/<webhook_id>` endpoint.
- For current-state display and restart recovery, have Home Assistant also poll `GET /status`.
Example NixOS config:
```nix
{
services.noisebell-cache.outboundWebhooks = [
{
url = "https://homeassistant.example.com/api/webhook/noisebell-door";
secretFile = null;
}
];
}
```
The webhook payload sent by cache-service is:
```json
{
"status": "open",
"timestamp": 1710000000
}
```
`secretFile = null` is usually fine for Home Assistant webhook triggers because the webhook ID itself acts as the secret. If you place Home Assistant behind an extra auth layer that expects a bearer token, set `secretFile` to a file containing that token.