🚀 Cómo armé mi propio laboratorio DevOps: stack completo con monitoreo incluido

Soy Roxs 👩💻| Software Developer | DevOps | DevSecOps | en @295DevOps 🖼 Content Creator. No se puede crecer si no estas dispuesto a saltar a la zona de peligro 🔥
Hace tiempo vengo buscando una forma práctica y didáctica de enseñar DevOps sin depender de servicios pagos, con todo corriendo localmente, y que además sea realista. Así nació roxs-devops-stack, un laboratorio educativo con FastAPI, PostgreSQL, Nginx, Docker Compose y todo un stack de monitoreo con Prometheus y Grafana... ¡sí, todo en tu compu! 🧠💻
📦 Pre-requisitos técnicos
Para correr este laboratorio necesitás:
🔹 Docker Desktop instalado y corriendo
🔹 Docker Compose v2.34 o superior * ya viene incluido en el docker desktop
🔹 Make (opcional, pero súper útil)
🔹 Sistema operativo: Linux, macOS o Windows con WSL2
🔹 Al menos 4 GB de RAM (recomendado 8 GB)
🔹 Mínimo 5 GB libres en disco
🔹 Conexión a internet para descargar imágenes la primera vez
Verificá si ya tenés todo listo:
docker version
Client:
Version: 28.0.4
API version: 1.48
Go version: go1.23.7
Git commit: b8034c0
Built: Tue Mar 25 15:06:09 2025
OS/Arch: darwin/arm64
Context: desktop-linux
docker compose version
Docker Compose version v2.34.0-desktop.1
make --version # (opcional)
💡 Si estás en Windows, asegurate de tener WSL2 activado y Docker corriendo correctamente.
Podes completar el setup con mi blog anterior https://blog.295devops.com/crea-tu-laboratorio-devops-local-sin-gastar-un-peso
🎯 ¿Qué vas a encontrar en este proyecto?
La idea es que puedas aprender y practicar DevOps sin vueltas. El stack incluye:
Frontend con Nginx y HTML/CSS/JS vanilla
Backend con FastAPI y PostgreSQL
Docker y Docker Compose para orquestar todo
Prometheus + Grafana para monitoreo real
Node Exporter para métricas de sistema
Un Makefile lleno de comandos útiles
Dashboards visuales listos para usar
💡 Ideal para quienes quieren aprender DevOps desde cero o armar su propio laboratorio para practicar CI/CD, monitoreo, troubleshooting y más.
🧱 Arquitectura simple pero poderosa

Todo esto conectado por redes Docker personalizadas (roxs-devops-network y roxs-monitoring-network), con métricas expuestas en /metrics y monitoreo en tiempo real de toda la aplicación. ¡Literalmente podés ver cuántas requests hacés y cómo responde tu app! 🔍📈
🧪 ¿Cómo lo usás?
- Clonás el repo:
git clone https://github.com/roxsross/roxs-devops-stack
cd roxs-devops-stack
make install
make all
- Accedé a los servicios:
| Servicio | URL |
| Frontend | http://localhost |
| Backend API | http://localhost:3000 |
| Docs API (Swagger) | http://localhost:3000/docs |
| Prometheus | http://localhost:9090 |
| Grafana | http://localhost:3001 (admin/admin) |
🎮 ¿Qué podés hacer?
Crear, listar, editar y borrar ítems desde el frontend
Ver métricas como requests, latencia, uptime
Ver dashboards en Grafana con performance y estado de todos los servicios
Inspeccionar logs del backend
Ver el estado de salud de cada contenedor
Probar los endpoints con
curlo Swagger UI
📊 El toque DevOps: métrica, logging y dashboards
Este no es solo un “todo corre en Docker”, sino que incluye un sistema de monitoreo funcional, con:
Dashboards listos en Grafana
Métricas de performance de la API
Estado de la base de datos
Logs estructurados del backend
Health checks, latencia y uptimes
🎯 ¡Ideal para aprender Prometheus y Grafana sin pelearte con configuraciones!
🛠️ ¿Qué aprendés armándolo?
Cómo dockerizar backend y frontend
Cómo conectar servicios con redes personalizadas
Cómo exponer y recolectar métricas con Prometheus
Cómo visualizar todo con Grafana
Cómo automatizar con Makefile
Troubleshooting real con logs y health checks
📸 Screenshots by ROXS

