- 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>
4.9 KiB
4.9 KiB
Документация по развертыванию
Требования
- Node.js 20+
- npm или yarn
- Доступ к серверу (VPS, облако)
Подготовка к развертыванию
1. Настройка переменных окружения
Создайте файл .env.production:
# 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. Сборка приложения
npm run build
3. Проверка сборки
npm run start
Развертывание на Vercel
- Установите Vercel CLI:
npm i -g vercel
- Войдите в аккаунт:
vercel login
- Разверните:
vercel --prod
- Настройте переменные окружения в панели Vercel
Развертывание на собственный сервер
Использование PM2
- Установите PM2:
npm install -g pm2
- Запустите приложение:
pm2 start npm --name "klg-app" -- start
- Сохраните конфигурацию:
pm2 save
pm2 startup
Использование Docker
- Создайте
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"]
- Соберите образ:
docker build -t klg-app .
- Запустите контейнер:
docker run -p 3000:3000 --env-file .env.production klg-app
Настройка 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:
sudo certbot --nginx -d klg-app.example.com
Мониторинг
Логи
Логи сохраняются в:
logs/error.log- ошибкиlogs/combined.log- все логи
Мониторинг производительности
Рекомендуется использовать:
- PM2 Monitoring (при использовании PM2)
- Sentry для отслеживания ошибок
- Grafana для метрик
Резервное копирование
Автоматическое резервное копирование
Настройте cron job для резервного копирования данных:
0 2 * * * /path/to/backup-script.sh
Обновление
- Получите последние изменения:
git pull origin main
- Установите зависимости:
npm ci
- Пересоберите:
npm run build
- Перезапустите:
pm2 restart klg-app
# или
docker-compose restart
Откат (Rollback)
PM2
pm2 restart klg-app --update-env
Docker
docker-compose down
docker-compose up -d --scale app=1
Git
git checkout <previous-commit>
npm run build
pm2 restart klg-app
Проверка работоспособности
После развертывания проверьте:
- Доступность приложения:
https://klg-app.example.com - API endpoints:
https://klg-app.example.com/api/aircraft - Логи на наличие ошибок
- Производительность
Troubleshooting
Приложение не запускается
- Проверьте логи:
pm2 logs klg-app - Проверьте переменные окружения
- Проверьте порт (должен быть свободен)
Ошибки в production
- Проверьте
logs/error.log - Убедитесь, что все зависимости установлены
- Проверьте версию Node.js
Проблемы с производительностью
- Включите кэширование
- Оптимизируйте запросы к БД
- Используйте CDN для статических ресурсов