- Makefile автоматически находит docker compose или docker-compose - Добавлена команда make docker-check для проверки окружения - Создана документация DOCKER_INSTALL.md - Обновлен DEPLOY_QUICKSTART.md с инструкцией по установке Docker - Все docker команды теперь используют переменную DOCKER_COMPOSE Исправляет ошибку: 'docker-compose: No such file or directory'
119 lines
2.3 KiB
Markdown
119 lines
2.3 KiB
Markdown
# 🚀 Быстрый деплой бота с внешним PostgreSQL
|
||
|
||
## Шаг 0: Установка Docker (если не установлен)
|
||
|
||
```bash
|
||
# Проверка Docker
|
||
docker --version
|
||
docker compose version
|
||
|
||
# Если не установлен - см. DOCKER_INSTALL.md
|
||
# Или быстрая установка (Ubuntu/Debian):
|
||
sudo apt update
|
||
sudo apt install -y docker.io docker-compose-plugin
|
||
sudo systemctl enable docker
|
||
sudo systemctl start docker
|
||
|
||
# Проверка
|
||
make docker-check
|
||
```
|
||
|
||
## Шаг 1: Подготовка PostgreSQL
|
||
|
||
```bash
|
||
# Подключитесь к PostgreSQL
|
||
psql -U postgres
|
||
|
||
# Создайте пользователя и БД
|
||
CREATE USER bot_user WITH PASSWORD 'secure_password_here';
|
||
CREATE DATABASE lottery_bot OWNER bot_user;
|
||
GRANT ALL PRIVILEGES ON DATABASE lottery_bot TO bot_user;
|
||
|
||
# Выход
|
||
\q
|
||
```
|
||
|
||
## Шаг 2: Настройка .env.prod
|
||
|
||
```bash
|
||
# Скопируйте пример
|
||
cp .env.prod.example .env.prod
|
||
|
||
# Отредактируйте .env.prod
|
||
nano .env.prod
|
||
```
|
||
|
||
**Заполните:**
|
||
```env
|
||
# Telegram
|
||
BOT_TOKEN=your_bot_token_from_botfather
|
||
ADMIN_IDS=123456789,987654321
|
||
|
||
# PostgreSQL (замените на свои данные)
|
||
DATABASE_URL=postgresql+asyncpg://bot_user:secure_password@localhost:5432/lottery_bot
|
||
```
|
||
|
||
## Шаг 3: Деплой
|
||
|
||
### Вариант A: Docker (рекомендуется)
|
||
|
||
```bash
|
||
# Билд и запуск
|
||
make docker-deploy
|
||
|
||
# Или вручную:
|
||
docker-compose build
|
||
docker-compose up -d
|
||
docker exec -it lottery_bot alembic upgrade head
|
||
```
|
||
|
||
### Вариант B: Локально
|
||
|
||
```bash
|
||
# Установка
|
||
make install
|
||
|
||
# Миграции
|
||
source .venv/bin/activate
|
||
alembic upgrade head
|
||
|
||
# Запуск
|
||
make bot-start
|
||
```
|
||
|
||
## Шаг 4: Проверка
|
||
|
||
```bash
|
||
# Проверить подключение к БД
|
||
make docker-test-db
|
||
|
||
# Логи
|
||
make docker-logs
|
||
|
||
# Статус
|
||
make docker-status
|
||
```
|
||
|
||
## 📋 Полезные команды
|
||
|
||
```bash
|
||
# Остановка
|
||
docker-compose down
|
||
|
||
# Перезапуск
|
||
docker-compose restart
|
||
|
||
# Логи в реальном времени
|
||
docker-compose logs -f bot
|
||
|
||
# Бэкап БД
|
||
pg_dump -U bot_user lottery_bot > backup.sql
|
||
|
||
# Восстановление БД
|
||
psql -U bot_user lottery_bot < backup.sql
|
||
```
|
||
|
||
## 🔥 Проблемы?
|
||
|
||
См. [EXTERNAL_DB_SETUP.md](./EXTERNAL_DB_SETUP.md) раздел "Troubleshooting"
|