Skip to content

incubateur-ademe/dashlord

Folders and files

NameName
Last commit message
Last commit date

Latest commit

bd3f1fb · Mar 2, 2025
Feb 24, 2025
Mar 2, 2025
Jun 27, 2024
Nov 23, 2023
Nov 23, 2023
Nov 23, 2023
Dec 12, 2024
Nov 24, 2023
Nov 23, 2023
Mar 2, 2025
Nov 23, 2023

Repository files navigation

DashLord

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 :

Usage

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 le base-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'onglet Actions 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).

GitHub actions

  • Le workflow DashLord scans permet de lancer un scan sur les URLs, il est executé lors d'un changement dans le fichier dashlord.yml
  • Le workflow DashLord report est lancé à la fin de chaque DashLord scans et produit le rapport sous forme de site web.

Ces workflows sont également déclenchables manuellement dans l'onglet "Actions"

Customisation

dashlord.yml

💡 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

Outils

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

Configuration

Certains outils nécessitent une configuration supplémentaire :

dependabot (détection de vulnérabilités issues des dépendances du projet)

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

codescan (analyse statique de la qualité de code)

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

updown.io (Mesures de disponibilité)

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

customCss :

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

Contribute

Vous pouvez contribuer en remontant des issues de qualité, en améliorant la documentation, ou en ajoutant du code.

🤗 Toutes les suggestions sont bienvenues.

cf CONTRIBUTING.md

Dev

DashLord fonctionne en deux étapes :

  1. Acquisition des données : Pour chaque URL, chaque outil est executé et génère un fichier JSON qui sera versionné dans le repository
  2. 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