# 🚀 Инструкции по запуску ERP MVP

## 📋 Требования

### Системные требования
- **Docker** 20.10+
- **Docker Compose** 2.0+
- **Git** 2.30+

### Минимальные ресурсы
- **RAM:** 4 GB
- **CPU:** 2 ядра
- **Диск:** 10 GB свободного места

## 🔧 Быстрый запуск

### 1. Клонирование репозитория
```bash
git clone <repository-url>
cd erp-mvp
```

### 2. Настройка переменных окружения
```bash
# Создание .env файла для Core Service
cp core-service/.env.example core-service/.env

# Создание .env файла для Document Service
cp doc-service/.env.example doc-service/.env

# Редактирование переменных (опционально)
nano core-service/.env
nano doc-service/.env
```

### 3. Запуск всех сервисов
```bash
# Сборка и запуск всех контейнеров
docker-compose up -d

# Просмотр логов
docker-compose logs -f

# Проверка статуса сервисов
docker-compose ps
```

### 4. Проверка работоспособности
```bash
# Core Service API
curl http://localhost:8080/health

# Document Service API
curl http://localhost:8000/health

# Frontend
curl http://localhost:3000/health
```

## 🌐 Доступ к сервисам

После успешного запуска:

- **Frontend (Angular PWA):** http://localhost:3000
- **Core Service API:** http://localhost:8080
- **Document Service API:** http://localhost:8000
- **API Documentation:** http://localhost:8000/docs
- **PostgreSQL:** localhost:5432
- **Redis:** localhost:6379

## 🔍 Мониторинг (опционально)

### Запуск с мониторингом
```bash
# Запуск с Prometheus и Grafana
docker-compose --profile monitoring up -d

# Доступ к Grafana: http://localhost:3001
# Логин: admin / admin
```

### Запуск с API Gateway
```bash
# Запуск с Traefik
docker-compose --profile gateway up -d

# Traefik Dashboard: http://localhost:8081
```

## 🛠️ Разработка

### Локальная разработка

#### Core Service (Go)
```bash
cd core-service
go mod download
go run cmd/main.go
```

#### Document Service (Python)
```bash
cd doc-service
pip install -r requirements.txt
python -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
```

#### Frontend (Angular)
```bash
cd frontend
npm install
npm start
```

### Горячая перезагрузка
```bash
# Пересборка и перезапуск конкретного сервиса
docker-compose up -d --build core-service

# Пересборка всех сервисов
docker-compose up -d --build
```

## 🗄️ База данных

### Подключение к PostgreSQL
```bash
# Через Docker
docker-compose exec postgres psql -U erp_user -d erp_mvp

# Или через внешний клиент
# Host: localhost
# Port: 5432
# Database: erp_mvp
# Username: erp_user
# Password: erp_pass
```

### Миграции
```bash
# Применение миграций (если есть)
docker-compose exec core-service ./migrate up
```

## 🔐 Безопасность

### Изменение паролей по умолчанию
```bash
# В docker-compose.yml измените:
# - POSTGRES_PASSWORD
# - JWT_SECRET
# - REDIS_PASSWORD (если используется)
```

### HTTPS (для продакшена)
```bash
# Добавьте SSL сертификаты
# Настройте Traefik для HTTPS
# Обновите переменные окружения
```

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

### Просмотр логов
```bash
# Все сервисы
docker-compose logs

# Конкретный сервис
docker-compose logs core-service
docker-compose logs doc-service
docker-compose logs frontend

# Следить за логами в реальном времени
docker-compose logs -f
```

### Перезапуск сервисов
```bash
# Перезапуск конкретного сервиса
docker-compose restart core-service

# Перезапуск всех сервисов
docker-compose restart
```

### Очистка данных
```bash
# Остановка и удаление контейнеров
docker-compose down

# Удаление с данными
docker-compose down -v

# Полная очистка
docker-compose down -v --rmi all
```

## 📊 Проверка работоспособности

### Тестовые запросы
```bash
# Проверка Core Service
curl -X GET http://localhost:8080/health

# Проверка Document Service
curl -X GET http://localhost:8000/health

# Проверка Frontend
curl -X GET http://localhost:3000/health
```

### Проверка базы данных
```bash
# Подключение к PostgreSQL
docker-compose exec postgres psql -U erp_user -d erp_mvp -c "SELECT version();"

# Проверка таблиц
docker-compose exec postgres psql -U erp_user -d erp_mvp -c "\dt"
```

## 🚀 Продакшен развертывание

### Подготовка к продакшену
1. Измените все пароли по умолчанию
2. Настройте SSL сертификаты
3. Настройте мониторинг
4. Настройте бэкапы
5. Обновите переменные окружения

### Команды для продакшена
```bash
# Сборка оптимизированных образов
docker-compose -f docker-compose.yml -f docker-compose.prod.yml build

# Запуск в продакшене
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d
```

## 📞 Поддержка

При возникновении проблем:
1. Проверьте логи: `docker-compose logs`
2. Убедитесь, что все порты свободны
3. Проверьте системные ресурсы
4. Обратитесь к документации проекта
