Infraestructura completa del ecosistema Artiles Studio - Una solución integral de Infrastructure as Code (IaC) para el despliegue y gestión de aplicaciones empresariales.
Este repositorio contiene toda la infraestructura necesaria para desplegar y gestionar el ecosistema completo de Artiles Studio, que incluye:
- Frontend: Aplicación React moderna con interfaz de usuario responsive
- Backend: API REST robusta desarrollada en Spring Boot
- Base de Datos: Sistema de persistencia optimizado
- Infraestructura: Contenedores Docker orquestados y configuración de infraestructura automatizada
graph TB
subgraph "Infraestructura"
A[Docker Compose] --> B[Frontend Container]
A --> C[Backend Container]
A --> D[Database Container]
E[Terraform] --> F[Cloud Resources]
G[Nginx] --> B
end
subgraph "Aplicaciones"
B --> H[React App]
C --> I[Spring Boot API]
D --> J[PostgreSQL/MySQL]
end
subgraph "Repositorios del Ecosistema"
K[Frontend-Artiles-Studio]
L[Backend-Artiles-Studio]
M[Database-Artiles-Studio]
end
| Componente | Repositorio | Tecnología | Estado |
|---|---|---|---|
| Frontend | Frontend-Artiles-Studio | React 18, TypeScript, Tailwind CSS | ✅ Activo |
| Backend | Backend-Artiles-Studio | Spring Boot 3, Java 17, Maven | ✅ Activo |
| Database | Database-Artiles-Studio | PostgreSQL, Scripts SQL, Migraciones | ✅ Activo |
| Infraestructura | Este repositorio | Docker, Terraform, Nginx | ✅ Activo |
- Docker >= 20.10
- Docker Compose >= 2.0
- Terraform >= 1.0 (opcional, para despliegue en cloud)
- Git >= 2.30
- Make (opcional, para comandos automatizados)
-
Clonar el repositorio principal
git clone https://github.com/AntRed1/Infra-Artiles-Studio.git cd Infra-Artiles-Studio -
Clonar todos los sub-repositorios
# Opción 1: Script automatizado ./scripts/clone-all.sh # Opción 2: Manual git clone https://github.com/AntRed1/Frontend-Artiles-Studio.git frontend git clone https://github.com/AntRed1/Backend-Artiles-Studio.git backend git clone https://github.com/AntRed1/Database-Artiles-Studio.git database
-
Configurar variables de entorno
cp .env.example .env # Editar .env con tus configuraciones específicas -
Construir y ejecutar toda la infraestructura
# Construir todas las imágenes docker-compose build # Iniciar todos los servicios docker-compose up -d # Verificar estado de los servicios docker-compose ps
Una vez desplegado, los servicios estarán disponibles en:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8080
- Base de Datos: localhost:5432
- Monitoring: http://localhost:9090 (si está habilitado)
Infra-Artiles-Studio/
├── 📁 docker/
│ ├── Dockerfile.frontend
│ ├── Dockerfile.backend
│ ├── Dockerfile.database
│ └── nginx/
│ └── nginx.conf
├── 📁 terraform/
│ ├── main.tf
│ ├── variables.tf
│ ├── outputs.tf
│ └── modules/
├── 📁 kubernetes/
│ ├── deployments/
│ ├── services/
│ └── configmaps/
├── 📁 scripts/
│ ├── clone-all.sh
│ ├── deploy.sh
│ └── cleanup.sh
├── 📁 monitoring/
│ ├── prometheus/
│ └── grafana/
├── docker-compose.yml
├── docker-compose.prod.yml
├── .env.example
├── Makefile
└── README.md
# Desarrollo
docker-compose up -d # Iniciar todos los servicios
docker-compose down # Detener todos los servicios
docker-compose logs -f [servicio] # Ver logs en tiempo real
docker-compose restart [servicio] # Reiniciar servicio específico
# Producción
docker-compose -f docker-compose.prod.yml up -d# Despliegue completo
./scripts/deploy.sh [ambiente]
# Limpieza de recursos
./scripts/cleanup.sh
# Backup de base de datos
./scripts/backup-db.sh
# Restaurar base de datos
./scripts/restore-db.sh [archivo-backup]make install # Instalación completa
make dev # Entorno de desarrollo
make prod # Entorno de producción
make test # Ejecutar tests
make clean # Limpiar recursos
make logs # Ver logs de todos los servicioscd terraform/aws
terraform init
terraform plan
terraform applycd terraform/azure
terraform init
terraform plan
terraform applycd terraform/gcp
terraform init
terraform plan
terraform apply# Base de datos
DB_HOST=database
DB_PORT=5432
DB_NAME=artiles_studio
DB_USER=artiles_user
DB_PASSWORD=secure_password
# Backend
SPRING_PROFILES_ACTIVE=docker
SERVER_PORT=8080
JWT_SECRET=your_jwt_secret
# Frontend
REACT_APP_API_URL=http://localhost:8080
REACT_APP_ENV=production
# Infraestructura
COMPOSE_PROJECT_NAME=artiles-studio
NGINX_PORT=80
MONITORING_ENABLED=true- Hot reload habilitado
- Debug mode activo
- Base de datos local
- Logs detallados
- Optimizaciones de performance
- SSL/HTTPS habilitado
- Base de datos externa
- Monitoring activo
- Backup automatizado
# Acceder a Prometheus
http://localhost:9090
# Acceder a Grafana
http://localhost:3001
# Usuario: admin / Password: admin- Aplicación: Response time, throughput, errores
- Infraestructura: CPU, memoria, disco, red
- Base de Datos: Conexiones, queries, performance
- Contenedores: Estado, recursos, logs
# Ejecutar tests completos del ecosistema
docker-compose -f docker-compose.test.yml up --abort-on-container-exit
# Tests específicos por servicio
docker-compose exec backend npm run test
docker-compose exec frontend npm run test# Verificar estado de todos los servicios
curl http://localhost:8080/actuator/health
curl http://localhost:3000/health# Generar certificados para desarrollo
./scripts/generate-certs.sh
# Configurar Let's Encrypt para producción
./scripts/setup-letsencrypt.sh- Variables sensibles en archivos
.env - Secrets de Kubernetes para producción
- Vault integration disponible
# docker-compose.prod.yml
services:
backend:
deploy:
replicas: 3
frontend:
deploy:
replicas: 2- Nginx como proxy reverso
- Health checks automáticos
- Session stickiness configurable
Puerto ya en uso
# Verificar puertos ocupados
netstat -tlnp | grep :3000
# Cambiar puerto en .env o detener procesoProblemas de conectividad entre servicios
# Verificar red de Docker
docker network ls
docker network inspect infra-artiles-studio_defaultBase de datos no conecta
# Verificar logs de la base de datos
docker-compose logs database
# Verificar credenciales en .env# Logs de todos los servicios
docker-compose logs -f
# Logs específicos con timestamps
docker-compose logs -f --timestamps backend
# Filtrar logs por nivel
docker-compose logs | grep ERROR- Fork del repositorio principal
- Crear branch para feature:
git checkout -b feature/nueva-funcionalidad - Realizar cambios en infraestructura
- Probar localmente con
docker-compose up - Commit y push:
git push origin feature/nueva-funcionalidad - Crear Pull Request
- Docker: Usar imágenes oficiales y ligeras
- Terraform: Seguir buenas prácticas de IaC
- Documentación: Actualizar README para nuevas funcionalidades
- Testing: Incluir tests de infraestructura
- Issues: GitHub Issues
- Documentación: Wiki del Proyecto
- Desarrollador Principal: @AntRed1
Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE para más detalles.
Desarrollado con ❤️ por el equipo de Artiles Studio
Última actualización: Agosto 2025