0 Votes

Accueil

Modifié par john le 2026/09/26 16:56

Page d'accueil de Dashy : services auto-hébergés avec leur état, supervision d'AdGuard Home et de Nextcloud, horloges et widgets divers. conf.yml contient aussi la configuration commune (appConfig) et la liste des pages. Déploiement : Dashy.

appConfig

appConfig:
 theme: dracula
 layout: auto
 iconSize: small
 backgroundImg: /item-icons/ping.jpg
 startingView: default
 defaultOpeningMethod: newtab
 statusCheck: false
 statusCheckInterval: 0
 faviconApi: allesedv
 enableMultiTasking: false
 widgetsAlwaysUseProxy: false
 webSearch:
   searchEngine: duckduckgo
   openingMethod: newtab
   searchBangs: {}
   disableWebSearch: false
 enableFontAwesome: true
 auth:
   enableGuestAccess: true
   users:
      - user: <UTILISATEUR_DASHY>
       hash: <HASH_SHA256_MOT_DE_PASSE>
       type: admin
   enableHeaderAuth: false
   headerAuth:
     userHeader: REMOTE_USER
     proxyWhitelist: []
   enableKeycloak: false
 enableMaterialDesignIcons: false
 hideComponents:
   hideHeading: false
   hideNav: false
   hideSearch: false
   hideSettings: false
   hideFooter: false
 showSplashScreen: false
 preventWriteToDisk: false
 preventLocalSave: false
 disableConfiguration: false
 disableConfigurationForNonAdmin: true
 allowConfigEdit: true
 enableServiceWorker: false
 disableContextMenu: false
 disableUpdateChecks: false
 disableSmartSort: false
 enableErrorReporting: false

pages

pages:
  - name: bookmarks
   path: bookmark.yml
  - name: cpu
   path: cpu.yml
  - name: news
   path: news.yml

pageInfo

pageInfo:
 title: Batcave Lab
 description: Batman n'attrape pas de coup de soleil
 navLinks:
    - title: <SITE_PERSO>
     target: newtab
     path: https://<SITE_PERSO>

Widgets

WidgetSectionAfficheIdentifiants
public-holidaysJours FériésJours fériés des 6 prochains mois—
clockPortainer, International TimeHeure d'un fuseau horaire—
adguard-stats, adguard-filter-status, adguard-top-domainsRéseauStatistiques DNS, état du filtrage, domaines les plus demandésCompte de l'interface web d'AdGuard Home
iframeMediasBannière de soutien à l'April—
chucknorris, jokeMedias, Stats nextcloudBlague au hasard—
imageplopplopCartes github-readme-statsJeton GitHub, côté github-readme-stats
public-ipplopplopIP publique et localisation approximative—
nextcloud-systemStats nextcloudCharge CPU, mémoire et versions de NextcloudMot de passe d'application Nextcloud

Sections

Jours Fériés

sections:
  - name: Jours Fériés
   icon: 🏖️
   widgets:
      - type: public-holidays
       useProxy: false
       options:
         country: FR
         monthsToShow: 6
         lang: fr
       id: 0_1433_publicholidays
   displayData:
     sortBy: default
     rows: 1
     cols: 1
     collapsed: false
     hideForGuests: false
   items: []

Portainer

sections:
  - name: Portainer
   icon: docker-compose.png
   displayData:
     rows: 1
     cols: 1
     sortBy: random
     collapsed: false
     hideForGuests: false
   widgets:
      - type: clock
       options:
         timeZone: Europe/Paris
         format: fr-FR
         hidedate: false
         chartColor: '#f7931a'
       id: 0_948_clock
   items:
      - title: portainer
       description: manage containers
       icon: portainer.svg
       url: https://<IP_SERVEUR>:9443/
       target: newtab
       statusCheck: true
       statusCheckAllowInsecure: true
       id: 0_948_portainer

hidedate et chartColor ne sont pas des options du widget clock : elles sont ignorées. L'option qui masque la date s'écrit hideDate.

Réseau

