101 lines
1.9 KiB
Markdown
101 lines
1.9 KiB
Markdown
# 🚀 Быстрый деплой бота с внешним PostgreSQL
|
||
|
||
## Шаг 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"
|