Skip to content

This is a template for easy start of bot development for Telegram

License

Notifications You must be signed in to change notification settings

arturboyun/AiogramBotTemplate

Repository files navigation

📋 Telegram Bot Template

This template provides clean start to create bot using aiogram.

🛠 Stack

  • Aiogram
  • Aiogram Dialog
  • Dishka
  • Pydantic
  • FastAPI (TODO)
  • I18n (TODO)
  • SQLAlchemy + asyncpg
  • Alembic
  • UV
  • Ruff
  • Docker
  • PostgreSQL
  • Redis

🐳 Setup with Docker

  1. Create .env file from .env.dist and fill it.
  2. Create password.txt in db folder and fill it.
  3. Run docker docker compose up --build -d
  4. Run migrations with docker compose exec -it db uv run alembic upgrade head

🐇 Setup for local start

  1. Create .env file from .env.dist and fill it.
  2. Create password.txt in db folder and fill it.
  3. Run docker compose up --build -d db redis
  4. Install dependencies with uv sync
  5. Create .venv with uv venv --seed
  6. Activate virtual environment with source .venv/bin/activate
  7. Run migrations with alembic upgrade head
  8. Run bot with python -m bot.main

🍀 For production

docker compose -f compose.yml -f compose.prod.yml up --build -d

How To?

Run migrations

alembic upgrade head

Generate new migration

alembic revision --autogenerate -m="<migration_name>"