sections:
  - name: Réseau
   icon: 🛡️
   displayData:
     sortBy: random
     rows: 1
     cols: 1
     collapsed: false
     hideForGuests: false
   items:
      - title: AdGuard Home
       description: DNS ad-blocking (RPi)
       icon: hl-adguard-home
       url: https://adguard.<DOMAINE>/
       target: newtab
       statusCheck: true
       statusCheckAllowInsecure: true
       id: 0_2201_adguard
   widgets:
      - type: adguard-stats
       useProxy: true
       options:
         hostname: http://<IP_ADGUARD>:3000
         username: <UTILISATEUR_ADGUARD>
         password: <MOT_DE_PASSE_ADGUARD>
       id: 0_2201_adguardwidget
      - type: adguard-filter-status
       useProxy: true
       options:
         hostname: http://<IP_ADGUARD>:3000
         username: <UTILISATEUR_ADGUARD>
         password: <MOT_DE_PASSE_ADGUARD>
       id: 1_2201_adguardfilter
      - type: adguard-top-domains
       useProxy: true
       options:
         hostname: http://<IP_ADGUARD>:3000
         username: <UTILISATEUR_ADGUARD>
         password: <MOT_DE_PASSE_ADGUARD>

Widgets AdGuard Home : statistiques DNS, état du filtrage, domaines les plus demandés.

  • username / password : le compte de l'interface web d'AdGuard Home, défini à l'installation.
  • useProxy: true : AdGuard Home n'envoie pas d'en-têtes CORS. <IP_ADGUARD> doit figurer dans allowed_internal de SWAG.

Medias

sections:
  - name: Medias
   icon: jellyfin.svg
   displayData:
     sortBy: random
     rows: 1
     cols: 1
     collapsed: false
     hideForGuests: false
   items:
      - title: Jellyfin
       description: netflix selfmade
       icon: jellyfin.svg
       url: https://jellyfin.<DOMAINE>/
       target: newtab
       statusCheck: true
       statusCheckAllowInsecure: true
       id: 0_595_jellyfin
   widgets:
      - type: iframe
       options:
         url: >-
           https://www.april.org/files/banniere_horizontale_soutien_adherent_fulltext_300x100.png
         frameHeight: 100
       id: 0_595_iframe
      - type: chucknorris
       id: 1_595_chucknorris

International Time

sections:
  - name: International Time
   icon: fad fa-clock
   widgets:
      - type: clock
       options:
         timeZone: Europe/Lisbon
         format: fr-FR
       id: 0_1799_clock
      - type: clock
       options:
         timeZone: Asia/Hong_Kong
         format: fr-FR
       id: 1_1799_clock
   displayData:
     sortBy: default
     rows: 1
     cols: 1
     collapsed: false
     hideForGuests: false

Productivité

sections:
  - name: Productivité
   icon: xwiki.svg
   displayData:
     sortBy: random
     rows: 1
     cols: 1
     collapsed: false
     hideForGuests: false
   items:
      - title: Nextcloud
       description: nextcloud
       icon: nextcloud.svg
       url: https://cloud.<DOMAINE>
       target: newtab
       id: 0_1414_nextcloud
      - title: Xwiki
       description: wiki for Batcave Lab
       icon: xwiki.svg
       url: https://xwiki.<DOMAINE>/
       target: newtab
       id: 1_1414_xwiki
      - title: Joplin
       description: Joplin server
       icon: joplin.svg
       url: https://joplin.<DOMAINE>/
       target: newtab
       statusCheckAllowInsecure: true
       id: 2_1414_joplin

OSINT

sections:
  - name: OSINT
   icon: 🕵
   displayData:
     sortBy: random
     rows: 1
     cols: 1
     collapsed: false
     hideForGuests: false
   items:
      - title: Webcheck
       description: Container for find info about website
       icon: "hl-web-check\t"
       url: https://osint.<DOMAINE>/
       target: newtab
       statusCheck: true
       statusCheckAllowInsecure: true
       id: 0_397_webcheck
      - title: SearchXNG
       description: browser for osint
       icon: searxng.svg
       url: https://searx.<DOMAINE>/
       target: newtab
       statusCheckAllowInsecure: true
       statusCheck: true
       id: 1_397_searchxng

