Современный React приложение с полным DevOps стеком для автоматизации разработки, тестирования и деплоя.
- React 19 с TypeScript
- Vite - сборщик
- Redux Toolkit - управление состоянием
- Tailwind CSS - стилизация
- React Router - маршрутизация
- Docker - контейнеризация
- Docker Compose - оркестрация
- GitHub Actions - CI/CD
- Prometheus - сбор метрик
- Grafana - визуализация метрик
- Loki - логирование
- Jaeger - трейсинг
# Установка зависимостей
make install
# Запуск сервера разработки
make dev
# Сборка для production
make build
# Проверка кода
make lint
# Сборка и запуск контейнера
make docker-build
make docker-run
# Или через docker-compose
make docker-compose-up
# Просмотр логов
make docker-compose-logs
# Остановка сервисов
make docker-compose-down
make help # Показать все доступные команды
make install # Установить зависимости
make dev # Запустить сервер разработки
make build # Собрать приложение
make test # Запустить тесты
make lint # Проверить код линтером
make clean # Очистить временные файлы
make docker-build # Собрать Docker образ
make docker-run # Запустить контейнер
make docker-stop # Остановить контейнер
make docker-compose-up # Запустить все сервисы
make docker-compose-down # Остановить все сервисы
# Запуск стека мониторинга
docker-compose -f docker-compose.monitoring.yml up -d
# Доступ к сервисам:
# Grafana: http://localhost:3001 (admin/admin)
# Prometheus: http://localhost:9090
# Jaeger: http://localhost:16686
# cAdvisor: http://localhost:8080
Frontend/
├── .github/workflows/ # CI/CD пайплайны
├── monitoring/ # Конфигурации мониторинга
├── src/ # Исходный код приложения
├── Dockerfile # Контейнеризация
├── docker-compose.yml # Оркестрация сервисов
├── Makefile # Команды управления
└── nginx.conf # Конфигурация веб-сервера
Pipeline автоматически запускается при:
- Push в ветки
main
илиdevelop
- Создании Pull Request в
main
- Test - линтинг и тесты
- Build - сборка Docker образа
- Security - проверка безопасности
- Deploy - деплой в production (только для main)
- System Metrics - метрики системы (CPU, память, диск)
- Container Metrics - метрики контейнеров
- Application Metrics - метрики приложения
- Logs Dashboard - централизованные логи
Алерты настраиваются в Grafana для:
- Высокое использование CPU (>80%)
- Нехватка памяти (<100MB свободной)
- Недоступность сервиса
- Ошибки в логах
- Docker image scanning с Trivy
- Dependency vulnerability scanning с npm audit
- Security headers в nginx
- Non-root user в Docker контейнерах
- Secrets management через GitHub Secrets
make deploy-staging
make deploy-prod
# .env.local
NODE_ENV=development
VITE_API_URL=http://localhost:8000
VITE_APP_NAME="DevOps Frontend"
- Development -
docker-compose.yml
- Production -
Dockerfile
с nginx - Monitoring -
docker-compose.monitoring.yml
- Добавить тесты - Jest, React Testing Library
- Настроить бэкенд - API сервер с метриками
- Добавить Kubernetes - для продакшн деплоя
- Настроить Alertmanager - для уведомлений
- Добавить E2E тесты - Playwright или Cypress
- Настроить Terraform - Infrastructure as Code
- Форкни репозиторий
- Создай feature ветку (
git checkout -b feature/amazing-feature
) - Коммить изменения (
git commit -m 'Add amazing feature'
) - Пуш в ветку (
git push origin feature/amazing-feature
) - Создай Pull Request
Этот проект лицензирован под MIT License - см. файл LICENSE.