Revisa en: https://github.com/roxsross/roxs-devops-stack


🧪 Casos de uso recomendados
🔍 Simular caídas y ver alertas en Prometheus/Grafana
🧩 Practicar debugging usando métricas y logs
📈 Agregar nuevas métricas personalizadas a FastAPI
🔐 Experimentar con escaneos de seguridad (Próximo paso del roadmap)
📦 Crear tu pipeline CI/CD con GitHub Actions usando este stack como base
📊 Detrás del monitoreo
La app expone métricas en /metrics usando Prometheus client for Python. Entre las métricas disponibles:
| Métrica | Significado |
http_requests_total | Requests HTTP totales |
http_request_duration_seconds | Latencia promedio |
database_items_total | Cantidad de ítems en la DB |
app_uptime_seconds | Tiempo que lleva activa la app |
database_status | Estado de conexión a PostgreSQL |
Todo esto es recolectado por Prometheus, y luego Grafana lo grafica automáticamente. Ya incluye dashboards preconfigurados.
🧰 Makefile: tu asistente DevOps
El Makefile te ahorra escribir comandos largos. Algunos highlights:
make up # Levanta la app
make down # La detiene
make monitoring # Solo Prometheus + Grafana
make logs # Ver logs en tiempo real
make health # Chequeo de salud de servicios
make urls # Muestra todas las URLs
⚙️ ¿Y si no quiero usar make?
Sin drama. Todos los comandos del Makefile también se pueden ejecutar manualmente con Docker Compose. Acá te dejo los pasos:
🔧 Levantar la aplicación sin make
# 1. Cloná el repo
git clone https://github.com/roxsross/roxs-devops-stack
cd roxs-devops-stack
# 2. Levantar la aplicación principal
docker compose -f docker-compose.yml up -d
# 3. Levantar el stack de monitoreo
docker compose -f docker-compose.monitoring.yml up -d
📊 Acceder a los servicios
| Servicio | URL |
| Frontend | http://localhost |
| Backend API | http://localhost:3000 |
| Swagger Docs | http://localhost:3000/docs |
| Prometheus | http://localhost:9090 |
| Grafana | http://localhost:3001 (admin/admin) |
🔍 Ver logs
docker compose logs -f
docker compose -f docker-compose.monitoring.yml logs -f
💡 Consejo: si no usás
make, podés revisar el archivoMakefilepara ver todos los comandos disponibles y adaptarlos a tu estilo.
docker-compose con guión en lugar de docker compose separado.💡 ¿Cómo personalizar este stack?
Algunas ideas para que lo hagas tuyo:
Cambiá la base de datos a MySQL o MongoDB
Usá React o Vue como frontend (sirve igual con Nginx)
Agregá tu propio microservicio
Sumá alertas reales con
AlertmanagerAñadí un
Dockerfilepara testing o CI
🧠 ¿Querés probarlo?
👉 https://github.com/roxsross/roxs-devops-stack
Dale una estrella ⭐ si te gusta, y escribime si querés sumarte a contribuir o tenés ideas.
🔮 ¿Qué sigue?
Este es solo el comienzo. En el roadmap tengo pensado:
CI/CD completo con GitHub Actions
Deploy en Kubernetes con Helm y ArgoCD
Configuración de Terraform para IaC
Integración con herramientas de seguridad
Test de performance y Chaos Engineering
¡Y todo lo vas a poder practicar con este stack base! 💥
🎓 Bonus: se viene "90 Días de DevOps by Roxs" 🚀
¿Querés aprender DevOps en serio, acompañado/a, y con práctica real?
🧑💻 Estoy lanzando una experiencia gratuita llamada 90 Días de DevOps by Roxs, con:
🔁 Encuentros semanales ó quincenales (según cómo avancemos)
📦 Proyectos reales como el
roxs-devops-stack💬 Comunidad privada para dudas, feedback y networking
📈 Desafíos técnicos, guías y tips de carrera
🤝 Totalmente GRATIS (solo cupo limitado)
🎯 Solo para las primeras 200 personas
👉 ¿Querés participar?
📩 Completá este formulario de interés o escribime por redes y te mando el acceso cuando abramos inscripciones.
¡Va a ser una aventura intensa, práctica y transformadora!






