À propos du projet

ctfd-setup est un utilitaire CLI conçu pour pallier l'absence de support natif de fichier de configuration et d'API de configuration dans CTFd. Il permet aux développeurs de versionner leur configuration de CTFd, rendant les déploiements reproductibles et partageables pour le débogage ou la réplication d'infrastructure. L'outil provisionne des instances CTFd à partir de fichiers de configuration YAML, de flags CLI et de variables d'environnement. Les fonctionnalités clés incluent : - **Configuration YAML** : Définissez les paramètres d'apparence, les identifiants administrateur, le mode et les pages personnalisées dans un fichier YAML versionné. L'outil encourage le versionnage de ce fichier pour faciliter le redéploiement lors des tests ou de la reprise après sinistre. - **Génération de schéma** : Générez un schéma JSON pour la validation YAML avec `ctfd-setup schema`, avec prise en charge IDE pour VSCode et d'autres éditeurs. - **Intégration GitHub Actions** : Utilisez l'action `ctfer-io/ctfd-setup` pour automatiser la configuration de CTFd dans les workflows CI/CD. - **Intégration Drone CI** : Déployez en utilisant l'image Docker `ctferio/ctfd-setup` dans les pipelines Drone CI. - **Support Docker/Kubernetes** : Peut être utilisé comme conteneur initial dans les déploiements Docker et Kubernetes. - **Pages personnalisées** : Déployez des pages personnalisées (comme les pages d'accueil) via la configuration YAML, une fonctionnalité non disponible via les intégrations CLI ou CI. - **Sécurité** : Prend en charge les objets `from_env` pour éviter de commiter des identifiants sensibles comme les mots de passe administrateur. L'outil est construit sur l'API CTFd et reproduit les fonctionnalités de configuration appelées par le frontend. Il est conçu pour les équipes organisant des compétitions Capture The Flag qui ont besoin d'une gestion d'infrastructure fiable et versionnée. Développé en Go, le projet inclut l'analyse CodeQL, OpenSSF Scorecard et les badges de sécurité de la chaîne d'approvisionnement SLSA Level 3, indiquant un accent mis sur la sécurité et les bonnes pratiques.