Skip to content

feat(channels): add Telegram and make all alert channels configurable from Settings - #135

Merged
gnacho merged 6 commits into
mainfrom
feat/134-telegram-channel
Sep 13, 2026
Merged

gnacho merged 6 commits into
mainfrom
feat/134-telegram-channel

Conversation

@gnacho

@gnacho gnacho commented Sep 13, 2026

Copy link
Copy Markdown
Owner

Adds a Telegram alert channel (Bot API sendMessage) and makes every alert channel configurable from Settings.

What changed:

  • New Telegram channel: bot token + chat id, same alert pipeline as the other channels (i18n ES/EN templates, severity prefix).
  • ntfy/Gotify sends hardened: network errors no longer leak the topic or the bot token, retries only on 429/5xx/transport errors (4xx are permanent), and messages are truncated on rune boundaries (4096 limit).
  • Alert channels are stored in the database and editable from Settings (Telegram, ntfy, Gotify, syslog, SMTP email, webhook), effective without restarting the service. Env vars only seed the first run.
  • Settings UI: new "Alert channels" panel with per-channel status, inline configuration and a test button. Secrets are write-only (never returned by the API, only a token_set flag).
  • New endpoints: GET /api/channels, PUT/DELETE /api/channels/{name}, POST /api/channels/{name}/test.

Notes:

  • Webhook has no test button: delivery is asynchronous (queue + DLQ), there is no synchronous result to show.
  • Push (Web Push) stays informational; VAPID keys are generated by the installer.

Tests: full Go suite green, go vet clean. Playwright UI smoke 15/15 (configure Telegram/ntfy/email/webhook, hot save, secrets not exposed, real delivery, disable).

closes #134

@gnacho
gnacho merged commit 88628f0 into main Sep 13, 2026
3 checks passed
@gnacho
gnacho deleted the feat/134-telegram-channel branch September 13, 2026 10:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Telegram as a notification channel

1 participant