0 Votes

Accueil

Version 1.2 par john le 2026/09/26 16:39

Page d'accueil de Dashy, définie dans conf.yml. Elle regroupe les services auto-hébergés du serveur principal et du Raspberry Pi, avec leur état, et des widgets de supervision (AdGuard Home, Nextcloud) et d'agrément. Configuration commune et déploiement : Dashy.

En-tête

pageInfo:
 title: <TITRE>
 description: <SOUS_TITRE>
 navLinks:
    - title: <LIBELLE>
     target: newtab
     path: https://<SITE_PERSO>

Le lien de navLinks s'affiche dans l'en-tête, à côté des liens vers les pages secondaires générés depuis pages:.

Sections

SectionIcôneItemsWidgets
Jours Fériésemoji—public-holidays
Portainerdocker-compose.pngPortainerclock
RéseauemojiAdGuard Homeadguard-stats, adguard-filter-status, adguard-top-domains
Mediasjellyfin.svgJellyfiniframe, chucknorris
International Timefad fa-clock—clock (x2)
Productivitéxwiki.svgNextcloud, Xwiki, Joplin—
OSINTemojiWebcheck, SearchXNG—
plopplopgithub-light.svg—image (x4), public-ip
Stats nextcloudnextcloud.svg—nextcloud-system, joke

Toutes les sections sont en rows: 1, cols: 1, visibles des invités (hideForGuests: false), c'est-à-dire de tout utilisateur connecté à Authelia. Les sections qui contiennent des liens sont en sortBy: random.

Items

Un item est un lien vers un service. Forme utilisée pour les services auto-hébergés :

      - title: AdGuard Home
       description: DNS ad-blocking (RPi)
       icon: hl-adguard-home
       url: https://<DOMAINE_ADGUARD>/
       target: newtab
       statusCheck: true
       statusCheckAllowInsecure: true
  • statusCheck: true : Dashy interroge l'URL depuis son serveur et affiche un point vert ou rouge. Activé sur Portainer, AdGuard Home, Jellyfin, Webcheck et SearchXNG. Nextcloud, Xwiki et Joplin n'ont pas de vérification d'état.
  • statusCheckAllowInsecure: true : accepte un certificat non valide, nécessaire pour Portainer joint en https sur son IP locale (https://<IP_SERVEUR>:9443/).
  • target: newtab : ouverture dans un nouvel onglet.

Widgets

public-holidays

Affiche les prochains jours fériés du pays choisi. Aucun identifiant.

      - type: public-holidays
       useProxy: false
       options:
         country: FR
         monthsToShow: 6
         lang: fr
  • country : code pays ISO à deux lettres.
  • monthsToShow : période couverte, en mois.

clock

Affiche l'heure et la date d'un fuseau horaire. Utilisé trois fois : heure locale (section Portainer) et deux fuseaux étrangers (section International Time). Aucun identifiant.

      - type: clock
       options:
         timeZone: Europe/Paris
         format: fr-FR
  • timeZone : nom de fuseau IANA (Europe/Lisbon, Asia/Hong_Kong...).
  • format : locale d'affichage de la date et de l'heure.
  • Les options hidedate et chartColor présentes dans le widget de la section Portainer ne sont pas reconnues par ce widget et sont ignorées. L'option qui masque la date s'écrit hideDate.

adguard-stats, adguard-filter-status, adguard-top-domains

Trois widgets pour le serveur AdGuard Home du Raspberry Pi :

  • adguard-stats : nombre de requêtes DNS, requêtes bloquées et temps de traitement moyen ;
  • adguard-filter-status : état de la protection et des listes de filtrage ;
  • adguard-top-domains : domaines les plus demandés.
      - type: adguard-stats
       useProxy: true
       options:
         hostname: http://<IP_ADGUARD>:3000
         username: <UTILISATEUR_ADGUARD>
         password: <MOT_DE_PASSE_ADGUARD>

Les trois widgets prennent les mêmes options :

  • hostname : adresse de l'interface web d'AdGuard Home, sans chemin ni barre oblique finale.
  • username / password : identifiants de l'interface web d'AdGuard Home, définis à l'assistant d'installation (ou dans AdGuardHome.yaml, section users). Ils sont envoyés en authentification HTTP Basic.
  • useProxy: true : AdGuard Home n'envoie pas d'en-têtes CORS. La requête passe par /cors-proxy ; derrière SWAG, <IP_ADGUARD> doit figurer dans allowed_internal.

iframe

Intègre une page ou un fichier distant dans un cadre. Utilisé ici pour afficher la bannière de soutien à l'April. Aucun identifiant.

- type: iframe
        options:
         url: >-
           https://www.april.org/files/banniere_horizontale_soutien_adherent_fulltext_300x100.png
         frameHeight: 100
  • frameHeight : hauteur du cadre en pixels.
  • Le site intégré doit autoriser l'affichage en iframe (pas d'en-tête X-Frame-Options: DENY).

