Quickstart¶
Three ways to get an instance running, from quickest to most complete. All of
them expose the API on http://localhost:8000: a landing page with a
Try it box at the root, the interactive Swagger UI at /api and this
documentation at /docs/.
1. A single container¶
docker run -d --name telegram-me -p 8000:3000 --restart unless-stopped \
ghcr.io/koval01/telegram-me:latest
The image is also published on Docker Hub as koval01/telegram-me. Without
further configuration it uses an in-process cache, which is ideal for a
single small instance.
Check it:
curl http://localhost:8000/healthz # {"status":"ok"}
curl http://localhost:8000/v1/body/durov # channel page as JSON
2. Docker Compose with a shared cache (recommended)¶
The repository ships a compose.yaml that runs the API next to a
Valkey (Redis-compatible) cache:
Pick a preset with PRESET:
| Preset | Feed | Previews | Rate limit | Cache | Parser |
|---|---|---|---|---|---|
standard (default) |
off | on | off | normal |
full |
full |
on | on | off | normal |
full |
minimal |
off | off | 90 req/min per IP | aggressive |
simplified |
Anything else is set in a .env file next to compose.yaml — copy
.env.example
and see Configuration for every option.
3. From source¶
Requires uv (it installs a suitable Python by itself):
git clone https://github.com/koval01/telegram-me
cd telegram-me
uv sync
uv run telegram-me serve --reload # http://localhost:3000
See Local development for the full workflow.
Next steps¶
- Explore the API reference.
- Put it behind a reverse proxy.
- Run several servers with rolling deployments.