- 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'
2.3 KiB
2.3 KiB
🚀 Быстрый деплой бота с внешним PostgreSQL
Шаг 0: Установка Docker (если не установлен)
# Проверка 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
# Подключитесь к 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
# Скопируйте пример
cp .env.prod.example .env.prod
# Отредактируйте .env.prod
nano .env.prod
Заполните:
# 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 (рекомендуется)
# Билд и запуск
make docker-deploy
# Или вручную:
docker-compose build
docker-compose up -d
docker exec -it lottery_bot alembic upgrade head
Вариант B: Локально
# Установка
make install
# Миграции
source .venv/bin/activate
alembic upgrade head
# Запуск
make bot-start
Шаг 4: Проверка
# Проверить подключение к БД
make docker-test-db
# Логи
make docker-logs
# Статус
make docker-status
📋 Полезные команды
# Остановка
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 раздел "Troubleshooting"