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.yml
si nécessaire - Éditer le fichier
.github/workflows/report.yml
si nécessaire (vérifier lebase-path
où 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-pages
comme branche source - Lancer
DashLord scans
dans l'ongletActions
de 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 scans
permet de lancer un scan sur les URLs, il est executé lors d'un changement dans le fichierdashlord.yml
- Le workflow
DashLord report
est lancé à la fin de chaqueDashLord scans
et produit le rapport sous forme de site web.
Ces workflows sont également déclenchables manuellement dans l'onglet "Actions"
- Le fichier
dashlord.yml
permet de paramétrer les urls et quelques options du tableau de bord - Le workflow
.github/workflows/scans.yml
permet de customiser certains scanners, et régler la fréquence de scan (paramètreschedule
positionné par défaut tous les dimanches à minuit) - Le workflow
.github/workflows/report.yml
permet 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:
- presse
DashLord 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: true
dans 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