w

Руководство по установке

Добро пожаловать на нашу платформу. Это руководство поможет вам настроить и начать использовать все доступные инструменты и функции.

Системные требования

Поддерживаемые браузеры

  • Chrome 90+
  • Firefox 88+
  • Safari 14+
  • Edge 90+

Мобильные устройства

  • iOS 14+
  • Android 8+
  • Современные мобильные браузеры

Требования к сети

  • Стабильное интернет-соединение
  • Минимальная пропускная способность: 1 Мбит/с
  • Рекомендуется: 5+ Мбит/с для лучшего опыта

Локальная установка (разработчики)

Предварительные требования

  • Node.js 18.0+
  • pnpm 8.0+
  • Git 2.30+

Шаги установки

  1. Клонировать репозиторий
    git clone https://github.com/your-org/woker-job.git
    cd woker-job
    
  2. Установить зависимости
    pnpm install
    
  3. Настроить переменные окружения
    cp .env.example .env
    # Отредактировать .env с вашими настройками
    
  4. Запустить сервисы
    # Запустить backend
    pnpm --filter back-end dev
    
    # В другом терминале запустить frontend
    pnpm --filter web dev
    
  5. Проверить установку

Конфигурация разработки

Структура проекта

woker-job/
├── apps/
│   ├── back-end/     # API NestJS
│   └── web/          # Frontend Nuxt.js
├── packages/         # Общие пакеты
└── docs/            # Документация

Доступные скрипты

# Разработка
pnpm dev              # Запустить все сервисы
pnpm build            # Сборка для продакшена
pnpm test             # Запустить тесты
pnpm lint             # Проверить код

# Управление контентом
pnpm content:check    # Проверить синхронизацию многоязычного контента
pnpm content:init     # Инициализировать структуру языка

Конфигурация продакшена

Docker (рекомендуется)

# Собрать образ
docker build -t woker-job .

# Запустить контейнер
docker run -p 3000:3000 woker-job

Ручной деплой

  1. Собрать приложение
    pnpm build
    
  2. Настроить сервер
    • Node.js 18+
    • PM2 или аналогичный для управления процессами
    • Nginx для обратного прокси
  3. Переменные окружения продакшена
    NODE_ENV=production
    DATABASE_URL=your_database_url
    JWT_SECRET=your_jwt_secret
    

Конфигурация базы данных

PostgreSQL (рекомендуется)

# Установить PostgreSQL
sudo apt-get install postgresql postgresql-contrib

# Создать базу данных
sudo -u postgres createdb woker_job

# Запустить миграции
pnpm migration:run

SQLite (разработка)

# Настроить в .env
DATABASE_URL="file:./dev.db"

Конфигурация аутентификации

OAuth 2.0

  1. Настроить провайдеров
    • Google OAuth
    • GitHub OAuth
    • Microsoft OAuth
  2. Переменные окружения
    GOOGLE_CLIENT_ID=your_google_client_id
    GOOGLE_CLIENT_SECRET=your_google_client_secret
    GITHUB_CLIENT_ID=your_github_client_id
    GITHUB_CLIENT_SECRET=your_github_client_secret
    

JWT

JWT_SECRET=your_jwt_secret_key
JWT_EXPIRES_IN=7d

Конфигурация электронной почты

SMTP

SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your_email@gmail.com
SMTP_PASS=your_app_password

Сервисы электронной почты

  • SendGrid: Для массовой рассылки
  • Mailgun: Для транзакционной почты
  • AWS SES: Для масштабируемости

Конфигурация хранилища

Локальное

STORAGE_TYPE=local
STORAGE_PATH=./uploads

Облачное хранилище

# AWS S3
STORAGE_TYPE=s3
AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key
AWS_REGION=us-east-1
AWS_BUCKET=your_bucket_name

# Google Cloud Storage
STORAGE_TYPE=gcs
GCS_PROJECT_ID=your_project_id
GCS_BUCKET=your_bucket_name

Конфигурация мониторинга

Логи

LOG_LEVEL=info
LOG_FORMAT=json

Метрики

  • Prometheus: Для метрик системы
  • Grafana: Для визуализации
  • Sentry: Для мониторинга ошибок

Конфигурация безопасности

HTTPS

# Генерировать SSL сертификаты
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365

Заголовки безопасности

// Настроить в Nuxt.js
export default {
  serverMiddleware: [{ path: '/api', handler: '~/server-middleware/security.js' }],
};

Конфигурация кэша

Redis

REDIS_URL=redis://localhost:6379
REDIS_PASSWORD=your_redis_password

Конфигурация кэша

// Настроить в NestJS
import { CacheModule } from '@nestjs/cache-manager';
import { redisStore } from 'cache-manager-redis-store';

CacheModule.register({
  store: redisStore,
  host: 'localhost',
  port: 6379,
});

Конфигурация очереди задач

Bull Queue

REDIS_URL=redis://localhost:6379
QUEUE_PREFIX=woker-job

Конфигурация очереди

// Настроить в NestJS
import { BullModule } from '@nestjs/bull';

BullModule.registerQueue({
  name: 'email',
  redis: {
    host: 'localhost',
    port: 6379,
  },
});

Проверка установки

Автоматические тесты

# Модульные тесты
pnpm test:unit

# Интеграционные тесты
pnpm test:integration

# End-to-end тесты
pnpm test:e2e

Ручная проверка

  1. Проверить API
    curl http://localhost:3000/health
    
  2. Проверить Frontend
    • Открыть http://localhost:3001
    • Убедиться, что все страницы загружаются
    • Протестировать базовые функции
  3. Проверить базу данных
    pnpm db:test
    

Устранение неполадок

Общие проблемы

Ошибка порта занят

# Найти процесс, использующий порт
lsof -i :3000

# Завершить процесс
kill -9 <PID>

Ошибка зависимостей

# Очистить кэш
pnpm store prune

# Переустановить зависимости
rm -rf node_modules
pnpm install

Ошибка базы данных

# Проверить соединение
pnpm db:ping

# Сбросить базу данных
pnpm db:reset

Логи отладки

# Просмотр логов в реальном времени
pnpm logs

# Просмотр конкретных логов
pnpm logs:api
pnpm logs:web

Обновления

Автоматическое обновление

# Обновить зависимости
pnpm update

# Обновить приложение
git pull origin main
pnpm install
pnpm build

Миграции базы данных

# Генерировать миграцию
pnpm migration:generate

# Запустить миграции
pnpm migration:run

# Откатить миграцию
pnpm migration:revert

Поддержка

Ресурсы помощи

Контакт

Следующие шаги

  1. Настроить домен
    • Настроить DNS
    • Настроить SSL
    • Настроить CDN
  2. Настроить мониторинг
    • Настроить оповещения
    • Настроить дашборды
    • Настроить резервное копирование
  3. Настроить масштабируемость
    • Настроить балансировщик нагрузки
    • Настроить автоскейлинг
    • Настроить микросервисы

Последнее обновление: Декабрь 2024 Версия: 1.0.0

Was this page helpful?