Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
# 🚀 DevOps Toolbox — Локальная CI/CD-платформа "из коробки"
Готовое решение для локального запуска инструментов DevOps — для обучения, тестирования и демонстрации реального DevOps-процесса с CI/CD, мониторингом и логированием.
---
## 🎯 Цель проекта
**DevOps Toolbox** предназначен для:
- студентов и джуниор-инженеров, осваивающих DevOps-инструменты,
- разработчиков, которым нужно CI/CD и мониторинг для pet-проектов,
- всех, кто хочет быстро поднять инфраструктуру, похожую на продакшн, — **на локальной машине**.
---
## 📦 Что входит в состав
| Компонент | Инструмент | Назначение |
|------------------|----------------------------|------------------------------------------------|
| CI/CD | Jenkins или GitHub Actions | Сборка, тестирование и деплой приложений |
| Kubernetes | k3d или k3s | Лёгкий кластер K8s для локального запуска |
| Мониторинг | Prometheus + Grafana | Сбор и визуализация метрик |
| Логирование | Loki | Централизованное логирование |
| GitOps | ArgoCD | Декларативный деплой через Git |
| Секреты | Kubernetes Secrets | Безопасное хранение конфигураций |
| Ingress | Nginx или Traefik | Доступ к сервисам через домены localhost |
| Демонстрационное приложение | Flask или Node.js | Пример реального CI/CD-пайплайна |
---
## 🧱 Архитектура
```
Локальный компьютер
│
├── k3d (кластер Kubernetes)
│ ├── Jenkins (CI/CD)
│ ├── ArgoCD (GitOps-деплой)
│ ├── Prometheus + Grafana (метрики)
│ ├── Loki (логи)
│ ├── Demo App (Flask или Node.js)
│ └── Ingress (Traefik или Nginx)
│
└── Git-репозиторий
├── YAML пайплайны
├── Манифесты K8s
└── ArgoCD конфигурации
```
---
## 🚀 Быстрый старт
```bash
git clone https://github.com/yourusername/devops-toolbox.git
cd devops-toolbox
make init # Установка зависимостей (Docker, k3d и т.д.)
make up # Запуск всех сервисов
make deploy-app # Развёртывание тестового приложения
```
Доступ к интерфейсам:
- Jenkins: [http://localhost:8080](http://localhost:8080)
- Grafana: [http://localhost:3000](http://localhost:3000)
- ArgoCD: [http://localhost:9000](http://localhost:9000)
---
## 🛠️ Стек технологий
- 🐳 Docker, docker-compose или k3d
- ☸️ Kubernetes
- ⚙️ Jenkins или GitHub Actions (self-hosted)
- 📈 Prometheus + Grafana
- 📝 Loki
- 🔁 ArgoCD
- 🌐 Ingress (Traefik или Nginx)
- 🐍 Flask / Node.js — демонстрационное приложение
---
## 🧪 Возможности
- Пример пайплайна: билд → тест → деплой через ArgoCD.
- Сбор метрик с приложений и кластеров.
- Логирование pod’ов и контейнеров через Loki.
- Поддержка Ingress — легко доступен интерфейс каждого сервиса.
---
## 🔐 Дополнительно (опционально)
- Интеграция с Vault для управления секретами.
- Telegram / Slack уведомления при падении пайплайна.
- Расширение Terraform для развертывания в облаке.
---
## 📍 Планы на будущее
- [ ] Поддержка GitHub Actions в дополнение к Jenkins.
- [ ] Интеграция Vault.
- [ ] Автоматический генератор постмортемов (AI).
- [ ] Туториал-серия: “CI/CD с нуля с DevOps Toolbox”.
- [ ] Режим “для обучения” — задания и тесты.
---
## 👥 Для кого этот проект
- 🎓 Студенты и выпускники ИТ-направлений
- 🛠️ Джуниор DevOps / SRE инженеры
- 👨💻 Разработчики, которым нужна локальная CI/CD инфраструктура
- 🧪 Разработчики PoC и тестовых сред
---
## 📚 Документация
- [`docs/setup.md`](./docs/setup.md): запуск на локальной машине
- [`docs/ci-cd.md`](./docs/ci-cd.md): описание пайплайнов
- [`docs/troubleshooting.md`](./docs/troubleshooting.md): устранение неполадок
- [`docs/extending.md`](./docs/extending.md): подключение новых сервисов
---
## 🤝 Контрибуции
Приветствуются Pull Request’ы, идеи, улучшения и ошибки! Если ты студент — этот проект создан именно для тебя 💙
---
## 📄 Лицензия
MIT License — можно использовать, модифицировать и распространять свободно.