[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-73260":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":8,"htmlUrl":8,"language":9,"languages":8,"totalLinesOfCode":8,"stars":10,"forks":11,"watchers":12,"openIssues":13,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":14,"stars30d":15,"stars90d":14,"forks30d":14,"starsTrendScore":14,"compositeScore":16,"rankGlobal":8,"rankLanguage":8,"license":17,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":20,"hasPages":20,"topics":21,"createdAt":8,"pushedAt":8,"updatedAt":22,"readmeContent":23,"aiSummary":24,"trendingCount":14,"starSnapshotCount":14,"syncStatus":15,"lastSyncTime":25,"discoverSource":26},73260,"girus-cli","badtuxx\u002Fgirus-cli","badtuxx",null,"Go",2702,270,43,20,0,2,29.3,"GNU General Public License v3.0",false,"main",true,[],"2026-06-12 02:03:11","![GIRUS](girus-logo.png)\n\n**Escolha seu idioma \u002F Elija su idioma:** [Português](README.md) | [Español](README.es.md)\n\n# GIRUS: Plataforma de Laboratórios Interativos\n\nVersão 0.5.0 Codename: \"Maracatu\" - Maio de 2025\n\n## Visão Geral\n\nGIRUS é uma plataforma open-source de laboratórios interativos que permite a criação, gerenciamento e execução de ambientes de aprendizado prático para tecnologias como Linux, Docker, Kubernetes, Terraform e outras ferramentas essenciais para profissionais de DevOps, SRE, Dev e Platform Engineering.\n\nDesenvolvida pela LINUXtips, a plataforma GIRUS se diferencia por ser executada localmente na máquina do usuário, eliminando a necessidade de infraestrutura na nuvem ou configurações complexas. Através de um CLI intuitivo, os usuários podem criar rapidamente ambientes isolados e seguros onde podem praticar e aperfeiçoar suas habilidades técnicas.\n\n## Principais Diferenciais\n\n- **Execução Local**: Diferentemente de outras plataformas como Katacoda ou Instruqt que funcionam como SaaS, o GIRUS é executado diretamente na máquina do usuário através de containers Docker e Kubernetes, e o melhor, é que o projeto é open source e gratuito.\n- **Ambientes Isolados**: Cada laboratório é executado em um ambiente isolado no Kubernetes, garantindo segurança e evitando conflitos com o sistema host\n- **Interface Intuitiva**: Terminal interativo com tarefas guiadas e validação automática de progresso\n- **Fácil Instalação**: CLI simples que gerencia todo o ciclo de vida da plataforma (criação, execução e exclusão)\n- **Atualização Simplificada**: Comando `update` integrado que verifica, baixa e instala novas versões automaticamente\n- **Laboratórios Personalizáveis**: Sistema de templates baseado em ConfigMaps do Kubernetes que facilita a criação de novos laboratórios\n- **Open Source**: Projeto totalmente aberto para contribuições da comunidade\n- **Multilíngue**: Além do português, o GIRUS agora oferece suporte oficial ao espanhol. O sistema de templates permite adicionar facilmente novos idiomas.\n\n## Gerenciamento de Repositórios e Laboratórios\n\nO GIRUS implementa um sistema robusto de gerenciamento de repositórios e laboratórios, similar ao Helm para Kubernetes. Este sistema permite:\n\n### Instalação\n```bash\ncurl -sSL girus.linuxtips.io | bash\n```\n\nVocê precisa ter o Docker instalado em seu computador para poder instalar o Girus.\n\n### Atualização da CLI\n\n- **Verificar e Atualizar para a Última Versão**:\n  ```bash\n  girus update\n  ```\n  Este comando verifica se há uma versão mais recente do GIRUS CLI disponível, baixa e instala a atualização, oferecendo a opção de recriar o cluster após a atualização para garantir compatibilidade.\n\n### Repositórios\n\n- **Adicionar Repositórios**: \n  ```bash\n  girus repo add linuxtips https:\u002F\u002Fgithub.com\u002Flinuxtips\u002Flabs\u002Fraw\u002Fmain\n  ```\n\n- **Listar Repositórios**:\n  ```bash\n  girus repo list\n  ```\n\n- **Remover Repositórios**:\n  ```bash\n  girus repo remove linuxtips\n  ```\n\n- **Atualizar Repositórios**:\n  ```bash\n  girus repo update linuxtips https:\u002F\u002Fgithub.com\u002Flinuxtips\u002Flabs\u002Fraw\u002Fmain\n  ```\n\n### Suporte a Repositórios Locais (file:\u002F\u002F)\n\nO GIRUS agora suporta repositórios locais usando o prefixo `file:\u002F\u002F`. Isso é útil para testar laboratórios ou desenvolver repositórios sem precisar publicar em um servidor remoto.\n\n#### Exemplo de uso:\n\n```bash\n# Adicionando um repositório local\n.\u002Fgirus repo add meu-local file:\u002F\u002F\u002Fcaminho\u002Fabsoluto\u002Fpara\u002Fseu-repo\n\n# Exemplo prático:\n.\u002Fgirus repo add test-repo file:\u002F\u002F\u002Fhome\u002Fjeferson\u002FREPOS\u002Fteste\u002Fgirus-cli\u002Ftest-repo\n```\n\n> **Nota:** O caminho após `file:\u002F\u002F` deve ser absoluto e apontar para o diretório onde está o `index.yaml` do repositório.\n\nVocê pode listar, buscar e instalar laboratórios normalmente a partir de repositórios locais, assim como faria com repositórios remotos.\n\n### Laboratórios\n\n- **Listar Laboratórios Disponíveis**:\n  ```bash\n  girus lab list\n  ```\n\n- **Instalar Laboratório**:\n  ```bash\n  girus lab install linuxtips linux-basics\n  ```\n\n- **Buscar Laboratórios**:\n  ```bash\n  girus lab search docker\n  ```\n\n### Estrutura de Repositórios\n\nOs repositórios seguem uma estrutura padronizada:\n\n```\nrepositorio\u002F\n├── index.yaml           # Índice do repositório\n└── labs\u002F               # Diretório contendo os laboratórios\n    ├── lab1\u002F\n    │   ├── lab.yaml    # Definição do laboratório\n    │   └── assets\u002F     # Recursos do laboratório (opcional)\n    └── lab2\u002F\n        ├── lab.yaml\n        └── assets\u002F\n```\n\n### Formato dos Arquivos\n\n#### index.yaml\n```yaml\napiVersion: v1\ngenerated: \"2024-03-20T10:00:00Z\"\nentries:\n  lab-name:\n    - name: lab-name\n      version: \"1.0.0\"\n      description: \"Descrição do laboratório\"\n      keywords:\n        - keyword1\n        - keyword2\n      maintainers:\n        - \"Nome \u003Cemail@exemplo.com>\"\n      url: \"https:\u002F\u002Fgithub.com\u002Fseu-repo\u002Fraw\u002Fmain\u002Flabs\u002Flab-name\u002Flab.yaml\"\n      created: \"2024-03-20T10:00:00Z\"\n      digest: \"sha256:hash-do-arquivo\"\n```\n\n#### lab.yaml\n```yaml\napiVersion: girus.linuxtips.io\u002Fv1\nkind: Lab\nmetadata:\n  name: lab-name\n  version: \"1.0.0\"\n  description: \"Descrição do laboratório\"\n  author: \"Nome do Autor\"\n  created: \"2024-03-20T10:00:00Z\"\nspec:\n  environment:\n    image: ubuntu:22.04\n    resources:\n      cpu: \"1\"\n      memory: \"1Gi\"\n    volumes:\n      - name: workspace\n        mountPath: \u002Fworkspace\n        size: \"1Gi\"\n\n  tasks:\n    - name: \"Nome da Tarefa\"\n      description: \"Descrição da tarefa\"\n      steps:\n        - description: \"Descrição do passo\"\n          command: \"comando\"\n          expectedOutput: \"saída esperada\"\n          hint: \"Dica para o usuário\"\n\n  validation:\n    - name: \"Nome da Validação\"\n      description: \"Descrição da validação\"\n      checks:\n        - command: \"comando\"\n          expectedOutput: \"saída esperada\"\n          errorMessage: \"Mensagem de erro\"\n```\n\n## Arquitetura\n\nO projeto GIRUS é composto por quatro componentes principais:\n\n1. **GIRUS CLI**: Ferramenta de linha de comando que gerencia todo o ciclo de vida da plataforma\n2. **Backend**: API Golang que orquestra os laboratórios através da API do Kubernetes\n3. **Frontend**: Interface web React que fornece acesso ao terminal interativo e às tarefas\n4. **Templates de Laboratórios**: Definições YAML para os diferentes laboratórios disponíveis\n\n### Diagrama de Fluxo de Arquitetura\n\n```\n┌─────────────┐     ┌──────────────┐     ┌──────────────┐\n│  GIRUS CLI  │────▶│ Kind Cluster │────▶│ Kubernetes   │\n└─────────────┘     └──────────────┘     └──────────────┘\n                                               │\n                                               ▼\n┌─────────────┐     ┌──────────────┐     ┌──────────────┐\n│  Terminal   │◀───▶│   Frontend   │◀───▶│   Backend    │\n│ Interativo  │     │    (React)   │     │     (Go)     │\n└─────────────┘     └──────────────┘     └──────────────┘\n                                               │\n                                               ▼\n                                         ┌──────────────┐\n                                         │  Templates   │\n                                         │     Labs     │\n                                         └──────────────┘\n```\n\n## Componentes Detalhados\n\n### GIRUS CLI\n\nGIRUS (GIRUS Is Really Useful System) é uma ferramenta CLI desenvolvida pela LINUXtips para criar e gerenciar ambientes de laboratório práticos.\n\n## Instalação\n\n### Usando o script de instalação\n\n```bash\ncurl -sSL girus.linuxtips.io | bash\n```\n\n### Usando o Makefile\n\nClone o repositório e execute `make \u003Ccomando>`.\n\nAqui estão os comandos disponíveis:\n\n### Compilação e Instalação\n\n* **`make build`** (ou simplesmente `make`): Compila o binário `girus` para o seu sistema operacional atual e o coloca no diretório `dist\u002F`. Este é o comando padrão se você executar `make` sem argumentos.\n* **`make install`**: Compila o binário (se ainda não estiver compilado) e o move para `\u002Fusr\u002Flocal\u002Fbin\u002Fgirus`, tornando-o acessível globalmente no seu sistema. Requer permissões de superusuário (`sudo`).\n* **`make clean`**: Remove o diretório `dist\u002F` e todos os arquivos de build gerados.\n* **`make release`**: Compila o binário `girus` para múltiplas plataformas (Linux, macOS, Windows - amd64 e arm64) e os coloca no diretório `dist\u002F`.\n\n### Versionamento\n\nO GIRUS CLI utiliza um sistema de versionamento dinâmico baseado em git tags. O processo de build detecta automaticamente a versão com base nos seguintes critérios:\n\n* Se existir uma tag git (ex: `v0.3.0`), essa versão será utilizada removendo o prefixo `v` (resultado: `0.3.0`)\n* Se não existirem tags, será utilizada a versão padrão `0.3.0`\n* Para builds locais, você pode compilar com uma versão específica através do seguinte comando:\n\n```bash\ngo build -o girus -ldflags=\"-X 'github.com\u002Fbadtuxx\u002Fgirus-cli\u002Finternal\u002Fcommon.Version=0.5.0'\" .\u002Fmain.go\n```\n\nPara verificar a versão atual do binário, execute:\n\n```bash\n.\u002Fgirus version\n```\n\nOs workflows CI\u002FCD do projeto também utilizam este mecanismo de versionamento dinâmico para as builds do Docker e artefatos de release, garantindo consistência em todo o processo de build.\n\n### Gerenciamento de Dependências (Go Modules)\n\n* **`make check-updates`**: Verifica se há atualizações disponíveis para as dependências Go do projeto.\n* **`make upgrade-all`**: Atualiza todas as dependências Go para suas versões mais recentes e executa `go mod tidy`.\n* **`make upgrade MODULE=\u003Cnome\u002Fdo\u002Fmodulo>`**: Atualiza uma dependência Go específica para a versão mais recente. Substitua `\u003Cnome\u002Fdo\u002Fmodulo>` pelo caminho do módulo (ex: `make upgrade MODULE=github.com\u002Fspf13\u002Fcobra`).\n* **`make tidy`**: Executa `go mod tidy` para remover dependências não utilizadas e limpar os arquivos `go.mod` e `go.sum`.\n* **`make deps`**: Exibe o gráfico de dependências do projeto.\n\n### Primeiros Passos\n## Criando seu Primeiro Cluster\nApós instalar o GIRUS, o primeiro passo é criar um cluster Kubernetes local usando Kind:\n\n  ```bash\n  girus create cluster\n  ```\n## Este comando irá:\n\n- **Verificar se o Docker está rodando**\n- **Instalar o Kind (se não estiver presente)**\n- **Criar um cluster Kubernetes local**\n- **Instalar os componentes do GIRUS (backend, frontend, etc.)**\n- **Configurar os serviços necessários**\n\n> **Nota:** O processo pode levar alguns minutos na primeira execução, pois precisa baixar as imagens Docker necessárias.\n\n- **Verificando o Status do Cluster**:\nPara verificar se o cluster foi criado com sucesso:\n  ```bash\n  # Verificar clusters Kind disponíveis\n  kind get clusters\n\n  # Verificar pods do GIRUS\n  kubectl get pods -n girus\n\n  # Verificar serviços do GIRUS\n  kubectl get services -n girus\n  ```\n\n**Gerenciando o Cluster**:\nPara verificar o status:\n  ```bash\n  # Listar clusters disponíveis\n  kind get clusters\n\n  # Verificar se o cluster está saudável\n  kubectl cluster-info\n  ```\n\n **Deletar o Cluster**:\n\n  ```bash\n  # Remover o cluster quando não precisar mais\n  kind delete cluster --name girus\n  ```\n**Recriar o Cluster**:\n\n  ```bash\n  # Se precisar recriar o cluster\n  kind delete cluster --name girus\n  girus create cluster\n  ```\n\n## Repositório de Labs\n\nEste repositório contém uma coleção de labs práticos para diferentes tecnologias, organizados nas seguintes categorias:\n\n### AWS Labs\n- AWS LocalStack com Terraform\n- AWS S3 Storage\n- AWS DynamoDB NoSQL\n- AWS Lambda Serverless\n\n### Terraform Labs\n- Fundamentos do Terraform\n- Terraform com AWS\n- Provisioners e Módulos no Terraform\n\n### Kubernetes Labs\n- Fundamentos do Kubernetes\n- Deployment no Kubernetes\n- Exploração de Recursos\n- Serviços e Redes\n- ConfigMaps e Secrets\n- CronJobs\n\n### Docker Labs\n- Fundamentos do Docker\n- Gerenciamento de Containers\n- Fundamentos de Redes\n- Volumes\n- Docker Compose\n\n### Linux Labs\n- Comandos Básicos\n- Gerenciamento de Usuários\n- Permissões de Arquivos\n- Processamento de Texto\n- Gerenciamento de Processos\n- Shell Script\n- Monitoramento de Sistema\n\n## Usando os Labs\n\n### Adicionar o Repositório\n\n```bash\n# Adicionar o repositório oficial\ngirus repo add girus-cli https:\u002F\u002Fraw.githubusercontent.com\u002Fbadtuxx\u002Fgirus-cli\u002Fmain\u002Findex.yaml\n\n# Ou adicionar localmente para desenvolvimento\ngirus repo add girus-cli file:\u002F\u002F\u002Fcaminho\u002Fpara\u002Fgirus-cli\n```\n\n### Listar Labs Disponíveis\n\n```bash\ngirus lab list\n```\n\n### Iniciar um Lab\n\n```bash\ngirus lab start \u003Cnome-do-lab>\n```\n\nPor exemplo:\n```bash\ngirus lab start aws_localstack_terraform\n```\n\n## Contribuindo com Labs\n\nPara contribuir com novos labs, siga estas etapas:\n\n1. Crie um novo diretório em `labs\u002F\u003Cnome-do-lab>`\n2. Adicione um arquivo `lab.yaml` com a estrutura do lab\n3. Atualize o `index.yaml` com as informações do novo lab\n4. Envie um Pull Request\n\n### Estrutura do Lab\n\n```yaml\nname: nome-do-lab\ntitle: \"Título do Lab\"\ndescription: \"Descrição detalhada do lab\"\nduration: 45m\nimage: \"ubuntu:20.04\"\ntasks:\n  - name: \"Nome da Tarefa\"\n    description: \"Descrição da tarefa\"\n    steps:\n      - \"Passo 1: Faça isso\"\n      - \"Passo 2: Execute aquilo\"\n    validation:\n      - command: \"comando para verificar\"\n        expectedOutput: \"saída esperada\"\n        errorMessage: \"Mensagem de erro personalizada\"\n```\n\n## Suporte e Contato\n\n* **GitHub Issues**: [github.com\u002Fbadtuxx\u002Fgirus-cli\u002Fissues](https:\u002F\u002Fgithub.com\u002Fbadtuxx\u002Fgirus-cli\u002Fissues)\n* **GitHub Discussions**: [github.com\u002Fbadtuxx\u002Fgirus-cli\u002Fdiscussions](https:\u002F\u002Fgithub.com\u002Fbadtuxx\u002Fgirus-cli\u002Fdiscussions)\n* **Discord da Comunidade**: [discord.gg\u002Flinuxtips](https:\u002F\u002Fdiscord.gg\u002Flinuxtips)\n\n## Licença\n\nEste projeto é distribuído sob a licença GPL-3.0. Veja o arquivo [LICENSE](LICENSE) para mais detalhes.\n\n## Agradecimentos\n\nO GIRUS é possível graças à contribuição de muitas pessoas e projetos:\n\n- **Equipe LINUXtips**: Pelo desenvolvimento e manutenção do projeto\n- **Contribuidores**: Desenvolvedores, criadores de conteúdo e tradutores\n- **Projetos Open Source**: Go, React, Kubernetes, Kind, Docker e muitos outros\n- **Comunidade**: Todos os usuários e apoiadores que acreditam no projeto\n\n---\n\n## FAQ - Perguntas Frequentes\n\n**Q: O GIRUS funciona offline?**  \nA: Sim, após a instalação inicial e download das imagens, o GIRUS pode funcionar completamente offline.\n\n**Q: Quanto consome de recursos da minha máquina?**  \nA: O GIRUS é otimizado para ser leve. Um cluster básico consome aproximadamente 1-2GB de RAM e requer cerca de 5GB de espaço em disco.\n\n**Q: Posso criar laboratórios personalizados para minha equipe\u002Fempresa?**  \nA: Absolutamente! O sistema de templates é flexível e permite a criação de laboratórios específicos para suas necessidades.\n\n**Q: Como faço para atualizar o GIRUS para a versão mais recente?**  \nA: Execute o comando `girus update`. O comando verificará se há uma versão mais recente disponível e, se houver, executará a atualização automaticamente. Após a atualização, você terá a opção de recriar o cluster para garantir a compatibilidade com as novas funcionalidades.\n\n**Q: O GIRUS funciona em ambientes corporativos com restrições de rede?**  \nA: Sim, após o download inicial das imagens, o GIRUS opera localmente sem necessidade de conexão externa.\n\n**Q: Posso contribuir com novos laboratórios para o projeto?**  \nA: Definitivamente! Contribuições são bem-vindas e valorizadas. Consulte a seção [\"Contribuição e Comunidade\"](#contribui%C3%A7%C3%A3o-e-comunidade) para detalhes.\n","GIRUS 是一个开源的交互式实验室平台，专为Linux、Docker、Kubernetes等技术的学习与实践设计。其核心功能包括本地执行、环境隔离、直观的命令行界面（CLI）以及易于安装和更新的特点。通过利用Docker和Kubernetes容器技术，GIRUS能够在用户自己的机器上创建安全且独立的学习环境，避免了对云端资源的需求或复杂的配置过程。该平台非常适合DevOps工程师、SREs以及其他IT专业人士用来提升他们的技术技能，同时也支持多语言界面，便于不同背景的学习者使用。此外，GIRUS还提供了强大的仓库管理和自定义实验室模板的功能，促进了社区贡献和个性化学习内容的发展。","2026-06-11 03:44:44","high_star"]