Litehook is a self-hosted social media monitoring tool and a webhook server. Supports public and private channels or even DMs if you use a self-bot. It has support for SOCKS proxies, Docker deployment, has HTTP API and includes a lightweight web dashboard.
| Platform | Scraper Support | Self-Bot Support |
|---|---|---|
| Telegram | ✅ | ✅ |
git clone https://github.com/tensake/litehook.git
cd litehook
docker compose up -dTip
Open http://localhost:4101/ to configure litehook.
Litehook works by scraping public telegram channels at a set interval, which doesn't require any authorization, or authenticate with user account to get all DMs and private channels. It saves posts to the database and sends webhook if the post is new. You can see the Webhook Documentation below. You can also setup Environment Variables for litehook.
Tip
You can install Rust and Cargo by using rustup.
-
Build the binary with:
cargo build --release
-
And to start the server run:
cargo run --release
Environment variables used by litehook, for example in your .env file in the same directory as the litehook binary.
| Environment Variable | Description |
|---|---|
| PORT | Port for web interface, default is 4101 |
| WEBHOOK_SECRET | Webhook secret in x-secret header |
| PROXY_LIST_URL | URL to SOCKS5 proxy list |
| DB_PATH | Path to SQLite database file, default is data/litehook.db |
Tip
You can try using IPLocate proxy list. Be aware that proxy can be slow and timeout the HTTP request.
Webhook will be sent to webhook url with POST method, the server must return a 2xx HTTP status code, otherwise the webhook will be retried 4 additional times with a 1 second interval. If all retries fail, the data is still stored in the database and webhook will be dropped.
Webhook request will include a x-secret header with the webhook secret from WEBHOOK_SECRET environment variable that you should verify on server before trusting the payload.
Example of the webhook payload:
{
"channel": {
"id": "str",
"name": "str",
"image": "https://...",
"counters": {
"subscribers": "1.2M",
"photos": "392",
"videos": "104",
"links": "39"
},
"description": "str"
},
"new_posts": [
{
"id": "channel_id/post_id",
"author": "str",
"text": "str",
"media": ["https://...", "https://..."],
"reactions": [
{
"emoji": "♥",
"count": "35"
}
],
"views": "13.4K",
"date": "2026-03-04T12:00:00Z"
}
]
}