Keep GitHub activity flowing into Telegram.
Run one service that receives GitHub webhooks, forwards them to Telegram, and gives you the tooling to manage bots, destinations, subscriptions, and delivery logs without SSHing into a box.
Sample notification
Readable HTML preview that mirrors what Telegram renders.
Push to main
Commits
ab13e91Fix race condition when parsing payloadsd8f93aaAlign FastAPI markdown renderer with Node portfe9012bAdd regression coverage for webhook summariser
What you get
Focused features that cover the full lifecycle of managing GitHub → Telegram webhooks.
GitHub → Telegram bridge
Capture repository activity and ship it straight into Telegram chats with minimal wiring.
Human-friendly payloads
Markdown-safe templates, auto commit splitting, and secret masking keep notifications readable.
Ops ready
Rotate tokens, drop pending Telegram updates, inspect webhooks, and audit event logs from one dashboard.
Express backend
Handles Telegram/GitHub webhooks, manages sessions, and persists bots, destinations, and delivery logs in SQLite.
View backendNext.js dashboard
Client-side views for managing bots, destinations, subscriptions, and analytics with toast feedback.
View frontendSQLite store
Single-file database ideal for self-hosting; secrets and delivery logs live locally for quick audits.
Quick start
Everything you need to self-host in minutes.
- 1Copy `.env.example` files to `.env` (backend) and `.env.local` (frontend), then fill secrets.
- 2Run `npm install && npm run dev` in both backend/ and frontend/.
- 3Add a Telegram bot token in the dashboard (optional: drop pending updates to clean queues).
- 4Register destinations (chat IDs or topics) and create subscriptions per repository.
- 5Paste the generated GitHub webhook URL + secret into repository settings and you're live.
Key endpoints
Bookmark these routes when wiring GitHub and Telegram.
- GET•
/healthzHealth check
- POST•
/wh/{hook_id}GitHub webhook
- POST•
/tg/{bot_id}/{token}Telegram webhook
- GET•
/api/statsStats API
- GET•
/api/eventsEvents API