🚀 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 🔥
Search for a command to run...

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 🔥
No comments yet. Be the first to comment.
Cada minuto que un dev espera un pipeline es un minuto de foco perdido. Multiplicalo por cada commit, cada MR, cada persona del equipo... y de repente ese pipeline de 25 minutos es el impuesto más car

Si venís siguiendo mi contenido hace rato, sabés que hay una frase que repito hasta el cansancio: la mejor forma de aprender cloud es rompiendo cosas en la cloud. El problema siempre fue el mismo: par

Si me seguís hace un tiempo ya sabés que estoy metida hasta con todo el power con Kiro IDE: demos, integraciones con GitLab CI, bootcamp y todo lo que se te ocurra. Así que cuando me crucé con este po

Build with fire, deploy with power 🔥

Por @roxsross · roxs.dev Introducción ¿Cuántas veces mergeaste un cambio de infraestructura y te enteraste del problema en producción? ¿Cuántos security groups abiertos al mundo, cuántos IAM con * en

On this page
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! 🧠💻
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
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.

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! 🔍📈
git clone https://github.com/roxsross/roxs-devops-stack
cd roxs-devops-stack
make install
make all
| 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) |
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 curl o Swagger UI
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!
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

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


🔍 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
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.
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
make?Sin drama. Todos los comandos del Makefile también se pueden ejecutar manualmente con Docker Compose. Acá te dejo los pasos:
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
| 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) |
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.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 Alertmanager
Añadí un Dockerfile para testing o CI
👉 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.
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! 💥
¿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
📩 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!