Telegram bot with Python, aiogram, and Planka integration. Uses long-polling to receive updates.
- Telegram bot token from @BotFather
- Planka URL + credentials
- PostgreSQL (for short-id mappings)
- Docker + Docker Compose plugin
make
Copy env file and fill values:
cp .env.example .envRequired: BOT_TOKEN, DATABASE_URL, PLANKA_*. For Planka action notifications to Telegram, set TELEGRAM_NOTIFICATION_CHAT_IDS and PLANKA_BOARD_ID (use scripts/discover_chats.py to find chat IDs).
sudo make upUseful commands:
sudo make ps
sudo make logs
sudo make restart
sudo make downuv sync
uv run python -m app.polling/start— greeting/help— list commands/boards— list Planka boards/todo— list TODO tasks/todo {name}— create a task (supports multi-line checklist items and photo attachments)/task {id}— show full task details (title, description, checklist, images)/doing {id}— move task to IN PROGRESS/done {id}— move task to DONE/backtodo {id}— move task back to TODO
- Planka auth uses
PLANKA_USERNAME_OR_EMAILandPLANKA_PASSWORD(login on startup).