Afficher les derniers auteurs
| author | version | line-number | content |
|---|---|---|---|
| 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. | ||
| 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##). | ||
| 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}} | ||
| 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}} | ||
| 66 | == Statistiques GitHub : github-readme-stats == | ||
| 67 | |||
| 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 | |||
| 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. |