nakama/moderation/DEPLOY.md

141 lines
3.8 KiB
Markdown
Raw Normal View History

2025-12-08 23:42:32 +00:00
# Деплой модераторского сайта
## Система авторизации
Модераторский сайт поддерживает два способа авторизации:
1. **Telegram WebApp** - автоматическая авторизация через Telegram бота
2. **Email/Пароль** - регистрация через код на email и вход по паролю
## Настройка email сервиса
### AWS SES
```bash
EMAIL_PROVIDER=aws
AWS_SES_ACCESS_KEY_ID=your_access_key
AWS_SES_SECRET_ACCESS_KEY=your_secret_key
AWS_SES_REGION=us-east-1
EMAIL_FROM=noreply@nakama.guru
```
### Yandex Cloud
```bash
EMAIL_PROVIDER=yandex
YANDEX_SMTP_USER=your_email@yandex.ru
YANDEX_SMTP_PASSWORD=your_app_password
EMAIL_FROM=noreply@nakama.guru
```
### SMTP (любой провайдер)
```bash
EMAIL_PROVIDER=smtp
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_USER=your_email@example.com
SMTP_PASSWORD=your_password
SMTP_SECURE=false
EMAIL_FROM=noreply@nakama.guru
```
## Процесс регистрации
1. Администратор должен создать пользователя в БД с email и ролью moderator/admin
2. Пользователь вводит email на странице регистрации
3. Система отправляет 6-значный код на email
4. Пользователь вводит код, username и пароль
5. Аккаунт активируется
## Деплой с Docker
### 1. Настройка переменных окружения
Добавьте в `.env`:
```bash
# Модерация
MODERATION_PORT=3001
MODERATION_CORS_ORIGIN=https://moderation.nkm.guru
VITE_MODERATION_API_URL=https://moderation.nkm.guru/api
# Email для кодов подтверждения админа
OWNER_EMAIL=aaem9848@gmail.com
# Email настройки (выберите один вариант выше)
EMAIL_PROVIDER=aws
# ... остальные настройки email
```
### 2. Сборка и запуск
```bash
# Сборка всех образов
docker-compose build moderation-backend moderation-frontend
# Запуск сервисов
docker-compose up -d moderation-backend moderation-frontend nginx-moderation
# Проверка статуса
docker-compose ps
```
### 3. Получение SSL сертификата
```bash
# Получить сертификат (первый раз)
sudo certbot certonly --standalone -d moderation.nkm.guru
# Автоматическое обновление
sudo certbot renew --dry-run
```
### 4. Проверка работы
```bash
# Проверка бэкенда
curl http://localhost:3001/health
# Проверка через nginx
curl https://moderation.nkm.guru/api/health
# Логи
docker-compose logs -f moderation-backend
```
## Обновление
```bash
# Обновить код
git pull
# Пересобрать и перезапустить
docker-compose build moderation-backend moderation-frontend
docker-compose up -d moderation-backend moderation-frontend
# Перезагрузить nginx
docker-compose restart nginx-moderation
```
## Структура
- `moderation-backend` - API сервер модерации (порт 3001)
- `moderation-frontend` - Frontend приложение (nginx)
- `nginx-moderation` - Reverse proxy с SSL
## Troubleshooting
### Email не отправляется
1. Проверьте настройки EMAIL_PROVIDER в .env
2. Проверьте логи: `docker-compose logs moderation-backend`
3. Убедитесь что credentials правильные
### Не работает авторизация
1. Проверьте JWT_SECRET в .env
2. Проверьте что пользователь создан в БД с правильной ролью
3. Проверьте логи авторизации