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
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" (si l'option n'est pas disponible pour le dépôt, activez la d'abord au niveau de l'organisation)
- Dans les settings du repository, dans "Pages", selectionner
gh-pages
comme branche source (vous pouvez soit la créer en amont soit la selectionner après le premier scan qui la créera) - 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: My websites
description: Best practices monitoring
entity: My team name
footer: Powered by SocialGouv
# enable this only if you're an official gouv.fr organisation
marianne: false
# `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
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 |
Certains outils nécessitent une configuration supplémentaire :
ajouter un secret GitHub DEPENDABOTALERTS_TOKEN
et lui donner pour valeur un token d'accès personnel ayant droit de lecture sur "Dependabot alerts" en sélectionnant les dépôts à scanner
ajouter un secret GitHub CODESCANALERTS_TOKEN
et lui donner pour valeur un token d'accès personnel ayant droit de lecture sur "Code scanning alerts" en sélectionnant les dépôts à scanner
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
You can host the css file in your Dashlord repo but the link needs to point to a file with the correct Content-Type Header. See here for details
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