Telegram bot backend with async handlers, SQLAlchemy, and Dishka DI.
- Python 3.12+
- uv
- Docker (optional)
- Copy env file:
cp .env.example .env
- Edit
.envwith your bot token and database URL (SQLite by default).
uv sync
uv run botka
docker compose up --build
/3d shows status and camera buttons for configured Bambu Lab and Klipper
printers. Bambu printers use BOTKA_BAMBU_PRINTERS. Klipper printers use the
Moonraker API and are configured with BOTKA_KLIPPER_PRINTERS:
BOTKA_KLIPPER_PRINTERS='[{"name":"Voron","base_url":"http://voron.local","api_key":"","camera_url":"/webcam/?action=snapshot"}]'api_key and camera_url are optional. If camera_url is omitted, the bot
uses the first enabled webcam reported by Moonraker's /server/webcams/list.
Printer names must be unique across both integrations.