Did you know that GitHub supports table of contents by default 🤔
This is the Telegram Bot.
- Python 3.13 & UV
- Aiogram 3 & aiogram-dialog
- Formatting and linting: Ruff, pre-commit
- Deployment: Docker, Docker Compose, GitHub Actions
- Install Python 3.13+, UV, Docker
- Install project dependencies with UV.
uv sync
- Start development server:
uv run -m src.bot
Follow provided instructions if needed
Tip
Edit settings.yaml according to your needs, you can view schema in
config_schema.py and in settings.schema.yaml
Set up PyCharm integrations
- Run configurations (docs).
Right-click the
__main__.pyfile in the project explorer, selectRun '__main__'from the context menu. - Ruff (plugin).
It will lint and format your code. Make sure to enable
Use ruff formatoption in plugin settings. - Pydantic (plugin). It will fix PyCharm issues with type-hinting.
- Conventional commits (plugin). It will help you to write conventional commits.
We use Docker with Docker Compose plugin to run the service on servers.
- Copy the file with settings:
cp settings.example.yaml settings.yaml - Change settings in the
settings.yamlfile according to your needs (check settings.schema.yaml for more info) - Install Docker with Docker Compose
- Build a Docker image:
docker compose build --pull - Run the container:
docker compose up --detach - Check the logs:
docker compose logs -f
- Run
uv lock --upgradeto update all dependencies - Run
uv pip list --outdatedto check for outdated dependencies - Run
uv add <package>@latestto add a new dependency if needed
- Run
uv run pre-commit autoupdate
Also, Dependabot will help you to keep your dependencies up-to-date, see dependabot.yml.