chucknorris

Affiche une blague Chuck Norris au hasard, en anglais. Ni option ni identifiant.

      - type: chucknorris

image

Affiche une image à partir de son adresse. Utilisé quatre fois pour les cartes SVG de l'instance locale de github-readme-stats : statistiques du profil et trois dépôts épinglés.

      - 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>&title_color=98ace9&text_color=fff&icon_color=98ace9&bg_color=282a36&border_radius=5&locale=fr&hide_border=true&show_owner=true
  • Les couleurs (bg_color=282a36, title_color=98ace9) reprennent le thème Dracula.
  • Pas d'identifiant dans Dashy : le jeton GitHub (PAT_1) reste dans la stack github-readme-stats, voir la section github-readme-stats de la page Dashy.
  • L'image est chargée directement par le navigateur, sans proxy, depuis une adresse locale en http : les cartes ne s'affichent que depuis le LAN, et un navigateur peut les bloquer comme contenu mixte quand Dashy est consulté en https.

public-ip

Affiche l'adresse IP publique vue depuis le navigateur, avec le fournisseur et la localisation approximative. Aucun identifiant.

      - type: public-ip

nextcloud-system

Affiche l'état du serveur Nextcloud : charge CPU, mémoire et versions, lus dans l'API serverinfo (/ocs/v2.php/apps/serverinfo/api/v1/info).

      - type: nextcloud-system
       useProxy: true
       options:
         hostname: https://<DOMAINE_NEXTCLOUD>
         username: <UTILISATEUR_NEXTCLOUD>
         password: <MOT_DE_PASSE_APPLICATION>
  • hostname : adresse racine de Nextcloud, sans barre oblique finale.
  • password : un mot de passe d'application, pas le mot de passe du compte. Le créer dans Nextcloud, Paramètres personnels > Sécurité, rubrique Appareils et sessions, en donnant un nom (par exemple dashy) puis Créer un nouveau mot de passe d'application. Il n'est affiché qu'une fois. Le révoquer au même endroit supprime l'accès du widget sans toucher au compte.
  • username : identifiant de connexion du compte qui a créé le mot de passe d'application, pas son nom d'affichage. Il est sensible à la casse : Admin et admin sont deux comptes différents pour l'API.
  • Le compte doit être administrateur : l'API serverinfo refuse les statistiques système aux autres comptes. L'application Monitoring (serverinfo) doit être activée ; elle l'est par défaut.
  • useProxy: true : l'API OCS de Nextcloud ne répond pas aux requêtes CORS d'une autre origine, le navigateur bloquerait l'appel. Le widget envoie Authorization et OCS-APIREQUEST via /cors-proxy, que le bloc Lua de SWAG transmet. hostname étant un domaine public, aucune entrée n'est nécessaire dans allowed_internal.
  • Après une migration ou une restauration de Nextcloud, les mots de passe d'application ne sont plus valides : en créer un nouveau et le reporter ici.

joke

Affiche une blague au hasard, depuis JokeAPI. Aucun identifiant.

      - type: joke
       useProxy: true
       options:
         language: fr
  • language : langue des blagues. JokeAPI en propose peu en français.