MCPcopy Index your code
hub / github.com/badtuxx/girus-cli

github.com/badtuxx/girus-cli @v0.5.0 sqlite

repository ↗ · DeepWiki ↗ · release v0.5.0 ↗
93 symbols 295 edges 25 files 71 documented · 76%
README

GIRUS

Elige tu idioma / Escolha seu idioma: Portugués | Español

GIRUS: Plataforma de Laboratorios Interactivos

Versión 0.5.0 Codename: "Maracatu" - Mayo de 2025

Visión General

GIRUS es una plataforma open-source de laboratorios interactivos que permite la creación, gestión y ejecución de entornos de aprendizaje práctico para tecnologías como Linux, Docker, Kubernetes, Terraform y otras herramientas esenciales para profesionales de DevOps, SRE, Desarrollo y Platform Engineering.

Desarrollada por LINUXtips, GIRUS se diferencia por ejecutarse localmente en la máquina del usuario, eliminando la necesidad de infraestructura en la nube o configuraciones complejas. A través de una CLI intuitiva, los usuarios pueden crear rápidamente entornos aislados y seguros donde practicar y perfeccionar sus habilidades técnicas.

Principales Características

  • Ejecución Local: A diferencia de plataformas como Katacoda o Instruqt que funcionan como SaaS, GIRUS se ejecuta directamente en la máquina del usuario mediante contenedores Docker y Kubernetes. Lo mejor de todo: el proyecto es open source y gratuito.
  • Entornos Aislados: Cada laboratorio se ejecuta en un entorno aislado en Kubernetes, garantizando seguridad y evitando conflictos con el sistema host.
  • Interfaz Intuitiva: Terminal interactivo con tareas guiadas y validación automática del progreso.
  • Instalación Fácil: CLI simple que gestiona todo el ciclo de vida de la plataforma (creación, ejecución y eliminación).
  • Actualización Sencilla: Comando update integrado que verifica, descarga e instala nuevas versiones automáticamente.
  • Laboratorios Personalizables: Sistema de plantillas basado en ConfigMaps de Kubernetes que facilita la creación de nuevos laboratorios.
  • Open Source: Proyecto completamente abierto a contribuciones de la comunidad.
  • Multilingüe: Además del portugués, GIRUS ahora ofrece soporte oficial para español. El sistema de plantillas permite agregar fácilmente otros idiomas.

Gestión de Repositorios y Laboratorios

GIRUS implementa un sistema robusto de gestión de repositorios y laboratorios, similar a Helm para Kubernetes. Este sistema permite:

Actualizar la CLI

  • Verificar y Actualizar a la Última Versión: bash girus update Este comando comprueba si hay una versión más reciente del GIRUS CLI disponible, la descarga e instala, ofreciendo la opción de recrear el cluster tras la actualización para garantizar compatibilidad.

Repositorios

  • Agregar Repositorios: bash girus repo add linuxtips https://github.com/linuxtips/labs/raw/main
  • Listar Repositorios: bash girus repo list
  • Eliminar Repositorios: bash girus repo remove linuxtips
  • Actualizar Repositorios: bash girus repo update linuxtips https://github.com/linuxtips/labs/raw/main

Soporte para Repositorios Locales (file://)

GIRUS también admite repositorios locales usando el prefijo file://. Esto es útil para probar laboratorios o desarrollar repositorios sin necesidad de publicarlos en un servidor remoto.

Ejemplo de uso:

# Agregando un repositorio local
./girus repo add mi-local file:///ruta/absoluta/a/tu-repo

Laboratorios

  • Listar Laboratorios Disponibles: bash girus lab list
  • Instalar Laboratorio: bash girus lab install linuxtips linux-basics
  • Buscar Laboratorios: bash girus lab search docker

Instalación

Usando el script de instalación

curl -sSL girus.linuxtips.io | bash

Usando el Makefile

Clona el repositorio y ejecuta make <comando>.

Compilación y Instalación

  • make build (o simplemente make): Compila el binario girus para tu sistema operativo actual y lo coloca en el directorio dist/.
  • make install: Compila el binario (si aún no está compilado) y lo mueve a /usr/local/bin/girus, requiriendo permisos de superusuario (sudo).
  • make clean: Elimina el directorio dist/ y todos los archivos generados de build.
  • make release: Compila el binario girus para múltiples plataformas (Linux, macOS, Windows - amd64 y arm64) y los coloca en dist/.

Versionamiento

GIRUS CLI utiliza versionamiento dinámico basado en etiquetas git. Puedes verificar la versión actual ejecutando:

./girus version

Contribuyendo con Labs

  1. Crea un nuevo directorio en labs/<nombre-del-lab>.
  2. Agrega un archivo lab.yaml con la estructura del lab.
  3. Actualiza index.yaml con la información del nuevo lab.
  4. Envía un Pull Request.

Soporte y Contacto

Licencia

Este proyecto se distribuye bajo la licencia GPL-3.0. Consulta el archivo LICENSE para más detalles.

Core symbols most depended-on inside this repo

T
called by 268
internal/common/i18n.go
NewRepositoryManager
called by 7
internal/repo/index.go
getDefaultIfEmpty
called by 7
internal/common/version.go
CreateProgressBar
called by 6
internal/helpers/helpers.go
Lang
called by 5
internal/common/language.go
IsPodRunning
called by 4
internal/k8s/k8s.go
GetManifest
called by 4
internal/templates/templates.go
saveRepositories
called by 4
internal/repo/index.go

Shape

Function 56
Method 20
Struct 17

Languages

Go100%

Modules by API surface

internal/k8s/k8s.go17 symbols
internal/repo/index.go15 symbols
cmd/status.go13 symbols
internal/repo/repo.go7 symbols
internal/repo/lab.go5 symbols
internal/helpers/helpers.go5 symbols
cmd/update.go4 symbols
cmd/list.go3 symbols
internal/templates/templates.go2 symbols
internal/templates/manifests_test.go2 symbols
internal/common/version.go2 symbols
internal/common/language.go2 symbols

Dependencies from manifests, versioned

github.com/fxamacker/cbor/v2v2.9.0 · 1×
github.com/go-logr/logrv1.4.2 · 1×
github.com/go-openapi/jsonpointerv0.21.0 · 1×
github.com/go-openapi/jsonreferencev0.20.2 · 1×
github.com/go-openapi/swagv0.23.0 · 1×
github.com/google/gnostic-modelsv0.7.0 · 1×
github.com/inconshreveable/mousetrapv1.1.0 · 1×

Datastores touched

(mysql)Database · 1 repos

For agents

$ claude mcp add girus-cli \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact