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.0.tar.gz (35.8 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.0-py3-none-any.whl (40.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: terratest-0.1.0.tar.gz
  • Upload date:
  • Size: 35.8 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.0.tar.gz
Algorithm Hash digest
SHA256 83f10f4faeb1efc32b8e1217e443d84d758607d96ac0e84a890df4702e54d568
MD5 2274a423c12ef514fd7fe9201d5d7fc7
BLAKE2b-256 787cc6149bda551ab4fe441de5bf18633b54208c745f14994cf2da8016ad668c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: terratest-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 40.7 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4335d88b94dc574efc56b604748f15487558ef800e2b4a3ed4ce400e45a0f045
MD5 5cc9517ff6bb0bb60425d4b2a9a1b1b4
BLAKE2b-256 de1abeff199402c796432564397cf7a934f078248a4d8f7cce1f1c998f3d86eb

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