Telegram bot based on a template from wakaree with using dishka and aiogram_dialog
- Python 3.12+
- Docker
- docker-compose
- make
- poetry
Via Docker
- Rename
.env.dist
to.env
and configure it - Rename
docker-compose.example.yml
todocker-compose.yml
- Run
make app-build
command thenmake app-run
to start the bot
- Configure and start PostgreSQL
- Configure and start Redis (» Read more)
- Rename
.env.example
to.env
and configure it - Run database migrations with
make migrate
command - Configure
telegram-bot.service
(» Read more)
poetry install
Make migration script:
make migration message=MESSAGE_WHAT_THE_MIGRATION_DOES
Run migrations:
make migrate
- Aiogram 3.x (Telegram bot framework)
- PostgreSQL (database)
- SQLAlchemy (working with database from Python)
- Alembic (lightweight database migration tool)
- Redis (in-memory data storage for FSM and caching)
- Dishka (DI framework with scopes and agreeable API)
- aiogram_dialog (framework for developing interactive messages and menus in your telegram bot like a normal GUI application.)