noisebell/remote/zulip-bot/README.md
2026-03-23 22:18:29 -07:00

28 lines
1.1 KiB
Markdown

# Zulip Bridge
Receives webhooks from the cache service and posts door status updates into a Zulip stream.
Validates inbound webhooks with a Bearer token, then sends a stream message through the Zulip API using a bot email and API key.
## API
| Method | Path | Auth | Description |
|--------|------|------|-------------|
| `POST` | `/webhook` | Bearer | Status update from the cache service |
| `GET` | `/health` | - | Health check |
## Configuration
NixOS options under `services.noisebell-zulip`:
| Option | Default | Description |
|--------|---------|-------------|
| `domain` | required | Caddy virtual host domain |
| `zulipUrl` | required | Base URL of the Zulip server |
| `botEmail` | required | Zulip bot email address |
| `apiKeyFile` | required | Zulip bot API key file |
| `stream` | required | Zulip stream for updates |
| `topic` | `noisebell` | Zulip topic for updates |
| `imageBaseUrl` | `https://noisebell.extremist.software/image` | Base URL for status image links |
| `webhookSecretFile` | required | Shared secret with the cache service |
| `port` | `3003` | Listen port |