plopplop

sections:
  - name: plopplop
   icon: github-light.svg
   widgets:
      - type: image
       options:
         imagePath: http://<IP_SERVEUR>:9000/api?username=<UTILISATEUR_GITHUB>&title_color=98ace9&text_color=fff&icon_color=98ace9&bg_color=282a36&border_radius=5&locale=fr&count_private=true&show_icons=true&hide_border=true
      - type: image
       options:
         imagePath: http://<IP_SERVEUR>:9000/api/pin?username=<UTILISATEUR_GITHUB>&repo=<DEPOT_1>&title_color=98ace9&text_color=fff&icon_color=98ace9&bg_color=282a36&border_radius=5&locale=fr&hide_border=true&show_owner=true
      - type: image
       options:
         imagePath: http://<IP_SERVEUR>:9000/api/pin?username=<UTILISATEUR_GITHUB>&repo=<DEPOT_2>&title_color=98ace9&text_color=fff&icon_color=98ace9&bg_color=282a36&border_radius=5&locale=fr&hide_border=true&show_owner=true
      - type: image
       options:
         imagePath: http://<IP_SERVEUR>:9000/api/pin?username=<UTILISATEUR_GITHUB>&repo=<DEPOT_3>&title_color=98ace9&text_color=fff&icon_color=98ace9&bg_color=282a36&border_radius=5&locale=fr&hide_border=true&show_owner=true
      - type: public-ip
       id: 1_886_publicip
   displayData:
     sortBy: default
     rows: 1
     cols: 1
     collapsed: false
     hideForGuests: false
   items: []

Les widgets image affichent les cartes de github-readme-stats (voir la page Dashy). Le navigateur les charge depuis http://<IP_SERVEUR>:9000 : elles ne s'affichent que depuis le LAN. public-ip affiche l'IP publique et la localisation approximative.

Stats nextcloud

sections:
  - name: Stats nextcloud
   widgets:
      - type: nextcloud-system
       useProxy: true
       options:
         hostname: https://cloud.<DOMAINE>
         username: <UTILISATEUR_NEXTCLOUD>
         password: <MOT_DE_PASSE_APPLICATION_NEXTCLOUD>
       id: 0_1541_nextcloudsystem
      - type: joke
       useProxy: true
       options:
         language: fr
       id: 1_1541_joke
   displayData:
     sortBy: default
     rows: 1
     cols: 1
     collapsed: false
     hideForGuests: false
   items: []
   icon: nextcloud.svg

nextcloud-system affiche la charge CPU, la mémoire et les versions de Nextcloud.

  • password : un mot de passe d'application, créé dans Paramètres personnels > Sécurité (Appareils et sessions, Créer un nouveau mot de passe d'application). Il n'est affiché qu'une fois et ne suit pas une migration de Nextcloud.
  • username : l'identifiant de connexion du compte qui a créé ce mot de passe, pas son nom d'affichage. Sensible à la casse.
  • Le compte doit être administrateur : l'API serverinfo refuse les statistiques système aux autres comptes.
  • useProxy: true : sans lui, le navigateur bloque l'appel à l'API de Nextcloud (CORS).

Fichier complet

Le fichier conf.yml en un seul bloc, à copier tel quel dans user-data.

