Информация

  • Создание бота и получение токена - https://t.me/BotFather
  • При создании бота нужно отправить BotFather команду /setinline, иначе бот не будет работать через @ в чате
  • Бот должен быть админом в чатах в которых вызываются его команды и в чате в который он будет пересылать сообщения
  • yoyo-migrations документация

Локальный запуск

  1. Создать venv
python -m venv venv
  1. Активировать venv (если pycharm не сделал это автоматически)
source venv/bin/activate

https://www.jetbrains.com/help/pycharm/configuring-python-interpreter.html#widget

  1. Установить зависимости (если pycharm не сделал это автоматически)
pip install -r requirements.txt
  1. Создать .env файл в корне проекта. Он будет использоваться только для локального запуска
TELEGRAM_BOT_TOKEN=

POSTGRES_USER=
POSTGRES_PASSWORD=
POSTGRES_DB=
POSTGRES_HOST=localhost
POSTGRES_PORT=

PROJECTS_REVIEWS_COLLECTION_CHAT_ID=
ALLOWED_USER_IDS=

ALLOWED_USER_IDS - Список id юзеров, которые могут пользоваться командой. Указывается через запятую без пробелов = 322,511,987

  1. Поднять БД в контейнере командой
docker compose -f docker-compose-dev.yaml up -d
  1. Сделать миграцию для БД. Использовать те же данные, которые указаны в .env файле
yoyo apply --database postgresql://user:password@localhost:5433/database-name ./migrations
  1. Запустить проект
  • C помощью UI pycharm
  • Через python src/main.py

Запуск в докере

  1. Создать .env.prod файл в корне проекта. Он будет использоваться только для локального запуска
TELEGRAM_BOT_TOKEN=

POSTGRES_USER=
POSTGRES_PASSWORD=
POSTGRES_DB=
POSTGRES_HOST=database
POSTGRES_PORT=5432

PROJECTS_REVIEWS_COLLECTION_CHAT_ID=
ALLOWED_USER_IDS=

POSTGRES_HOST = название сервиса с БД в docker-compose-prod.yaml файле. Дефолт database POSTGRES_PORT = порт сервиса с БД в docker-compose-prod.yaml файле. Дефолт 5432 для postgres ALLOWED_USER_IDS - Список id юзеров, которые могут пользоваться командой. Указывается через запятую без пробелов = 322,511,987

  1. Собрать образ бота
docker build -t zhukovsd/it-mentor-community-bot:main .
  1. Запустить бота и БД в докер композ
docker compose -f docker-compose-prod.yaml --env-file .env.prod up -d