Sobre o projeto
ctfd-setup é um utilitário de CLI projetado para resolver a falta de suporte nativo do CTFd a arquivos de configuração e API de setup. Ele permite que desenvolvedores versionem sua configuração de setup do CTFd, tornando as implantações reproduzíveis e compartilháveis para depuração ou replicação de infraestrutura.
A ferramenta provisiona instâncias CTFd a partir de arquivos de configuração YAML, flags de CLI e variáveis de ambiente. Os principais recursos incluem:
- **Configuração YAML**: Defina configurações de aparência, credenciais de administrador, modo e páginas personalizadas em um arquivo YAML versionado. A ferramenta incentiva o versionamento desse arquivo para facilitar a reimplantação durante testes ou recuperação de desastres.
- **Geração de Schema**: Gere um JSON Schema para validação de YAML usando `ctfd-setup schema`, com suporte a IDE para VSCode e outros editores.
- **Integração com GitHub Actions**: Use a ação `ctfer-io/ctfd-setup` para automatizar a configuração do CTFd em fluxos de trabalho de CI/CD.
- **Integração com Drone CI**: Implante usando a imagem Docker `ctferio/ctfd-setup` em pipelines do Drone CI.
- **Suporte a Docker/Kubernetes**: Pode ser usado como contêiner inicial em implantações Docker e Kubernetes.
- **Páginas Personalizadas**: Implante páginas personalizadas (como páginas iniciais) via configuração YAML, um recurso não disponível por meio de integrações de CLI ou CI.
- **Segurança**: Suporta objetos `from_env` para evitar o comprometimento de credenciais sensíveis, como senhas de administrador.
A ferramenta é construída sobre a API do CTFd e mapeia a funcionalidade de setup que o frontend chama. Ela é projetada para equipes que executam competições Capture The Flag que precisam de gerenciamento confiável e versionado de infraestrutura.
Construído em Go, o projeto inclui análise CodeQL, OpenSSF Scorecard e selos de segurança de cadeia de suprimentos SLSA Nível 3, indicando um foco em segurança e boas práticas.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.