Files
new_lottery_bot/docs/DEPLOY_QUICKSTART.md
Andrew K. Choi 1551b8b29f
Some checks reported errors
continuous-integration/drone/push Build encountered an error
fix: обработка ошибки 'message is not modified' в conduct_lottery_draw_confirm
2025-11-17 15:46:34 +09:00

2.3 KiB
Raw Blame History

🚀 Быстрый деплой бота с внешним 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"