Files
Mini-ERP-app/STARTUP.md
2025-08-27 12:47:23 +04:00

6.0 KiB
Raw Permalink Blame History

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

📋 Требования

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

  • Docker 20.10+
  • Docker Compose 2.0+
  • Git 2.30+

Минимальные ресурсы

  • RAM: 4 GB
  • CPU: 2 ядра
  • Диск: 10 GB свободного места

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

1. Клонирование репозитория

git clone <repository-url>
cd erp-mvp

2. Настройка переменных окружения

# Создание .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. Запуск всех сервисов

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

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

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

4. Проверка работоспособности

# Core Service API
curl http://localhost:8080/health

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

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

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

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

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

Запуск с мониторингом

# Запуск с Prometheus и Grafana
docker-compose --profile monitoring up -d

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

Запуск с API Gateway

# Запуск с Traefik
docker-compose --profile gateway up -d

# Traefik Dashboard: http://localhost:8081

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

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

Core Service (Go)

cd core-service
go mod download
go run cmd/main.go

Document Service (Python)

cd doc-service
pip install -r requirements.txt
python -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

Frontend (Angular)

cd frontend
npm install
npm start

Горячая перезагрузка

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

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

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

Подключение к PostgreSQL

# Через 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

Миграции

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

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

Изменение паролей по умолчанию

# В docker-compose.yml измените:
# - POSTGRES_PASSWORD
# - JWT_SECRET
# - REDIS_PASSWORD (если используется)

HTTPS (для продакшена)

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

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

Просмотр логов

# Все сервисы
docker-compose logs

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

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

Перезапуск сервисов

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

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

Очистка данных

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

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

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

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

Тестовые запросы

# Проверка 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

Проверка базы данных

# Подключение к 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. Обновите переменные окружения

Команды для продакшена

# Сборка оптимизированных образов
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. Обратитесь к документации проекта