klg-asutk-app/docs/DEPLOYMENT.md
Yuriy 44b14cc4fd feat: все AI-функции переведены на Anthropic Claude API
- ai_service.py: единый AI-сервис (chat, chat_with_history, analyze_document)
- routes/ai.py: POST /api/v1/ai/chat (chat, summarize, extract_risks, classify, translate)
- config.py: ANTHROPIC_API_KEY, ANTHROPIC_MODEL
- requirements.txt: anthropic>=0.42.0
- api-client.ts: aiApi (chat, summarize, extractRisks)
- CSP: connect-src добавлен https://api.anthropic.com
- app/api/ai-chat: прокси на бэкенд /api/v1/ai/chat (Anthropic)
- legal_agents/llm_client.py: переведён на ai_service (Claude)
- AIAccessSettings: только Claude (Sonnet 4, 3 Sonnet, 3 Opus)
- k8s, .env.example: OPENAI → ANTHROPIC
- package.json: удалена зависимость openai
- Документация: OpenAI/GPT заменены на Claude/Anthropic

Провайдер: исключительно Anthropic Claude
Модель по умолчанию: claude-sonnet-4-20250514

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 15:51:59 +03:00

241 lines
4.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Документация по развертыванию
## Требования
- Node.js 20+
- npm или yarn
- Доступ к серверу (VPS, облако)
## Подготовка к развертыванию
### 1. Настройка переменных окружения
Создайте файл `.env.production`:
```env
# API
NEXT_PUBLIC_API_URL=https://api.example.com/api
NEXT_PUBLIC_USE_MOCK_DATA=false
NEXT_PUBLIC_USE_REGISTRY_DATA=true
# AI (Anthropic Claude)
ANTHROPIC_API_KEY=your-production-api-key
# Логирование
LOG_LEVEL=info
NODE_ENV=production
# Безопасность
NEXTAUTH_URL=https://klg-app.example.com
NEXTAUTH_SECRET=your-secret-key
```
### 2. Сборка приложения
```bash
npm run build
```
### 3. Проверка сборки
```bash
npm run start
```
## Развертывание на Vercel
1. Установите Vercel CLI:
```bash
npm i -g vercel
```
2. Войдите в аккаунт:
```bash
vercel login
```
3. Разверните:
```bash
vercel --prod
```
4. Настройте переменные окружения в панели Vercel
## Развертывание на собственный сервер
### Использование PM2
1. Установите PM2:
```bash
npm install -g pm2
```
2. Запустите приложение:
```bash
pm2 start npm --name "klg-app" -- start
```
3. Сохраните конфигурацию:
```bash
pm2 save
pm2 startup
```
### Использование Docker
1. Создайте `Dockerfile`:
```dockerfile
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM node:20-alpine AS runner
WORKDIR /app
ENV NODE_ENV production
COPY --from=builder /app/public ./public
COPY --from=builder /app/.next/standalone ./
COPY --from=builder /app/.next/static ./.next/static
EXPOSE 3000
CMD ["node", "server.js"]
```
2. Соберите образ:
```bash
docker build -t klg-app .
```
3. Запустите контейнер:
```bash
docker run -p 3000:3000 --env-file .env.production klg-app
```
## Настройка Nginx (опционально)
```nginx
server {
listen 80;
server_name klg-app.example.com;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
```
## SSL сертификат
Используйте Let's Encrypt для бесплатного SSL:
```bash
sudo certbot --nginx -d klg-app.example.com
```
## Мониторинг
### Логи
Логи сохраняются в:
- `logs/error.log` - ошибки
- `logs/combined.log` - все логи
### Мониторинг производительности
Рекомендуется использовать:
- PM2 Monitoring (при использовании PM2)
- Sentry для отслеживания ошибок
- Grafana для метрик
## Резервное копирование
### Автоматическое резервное копирование
Настройте cron job для резервного копирования данных:
```bash
0 2 * * * /path/to/backup-script.sh
```
## Обновление
1. Получите последние изменения:
```bash
git pull origin main
```
2. Установите зависимости:
```bash
npm ci
```
3. Пересоберите:
```bash
npm run build
```
4. Перезапустите:
```bash
pm2 restart klg-app
# или
docker-compose restart
```
## Откат (Rollback)
### PM2
```bash
pm2 restart klg-app --update-env
```
### Docker
```bash
docker-compose down
docker-compose up -d --scale app=1
```
### Git
```bash
git checkout <previous-commit>
npm run build
pm2 restart klg-app
```
## Проверка работоспособности
После развертывания проверьте:
1. Доступность приложения: `https://klg-app.example.com`
2. API endpoints: `https://klg-app.example.com/api/aircraft`
3. Логи на наличие ошибок
4. Производительность
## Troubleshooting
### Приложение не запускается
1. Проверьте логи: `pm2 logs klg-app`
2. Проверьте переменные окружения
3. Проверьте порт (должен быть свободен)
### Ошибки в production
1. Проверьте `logs/error.log`
2. Убедитесь, что все зависимости установлены
3. Проверьте версию Node.js
### Проблемы с производительностью
1. Включите кэширование
2. Оптимизируйте запросы к БД
3. Используйте CDN для статических ресурсов