Skip to main content

Terratest Web UI - Interfaz web para ejecutar y gestionar tests de Terraform en contenedores Docker

Project description

🚀 Terratest Web UI

Python License Status

Terratest Web UI es una interfaz web moderna y minimalista para ejecutar y gestionar tests de Terraform en contenedores Docker efímeros. Proporciona una experiencia visual intuitiva para desarrolladores que necesitan probar infraestructura como código de forma aislada y reproducible.

✨ Características

  • 🎨 Interfaz moderna con diseño dark minimalista
  • 🐳 Ejecución en Docker - Contenedores efímeros para cada test
  • 📊 Visualización de resultados - Vista JSON raw + resumen visual
  • 🔐 Soporte para credenciales - SSH, Terraform Cloud, AWS
  • 📁 Gestión de jobs - Historial, navegación de archivos, logs con colores
  • 🖼️ Gestión de imágenes Docker - Construir, seleccionar y eliminar imágenes
  • API REST con FastAPI para integración
  • 🎯 Modales personalizados - Confirmaciones elegantes sin alerts nativos

📦 Instalación

Desde PyPI (cuando se publique)

pip install terratest

Desde código fuente

git clone https://github.com/yourusername/terratest.git
cd terratest
pip install -e .

Con Poetry

poetry add terratest

🚀 Uso Rápido

Iniciar Web UI

terratest web

Abre tu navegador en http://localhost:8765

CLI

# Ejecutar un módulo de Terraform
terratest run ./examples/basic

# Ver ayuda
terratest --help

🐳 Requisitos

  • Python 3.12+
  • Docker instalado y corriendo
  • (Opcional) Poetry para desarrollo

📖 Configuración

SSH para Repositorios Privados

  1. Click en el icono de configuración ⚙️
  2. Habilita "Autenticación SSH"
  3. Especifica el path a tus claves SSH (opcional, usa ~/.ssh por defecto)

Terraform Cloud

  1. Abre configuración
  2. Ingresa tu Token de Terraform Cloud
  3. Especifica Organización y Workspace

AWS Credentials

  1. Abre configuración
  2. Ingresa Access Key ID y Secret Access Key
  3. (Opcional) Session Token para credenciales temporales

🏗️ Estructura del Proyecto

terratest/
├── terratest/
│   ├── cli/           # Comandos CLI
│   ├── core/          # Lógica de negocio
│   ├── web/           # Web UI
│   │   ├── static/    # HTML, CSS, JS
│   │   └── routes/    # API endpoints
│   ├── utils/         # Utilidades
│   └── models/        # Modelos de datos
├── docker/            # Dockerfiles
├── examples/          # Ejemplos de Terraform
└── tests/             # Tests unitarios

🎨 Capturas

Dashboard Principal

  • Lista de jobs ejecutados ordenados por fecha
  • Botones para ejecutar, eliminar y refrescar
  • Indicador de estado de imagen Docker

Visualización de Resultados

  • Split view: JSON raw a la izquierda, resumen visual a la derecha
  • Plan summary con contadores (add/change/destroy)
  • Lista de recursos con tipos y acciones
  • Outputs de Terraform

Navegación de Archivos

  • Breadcrumb navigation
  • Visor de logs con colores (errores en rojo, warnings en naranja)
  • Limpieza automática de códigos ANSI

🛠️ Desarrollo

Setup

# Clonar repositorio
git clone https://github.com/yourusername/terratest.git
cd terratest

# Instalar dependencias
poetry install

# Activar entorno virtual
poetry shell

# Correr en modo desarrollo
poetry run terratest web

Construir Imagen Docker

docker build -t terratest/terraform:latest -f docker/Dockerfile.terraform .

Tests

pytest tests/

📝 Roadmap

  • Publicar en PyPI
  • Tests de integración completos
  • Soporte para múltiples versiones de Terraform
  • Webhooks para notificaciones
  • Exportar resultados a PDF/HTML
  • Integración con CI/CD
  • Soporte para providers adicionales (Azure, GCP)

🤝 Contribuciones

¡Las contribuciones son bienvenidas! Por favor:

  1. Fork el proyecto
  2. Crea una rama para tu feature (git checkout -b feature/AmazingFeature)
  3. Commit tus cambios (git commit -m 'Add some AmazingFeature')
  4. Push a la rama (git push origin feature/AmazingFeature)
  5. Abre un Pull Request

📄 Licencia

Distribuido bajo la licencia MIT. Ver LICENSE para más información.

👤 Autor

Yorlin

🙏 Agradecimientos

  • FastAPI por el framework web
  • Typer por la CLI
  • Docker SDK for Python
  • Font Awesome por los iconos

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

terratest-0.1.1.tar.gz (36.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

terratest-0.1.1-py3-none-any.whl (41.9 kB view details)

Uploaded Python 3

File details

Details for the file terratest-0.1.1.tar.gz.

File metadata

  • Download URL: terratest-0.1.1.tar.gz
  • Upload date:
  • Size: 36.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for terratest-0.1.1.tar.gz
Algorithm Hash digest
SHA256 4e3399ce582f589b285f895beac0fa1b6d493c55e43484843e3c097cc318cf32
MD5 624566e5f25dba20d036fba18687872b
BLAKE2b-256 14c2f999848c6926a77269dcb613b0a32c05a05986683507cdab190774ce1ffc

See more details on using hashes here.

File details

Details for the file terratest-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: terratest-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 41.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for terratest-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0f9af9aa365577531e2816c05c54929333a29873cae1d4f671af2a0f6854295b
MD5 d6183334d83a2123242c34913fab0ad6
BLAKE2b-256 381902c5a4cf4ca5224adfa3ae9e6a79d28f30af5429d24f195393588b8c668c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page