Tableau de bord des bonnes pratiques techniques
L'acquisition des données ainsi que la génération du rapport sont automatisés par des GitHub actions
Exemples :
- https://dashlord.incubateur.net
- https://socialgouv.github.io/dashlord-fabrique
- https://mtes-mct.github.io/dashlord
- https://socialgouv.github.io/dnum-dashboard
⚠️ DashLord utilise le Système de Design de l'État et s'adresse donc uniquement aux développeurs et aux concepteurs, qu'ils soient agents publics ou prestataires pour des sites Internet de l'État. cf conditions d'utilisation
Pour déployer votre version de DashLord :
- Créer un nouveau repository à partir du template dashlord
- Éditer le fichier
dashlord.yml - Éditer le fichier
.github/workflows/scans.ymlsi nécessaire - Éditer le fichier
.github/workflows/report.ymlsi nécessaire (vérifier lebase-pathoù sera publié le site web, il s'agira du nom du repository) - Dans les settings du repository, dans "Actions", positionner "Workflows permissions" sur "Read and write"
- Dans les settings du repository, dans "Pages", selectionner
gh-pagescomme branche source - Lancer
DashLord scansdans l'ongletActionsde votre projet GitHub
Une fois les scans terminés, un rapport sera généré dans la branche gh-pages du repository, il sera disponible sur https://[organisation].github.io/[repository] (publiquement).
- Le workflow
DashLord scanspermet de lancer un scan sur les URLs, il est executé lors d'un changement dans le fichierdashlord.yml - Le workflow
DashLord reportest lancé à la fin de chaqueDashLord scanset produit le rapport sous forme de site web.
Ces workflows sont également déclenchables manuellement dans l'onglet "Actions"
- Le fichier
dashlord.ymlpermet de paramétrer les urls et quelques options du tableau de bord - Le workflow
.github/workflows/scans.ymlpermet de customiser certains scanners, et régler la fréquence de scan (paramètreschedulepositionné par défaut tous les dimanches à minuit) - Le workflow
.github/workflows/report.ymlpermet de générer le rapport web en se basant sur SocialGouv/dashlord-actions/report.
💡 Bonne pratique : enlever les slashs à la fin des urls
title: Dashboard title
description: Bonnes pratiques techniques
entity: Ministères sociaux
footer: Powered by SocialGouv
# `tools` allows to activate only some of the tools in the report
tools:
404: true
screenshot: true
nmap: true
zap: true
wappalyzer: true
http: true
testssl: true
lighthouse: true
thirdparties: true
nuclei: false
updownio: true
dependabot: true
codescan: true
stats: true
declaration-a11y: true
trivy: true
ecoindex: true
sonarcloud: true
urls:
- url: https://www.free.fr
title: Homepage free.fr
tags:
- telecom
- provider
repositories: # pour récupérer les alertes de sécu de ces repos
- free/free-ui
- free/free-css
docker: # pour scanner les images avec trivy
- ghcr.io/socialgouv/fabrique/frontend
- ghcr.io/socialgouv/fabrique/backend
tools: # pour desactiver certains outils
nmap: false
pages: # pour lancer lighthouse sur des pages supplémentaires
- /profil
- /mentions
- url: https://www.lemonde.fr
title: Homepage lemonde.fr
tags:
- presseDashLord peut monitorer le niveau de performance et de disponibilité de vos applications. (mise en place = 10mins)
- Créez un compte sur updown.io
- Ajoutez-y les urls à monitorer (telles que définies dans dashlord.yml)
- Activez l'outil avec
updownio: truedans le fichier dashlord.yml - Ajouter votre clé d'API updown.io "readonly" dans un secret GitHub nommé
UPDOWNIO_API_KEY(onglet settings/secrets)
▶ Au prochain scan, les informations updown.io seront remontées dans DashLord
Chaque outil peut être activé/désactivé dans le rapport avec la clé tools de dashlord.yml.
| Repo | desc |
|---|---|
| SocialGouv/dashlord-actions | Dashlord specific actions |
| SocialGouv/dashlord-nuclei-action | Dump nuclei result |
| SocialGouv/httpobs-action | Dump Mozilla HTTP Observatory result |
| SocialGouv/thirdparties-action | Dump third party scripts scan result |
| SocialGouv/wappalyzer-action | Dump Wappalyzer scan result |
| MTES-MCT/dependabotalerts-action | Dump Github dependabot security alerts |
| MTES-MCT/codescanalerts-action | Dump Github CodeQL security alerts |
| MTES-MCT/updownio-action | Dump updown.io stats |
| MTES-MCT/nmap-action | Dump nmap port scan stats |
| MTES-MCT/stats-action | Detect /stats page. |
| SocialGouv/thirdparties | thirdparty scripts database |
| swinton/screenshot-website | grab website screenshot |
| SocialGouv/detect-404-action | detect 404 errors |
| aquasecurity/trivy-action | Scan docker images vulnerabilities |
Vous pouvez contribuer en remontant des issues de qualité, en améliorant la documentation, ou en ajoutant du code.
🤗 Toutes les suggestions sont bienvenues.
DashLord fonctionne en deux étapes :
- Acquisition des données : Pour chaque URL, chaque outil est executé et génère un fichier JSON qui sera versionné dans le repository
- Génération du rapport : À partir des données existantes, l'action report aggrège, compresse les résultats et produit un rapport web statique.
Voir aussi : SocialGouv/dashlord-actions