Afficher conf.yml complet
appConfig:
 theme: dracula
 layout: auto
 iconSize: small
 backgroundImg: /item-icons/ping.jpg
 startingView: default
 defaultOpeningMethod: newtab
 statusCheck: false
 statusCheckInterval: 0
 faviconApi: allesedv
 enableMultiTasking: false
 widgetsAlwaysUseProxy: false
 webSearch:
   searchEngine: duckduckgo
   openingMethod: newtab
   searchBangs: {}
   disableWebSearch: false
 enableFontAwesome: true
 auth:
   enableGuestAccess: true
   users:
      - user: <UTILISATEUR_DASHY>
       hash: <HASH_SHA256_MOT_DE_PASSE>
       type: admin
   enableHeaderAuth: false
   headerAuth:
     userHeader: REMOTE_USER
     proxyWhitelist: []
   enableKeycloak: false
 enableMaterialDesignIcons: false
 hideComponents:
   hideHeading: false
   hideNav: false
   hideSearch: false
   hideSettings: false
   hideFooter: false
 showSplashScreen: false
 preventWriteToDisk: false
 preventLocalSave: false
 disableConfiguration: false
 disableConfigurationForNonAdmin: true
 allowConfigEdit: true
 enableServiceWorker: false
 disableContextMenu: false
 disableUpdateChecks: false
 disableSmartSort: false
 enableErrorReporting: false
pages:
  - name: bookmarks
   path: bookmark.yml
  - name: cpu
   path: cpu.yml
  - name: news
   path: news.yml
pageInfo:
 title: Batcave Lab
 description: Batman n'attrape pas de coup de soleil
 navLinks:
    - title: <SITE_PERSO>
     target: newtab
     path: https://<SITE_PERSO>
