Телеграм-бот для записи на пользование стиральной машиной в коливингах и общежитиях.
Для развертывания понадобится Docker и Docker Compose последних версий.
- Скопируйте репозиторий
git clone https://github.com/qqpayne/stirbot
- Создайте и заполните файл
.envс вашими данными по образцу файла.env.example. Если вы хотите применить миграции БД созданные с помощьюalembic, то укажитеDO_MIGRATE=true. - Запустите контейнеры
docker-compose up -d
- Выдача и лишение прав администратора для пользователя (который уже имеется в БД бота) производится с помощью команды:
docker-compose exec -e "PYTHONPATH=/app" bot python scripts/admin.py {uid} [--demote]
- Docker и Docker Compose последних версий
- VS Code для более удобной работы (есть вариант установки и без него)
- В случае установки без VS Code, понадобится Poetry для добавления\обновления зависимостей
- Скопируйте репозиторий
git clone https://github.com/qqpayne/stirbot
- Откройте VS Code в папке репозитория
code stirbot
- Создайте и заполните файл
.envпо образцу файла.env.example - Установите расширение "Remote - Containers" (
ms-vscode-remote.remote-containers); всплывающая подсказка с предложением установить его будет доступна в правом нижнем углу экрана редактора - В подсказке в правом нижнем углу экрана редактора нажмите "Reopen in Container" или нажмите
Ctrl+Shift+Pи выберите "Reopen in Container"
После того как контейнер забилдится, вы получите окружение со всеми установленными зависимостями, автоформатированием и линтингом (все настройки хранятся в ".vscode/settings.json"). Также внутри контейнера есть рабочая база данных и Redis, для редактирования можно пользоваться pgadmin4 на 7731 порту.
Эти команды нужно вводить в встроенном интервале VS Code, то есть так чтобы они исполнялись внутри Dev Container'а.
- Запуск бота (убедитесь что ввели токен не с продакшна в
.env)python -m app
- Создание новой миграции
alembic revision --autogenerate -m "<описание изменений>" - Применение всех миграций базы данных
alembic upgrade head
- Выдать права администратора пользователю с указанным Telegram ID (он должен уже быть в БД бота)
python scripts/admin.py {uid}
Если вы не хотите разворачивать Dev Container, но хотите пользоваться автоформатированием и линтингом, то следуйте этим шагам:
- Установите линтеры, форматтеры и прочее
cd stirbot poetry install - Зарегистрируйте pre-commit хук
./.venv/bin/pre-commit install
- Откройте VS Code в папке репозитория
code .
Правда, для запуска бота необходима база данных PostgreSQL и Redis, поэтому для тестов придется каждый раз полноценно развертывать проект.