- Создание бота и получение токена - https://t.me/BotFather
- При создании бота нужно отправить BotFather команду
/setinline
, иначе бот не будет работать через@
в чате - Бот должен быть админом в чатах в которых вызываются его команды и в чате в который он будет пересылать сообщения
- yoyo-migrations документация
- Создать venv
python -m venv venv
- Активировать venv (если pycharm не сделал это автоматически)
source venv/bin/activate
https://www.jetbrains.com/help/pycharm/configuring-python-interpreter.html#widget
- Установить зависимости (если pycharm не сделал это автоматически)
pip install -r requirements.txt
- Создать
.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
- Поднять БД в контейнере командой
docker compose -f docker-compose-dev.yaml up -d
- Сделать миграцию для БД. Использовать те же данные, которые указаны в
.env
файле
yoyo apply --database postgresql://user:password@localhost:5433/database-name ./migrations
- Запустить проект
- C помощью UI pycharm
- Через
python src/main.py
- Создать
.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
- Собрать образ бота
docker build -t zhukovsd/it-mentor-community-bot:main .
- Запустить бота и БД в докер композ
docker compose -f docker-compose-prod.yaml --env-file .env.prod up -d