0 Votes

Code source wiki de Dashy

Version 3.1 par john le 2026/09/19 14:28

Masquer les derniers auteurs
john 1.1 1 Tableau de bord d'accueil : liens vers tous les services auto-hébergés, avec leur état en direct et des widgets.
2
3 == Fonctionnalités utilisées ==
4
5 * Sections et liens vers les services, avec icônes stockées en local.
6 * Indicateur d'état de chaque service (vérification de disponibilité).
7 * Widgets de contenu dynamique, dont les cartes de statistiques GitHub fournies par une instance locale de github-readme-stats.
8 * Configuration modifiable depuis l'interface, enregistrée dans le fichier YAML.
9
10 == Stack ==
11
12 {{code language="yaml"}}
13 services:
14 dashy:
15 image: lissy93/dashy:latest
16 container_name: dashy
17 environment:
18 - NODE_ENV=production
19 - UID=1000
20 - GID=1000
21 - NODE_TLS_REJECT_UNAUTHORIZED=0
22 - VUE_APP_BOB=<MOT_DE_PASSE>
23 ports:
24 - "4000:8080"
25 volumes:
26 - <APPDATA>/Dashy/user-data:/app/user-data
27 restart: unless-stopped
28 healthcheck:
29 test: ['CMD', 'node', '/app/services/healthcheck']
30 interval: 90s
31 timeout: 10s
32 retries: 3
33 start_period: 40s
34 networks:
35 - proxy
36
37 networks:
38 proxy:
39 external: true
40 {{/code}}
41
42 * ##NODE_TLS_REJECT_UNAUTHORIZED=0## : le serveur de Dashy accepte les certificats non reconnus lors des vérifications d'état, nécessaire pour les services locaux en https avec un certificat auto-signé.
43 * ##VUE_APP_BOB## : mot de passe d'un utilisateur de l'authentification intégrée, référencé par son nom dans ##conf.yml## (##password: VUE_APP_BOB##). Il est lu à la construction de l'application : après modification, reconstruire (Config > Rebuild).
44
45 === Accès ===
46
47 * Consultation : publique, sans authentification.
john 2.1 48 * Modification de la configuration : connexion en deux temps, d'abord Authelia, qui redirige ensuite vers la connexion de Dashy (utilisateur défini dans ##conf.yml##, mot de passe dans ##VUE_APP_BOB##).
john 3.1 49 {{info}}En consultation publique, le contenu de ##conf.yml## reste lisible par tous : n'y mettre ni mot de passe, ni jeton, ni adresse de service qu'on ne veut pas rendre visible.{{/info}}
john 1.1 50
51 == Configuration ==
52
53 Dans ##<APPDATA>/Dashy/user-data## :
54
55 |=Élément|=Rôle
56 |##conf.yml##|Configuration principale : pages, sections, liens, widgets, thème
57 |##bookmark.yml##|Page secondaire de favoris
58 |##item-icons/##|Icônes des services, stockées en local
59
60 * ##appConfig.faviconApi: local## : aucune icône n'est récupérée sur un service externe.
61 * Vérifier la syntaxe après une modification à la main :
62
63 {{code language="bash"}}
64 docker exec dashy yarn validate-config
65 {{/code}}
john 3.1 66 == Statistiques GitHub : github-readme-stats ==
john 1.1 67
john 3.1 68 Instance locale de github-readme-stats, qui génère les cartes SVG de statistiques GitHub affichées par un widget de Dashy : statistiques du profil, langages les plus utilisés, dépôts épinglés.
69
70 {{code language="yaml"}}
71 services:
72 github-readme-stats:
73 image: github-readme-stats:local
74 container_name: github-readme-stats
75 restart: unless-stopped
76 ports:
77 - "9000:9000"
78 environment:
79 - PAT_1=${PAT_1}
80 - CACHE_SECONDS=14400
81 {{/code}}
82
83 * ##PAT_1## : jeton d'accès personnel GitHub, défini dans les variables de la stack Portainer. Jeton classique avec les permissions ##repo## pour compter les dépôts privés.
84 * ##CACHE_SECONDS## : durée de mise en cache des cartes (4 heures), pour limiter les appels à l'API GitHub.
85 * Accessible uniquement en local, sur le port 9000.
86
87 Principales adresses :
88
89 |=Carte|=Adresse
90 |Statistiques du profil|##/api?username=<UTILISATEUR>##
91 |Langages les plus utilisés|##/api/top-langs?username=<UTILISATEUR>##
92 |Dépôt épinglé|##/api/pin?username=<UTILISATEUR>&repo=<DEPOT>##
93
94 Dans Dashy, les cartes s'affichent avec un widget de type ##image## qui pointe vers l'instance locale.
95
96 === Image locale ===
97
98 Portainer ne sait pas construire une image dans une stack : l'image ##github-readme-stats:local## est construite sur l'hôte, depuis le dépôt cloné. Elle n'est donc pas mise à jour par Watchtower. Pour la mettre à jour, depuis le dossier du dépôt :
99
100 {{code language="bash"}}
101 git pull
102 docker build -t github-readme-stats:local .
103 {{/code}}
104
105 Puis redéployer la stack dans Portainer.
106
john 1.1 107 == Sauvegarde ==
108
109 ##<APPDATA>/Dashy/user-data## est sauvegardé par le script de [[Sauvegarde>>Wiki Batcave John.Infrastructure.Sauvegarde.WebHome]]. Dashy enregistre aussi une copie de la configuration précédente dans ce dossier à chaque sauvegarde depuis l'interface.