sections:
  - name: Jours Fériés
   icon: 🏖️
   widgets:
      - type: public-holidays
       useProxy: false
       options:
         country: FR
         monthsToShow: 6
         lang: fr
       id: 0_1433_publicholidays
   displayData:
     sortBy: default
     rows: 1
     cols: 1
     collapsed: false
     hideForGuests: false
   items: []
  - name: Portainer
   icon: docker-compose.png
   displayData:
     rows: 1
     cols: 1
     sortBy: random
     collapsed: false
     hideForGuests: false
   widgets:
      - type: clock
       options:
         timeZone: Europe/Paris
         format: fr-FR
         hidedate: false
         chartColor: '#f7931a'
       id: 0_948_clock
   items:
      - title: portainer
       description: manage containers
       icon: portainer.svg
       url: https://<IP_SERVEUR>:9443/
       target: newtab
       statusCheck: true
       statusCheckAllowInsecure: true
       id: 0_948_portainer
  - name: Réseau
   icon: 🛡️
   displayData:
     sortBy: random
     rows: 1
     cols: 1
     collapsed: false
     hideForGuests: false
   items:
      - title: AdGuard Home
       description: DNS ad-blocking (RPi)
       icon: hl-adguard-home
       url: https://adguard.<DOMAINE>/
       target: newtab
       statusCheck: true
       statusCheckAllowInsecure: true
       id: 0_2201_adguard
   widgets:
      - type: adguard-stats
       useProxy: true
       options:
         hostname: http://<IP_ADGUARD>:3000
         username: <UTILISATEUR_ADGUARD>
         password: <MOT_DE_PASSE_ADGUARD>
       id: 0_2201_adguardwidget
      - type: adguard-filter-status
       useProxy: true
       options:
         hostname: http://<IP_ADGUARD>:3000
         username: <UTILISATEUR_ADGUARD>
         password: <MOT_DE_PASSE_ADGUARD>
       id: 1_2201_adguardfilter
      - type: adguard-top-domains
       useProxy: true
       options:
         hostname: http://<IP_ADGUARD>:3000
         username: <UTILISATEUR_ADGUARD>
         password: <MOT_DE_PASSE_ADGUARD>
  - name: Medias
   icon: jellyfin.svg
   displayData:
     sortBy: random
     rows: 1
     cols: 1
     collapsed: false
     hideForGuests: false
   items:
      - title: Jellyfin
       description: netflix selfmade
       icon: jellyfin.svg
       url: https://jellyfin.<DOMAINE>/
       target: newtab
       statusCheck: true
       statusCheckAllowInsecure: true
       id: 0_595_jellyfin
   widgets:
      - type: iframe
       options:
         url: >-
           https://www.april.org/files/banniere_horizontale_soutien_adherent_fulltext_300x100.png
         frameHeight: 100
       id: 0_595_iframe
      - type: chucknorris
       id: 1_595_chucknorris
  - name: International Time
   icon: fad fa-clock
   widgets:
      - type: clock
       options:
         timeZone: Europe/Lisbon
         format: fr-FR
       id: 0_1799_clock
      - type: clock
       options:
         timeZone: Asia/Hong_Kong
         format: fr-FR
       id: 1_1799_clock
   displayData:
     sortBy: default
     rows: 1
     cols: 1
     collapsed: false
     hideForGuests: false
  - name: Productivité
   icon: xwiki.svg
   displayData:
     sortBy: random
     rows: 1
     cols: 1
     collapsed: false
     hideForGuests: false
   items:
      - title: Nextcloud
       description: nextcloud
       icon: nextcloud.svg
       url: https://cloud.<DOMAINE>
       target: newtab
       id: 0_1414_nextcloud
      - title: Xwiki
       description: wiki for Batcave Lab
       icon: xwiki.svg
       url: https://xwiki.<DOMAINE>/
       target: newtab
       id: 1_1414_xwiki
      - title: Joplin
       description: Joplin server
       icon: joplin.svg
       url: https://joplin.<DOMAINE>/
       target: newtab
       statusCheckAllowInsecure: true
       id: 2_1414_joplin
  - name: OSINT
   icon: 🕵
   displayData:
     sortBy: random
     rows: 1
     cols: 1
     collapsed: false
     hideForGuests: false
   items:
      - title: Webcheck
       description: Container for find info about website
       icon: "hl-web-check\t"
       url: https://osint.<DOMAINE>/
       target: newtab
       statusCheck: true
       statusCheckAllowInsecure: true
       id: 0_397_webcheck
      - title: SearchXNG
       description: browser for osint
       icon: searxng.svg
       url: https://searx.<DOMAINE>/
       target: newtab
       statusCheckAllowInsecure: true
       statusCheck: true
       id: 1_397_searchxng
  - name: plopplop
   icon: github-light.svg
   widgets:
      - type: image
       options:
         imagePath: http://<IP_SERVEUR>:9000/api?username=<UTILISATEUR_GITHUB>&title_color=98ace9&text_color=fff&icon_color=98ace9&bg_color=282a36&border_radius=5&locale=fr&count_private=true&show_icons=true&hide_border=true
      - type: image
       options:
         imagePath: http://<IP_SERVEUR>:9000/api/pin?username=<UTILISATEUR_GITHUB>&repo=<DEPOT_1>&title_color=98ace9&text_color=fff&icon_color=98ace9&bg_color=282a36&border_radius=5&locale=fr&hide_border=true&show_owner=true
      - type: image
       options:
         imagePath: http://<IP_SERVEUR>:9000/api/pin?username=<UTILISATEUR_GITHUB>&repo=<DEPOT_2>&title_color=98ace9&text_color=fff&icon_color=98ace9&bg_color=282a36&border_radius=5&locale=fr&hide_border=true&show_owner=true
      - type: image
       options:
         imagePath: http://<IP_SERVEUR>:9000/api/pin?username=<UTILISATEUR_GITHUB>&repo=<DEPOT_3>&title_color=98ace9&text_color=fff&icon_color=98ace9&bg_color=282a36&border_radius=5&locale=fr&hide_border=true&show_owner=true
      - type: public-ip
       id: 1_886_publicip
   displayData:
     sortBy: default
     rows: 1
     cols: 1
     collapsed: false
     hideForGuests: false
   items: []
  - name: Stats nextcloud
   widgets:
      - type: nextcloud-system
       useProxy: true
       options:
         hostname: https://cloud.<DOMAINE>
         username: <UTILISATEUR_NEXTCLOUD>
         password: <MOT_DE_PASSE_APPLICATION_NEXTCLOUD>
       id: 0_1541_nextcloudsystem
      - type: joke
       useProxy: true
       options:
         language: fr
       id: 1_1541_joke
   displayData:
     sortBy: default
     rows: 1
     cols: 1
     collapsed: false
     hideForGuests: false
   items: []
   icon: nextcloud.svg