| ... |
... |
@@ -1,59 +1,104 @@ |
| 1 |
|
-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>>Wiki Batcave John.Infrastructure.ServeurPrincipal.Dashy.WebHome]]. |
|
1 |
+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>>Wiki Batcave John.Infrastructure.ServeurPrincipal.Dashy.WebHome]]. |
| 2 |
2 |
|
| 3 |
|
-== En-tête == |
|
3 |
+{{toc/}} |
| 4 |
4 |
|
|
5 |
+== appConfig == |
|
6 |
+ |
| 5 |
5 |
{{code language="yaml"}} |
| 6 |
|
-pageInfo: |
| 7 |
|
- title: <TITRE> |
| 8 |
|
- description: <SOUS_TITRE> |
| 9 |
|
- navLinks: |
| 10 |
|
- - title: <LIBELLE> |
| 11 |
|
- target: newtab |
| 12 |
|
- path: https://<SITE_PERSO> |
|
8 |
+appConfig: |
|
9 |
+ theme: dracula |
|
10 |
+ layout: auto |
|
11 |
+ iconSize: small |
|
12 |
+ backgroundImg: /item-icons/ping.jpg |
|
13 |
+ startingView: default |
|
14 |
+ defaultOpeningMethod: newtab |
|
15 |
+ statusCheck: false |
|
16 |
+ statusCheckInterval: 0 |
|
17 |
+ faviconApi: allesedv |
|
18 |
+ enableMultiTasking: false |
|
19 |
+ widgetsAlwaysUseProxy: false |
|
20 |
+ webSearch: |
|
21 |
+ searchEngine: duckduckgo |
|
22 |
+ openingMethod: newtab |
|
23 |
+ searchBangs: {} |
|
24 |
+ disableWebSearch: false |
|
25 |
+ enableFontAwesome: true |
|
26 |
+ auth: |
|
27 |
+ enableGuestAccess: true |
|
28 |
+ users: |
|
29 |
+ - user: <UTILISATEUR_DASHY> |
|
30 |
+ hash: <HASH_SHA256_MOT_DE_PASSE> |
|
31 |
+ type: admin |
|
32 |
+ enableHeaderAuth: false |
|
33 |
+ headerAuth: |
|
34 |
+ userHeader: REMOTE_USER |
|
35 |
+ proxyWhitelist: [] |
|
36 |
+ enableKeycloak: false |
|
37 |
+ enableMaterialDesignIcons: false |
|
38 |
+ hideComponents: |
|
39 |
+ hideHeading: false |
|
40 |
+ hideNav: false |
|
41 |
+ hideSearch: false |
|
42 |
+ hideSettings: false |
|
43 |
+ hideFooter: false |
|
44 |
+ showSplashScreen: false |
|
45 |
+ preventWriteToDisk: false |
|
46 |
+ preventLocalSave: false |
|
47 |
+ disableConfiguration: false |
|
48 |
+ disableConfigurationForNonAdmin: true |
|
49 |
+ allowConfigEdit: true |
|
50 |
+ enableServiceWorker: false |
|
51 |
+ disableContextMenu: false |
|
52 |
+ disableUpdateChecks: false |
|
53 |
+ disableSmartSort: false |
|
54 |
+ enableErrorReporting: false |
| 13 |
13 |
{{/code}} |
| 14 |
14 |
|
| 15 |
|
-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:##. |
|
57 |
+== pages == |
| 16 |
16 |
|
| 17 |
|
-== Sections == |
|
59 |
+{{code language="yaml"}} |
|
60 |
+pages: |
|
61 |
+ - name: bookmarks |
|
62 |
+ path: bookmark.yml |
|
63 |
+ - name: cpu |
|
64 |
+ path: cpu.yml |
|
65 |
+ - name: news |
|
66 |
+ path: news.yml |
|
67 |
+{{/code}} |
| 18 |
18 |
|
| 19 |
|
-|=Section|=Icône|=Items|=Widgets |
| 20 |
|
-|Jours Fériés|emoji|—|##public-holidays## |
| 21 |
|
-|Portainer|##docker-compose.png##|Portainer|##clock## |
| 22 |
|
-|Réseau|emoji|AdGuard Home|##adguard-stats##, ##adguard-filter-status##, ##adguard-top-domains## |
| 23 |
|
-|Medias|##jellyfin.svg##|Jellyfin|##iframe##, ##chucknorris## |
| 24 |
|
-|International Time|##fad fa-clock##|—|##clock## (x2) |
| 25 |
|
-|Productivité|##xwiki.svg##|Nextcloud, Xwiki, Joplin|— |
| 26 |
|
-|OSINT|emoji|Webcheck, SearchXNG|— |
| 27 |
|
-|plopplop|##github-light.svg##|—|##image## (x4), ##public-ip## |
| 28 |
|
-|Stats nextcloud|##nextcloud.svg##|—|##nextcloud-system##, ##joke## |
|
69 |
+== pageInfo == |
| 29 |
29 |
|
| 30 |
|
-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##. |
| 31 |
|
- |
| 32 |
|
-== Items == |
| 33 |
|
- |
| 34 |
|
-Un item est un lien vers un service. Forme utilisée pour les services auto-hébergés : |
| 35 |
|
- |
| 36 |
36 |
{{code language="yaml"}} |
| 37 |
|
- - title: AdGuard Home |
| 38 |
|
- description: DNS ad-blocking (RPi) |
| 39 |
|
- icon: hl-adguard-home |
| 40 |
|
- url: https://<DOMAINE_ADGUARD>/ |
| 41 |
|
- target: newtab |
| 42 |
|
- statusCheck: true |
| 43 |
|
- statusCheckAllowInsecure: true |
|
72 |
+pageInfo: |
|
73 |
+ title: Batcave Lab |
|
74 |
+ description: Batman n'attrape pas de coup de soleil |
|
75 |
+ navLinks: |
|
76 |
+ - title: <SITE_PERSO> |
|
77 |
+ target: newtab |
|
78 |
+ path: https://<SITE_PERSO> |
| 44 |
44 |
{{/code}} |
| 45 |
45 |
|
| 46 |
|
-* ##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. |
| 47 |
|
-* ##statusCheckAllowInsecure: true## : accepte un certificat non valide, nécessaire pour Portainer joint en https sur son IP locale (##https:~/~/<IP_SERVEUR>:9443/##). |
| 48 |
|
-* ##target: newtab## : ouverture dans un nouvel onglet. |
| 49 |
|
- |
| 50 |
50 |
== Widgets == |
| 51 |
51 |
|
| 52 |
|
-=== public-holidays === |
|
83 |
+|=Widget|=Section|=Affiche|=Identifiants |
|
84 |
+|##public-holidays##|Jours Fériés|Jours fériés des 6 prochains mois|— |
|
85 |
+|##clock##|Portainer, International Time|Heure d'un fuseau horaire|— |
|
86 |
+|##adguard-stats##, ##adguard-filter-status##, ##adguard-top-domains##|Réseau|Statistiques DNS, état du filtrage, domaines les plus demandés|Compte de l'interface web d'AdGuard Home |
|
87 |
+|##iframe##|Medias|Bannière de soutien à l'April|— |
|
88 |
+|##chucknorris##, ##joke##|Medias, Stats nextcloud|Blague au hasard|— |
|
89 |
+|##image##|plopplop|Cartes github-readme-stats|Jeton GitHub, côté github-readme-stats |
|
90 |
+|##public-ip##|plopplop|IP publique et localisation approximative|— |
|
91 |
+|##nextcloud-system##|Stats nextcloud|Charge CPU, mémoire et versions de Nextcloud|Mot de passe d'application Nextcloud |
| 53 |
53 |
|
| 54 |
|
-Affiche les prochains jours fériés du pays choisi. Aucun identifiant. |
|
93 |
+== Sections == |
| 55 |
55 |
|
|
95 |
+=== Jours Fériés === |
|
96 |
+ |
| 56 |
56 |
{{code language="yaml"}} |
|
98 |
+sections: |
|
99 |
+ - name: Jours Fériés |
|
100 |
+ icon: 🏖️ |
|
101 |
+ widgets: |
| 57 |
57 |
- type: public-holidays |
| 58 |
58 |
useProxy: false |
| 59 |
59 |
options: |
| ... |
... |
@@ -60,35 +60,71 @@ |
| 60 |
60 |
country: FR |
| 61 |
61 |
monthsToShow: 6 |
| 62 |
62 |
lang: fr |
|
108 |
+ id: 0_1433_publicholidays |
|
109 |
+ displayData: |
|
110 |
+ sortBy: default |
|
111 |
+ rows: 1 |
|
112 |
+ cols: 1 |
|
113 |
+ collapsed: false |
|
114 |
+ hideForGuests: false |
|
115 |
+ items: [] |
| 63 |
63 |
{{/code}} |
| 64 |
64 |
|
| 65 |
|
-* ##country## : code pays ISO à deux lettres. |
| 66 |
|
-* ##monthsToShow## : période couverte, en mois. |
|
118 |
+=== Portainer === |
| 67 |
67 |
|
| 68 |
|
-=== clock === |
| 69 |
|
- |
| 70 |
|
-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. |
| 71 |
|
- |
| 72 |
72 |
{{code language="yaml"}} |
|
121 |
+sections: |
|
122 |
+ - name: Portainer |
|
123 |
+ icon: docker-compose.png |
|
124 |
+ displayData: |
|
125 |
+ rows: 1 |
|
126 |
+ cols: 1 |
|
127 |
+ sortBy: random |
|
128 |
+ collapsed: false |
|
129 |
+ hideForGuests: false |
|
130 |
+ widgets: |
| 73 |
73 |
- type: clock |
| 74 |
74 |
options: |
| 75 |
75 |
timeZone: Europe/Paris |
| 76 |
76 |
format: fr-FR |
|
135 |
+ hidedate: false |
|
136 |
+ chartColor: '#f7931a' |
|
137 |
+ id: 0_948_clock |
|
138 |
+ items: |
|
139 |
+ - title: portainer |
|
140 |
+ description: manage containers |
|
141 |
+ icon: portainer.svg |
|
142 |
+ url: https://<IP_SERVEUR>:9443/ |
|
143 |
+ target: newtab |
|
144 |
+ statusCheck: true |
|
145 |
+ statusCheckAllowInsecure: true |
|
146 |
+ id: 0_948_portainer |
| 77 |
77 |
{{/code}} |
| 78 |
78 |
|
| 79 |
|
-* ##timeZone## : nom de fuseau IANA (##Europe/Lisbon##, ##Asia/Hong_Kong##...). |
| 80 |
|
-* ##format## : locale d'affichage de la date et de l'heure. |
| 81 |
|
-* 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##. |
|
149 |
+##hidedate## et ##chartColor## ne sont pas des options du widget ##clock## : elles sont ignorées. L'option qui masque la date s'écrit ##hideDate##. |
| 82 |
82 |
|
| 83 |
|
-=== adguard-stats, adguard-filter-status, adguard-top-domains === |
|
151 |
+=== Réseau === |
| 84 |
84 |
|
| 85 |
|
-Trois widgets pour le serveur [[AdGuard Home>>Wiki Batcave John.Infrastructure.RaspberryPi.AdGuard Home.WebHome]] du Raspberry Pi : |
| 86 |
|
- |
| 87 |
|
-* ##adguard-stats## : nombre de requêtes DNS, requêtes bloquées et temps de traitement moyen ; |
| 88 |
|
-* ##adguard-filter-status## : état de la protection et des listes de filtrage ; |
| 89 |
|
-* ##adguard-top-domains## : domaines les plus demandés. |
| 90 |
|
- |
| 91 |
91 |
{{code language="yaml"}} |
|
154 |
+sections: |
|
155 |
+ - name: Réseau |
|
156 |
+ icon: 🛡️ |
|
157 |
+ displayData: |
|
158 |
+ sortBy: random |
|
159 |
+ rows: 1 |
|
160 |
+ cols: 1 |
|
161 |
+ collapsed: false |
|
162 |
+ hideForGuests: false |
|
163 |
+ items: |
|
164 |
+ - title: AdGuard Home |
|
165 |
+ description: DNS ad-blocking (RPi) |
|
166 |
+ icon: hl-adguard-home |
|
167 |
+ url: https://adguard.<DOMAINE>/ |
|
168 |
+ target: newtab |
|
169 |
+ statusCheck: true |
|
170 |
+ statusCheckAllowInsecure: true |
|
171 |
+ id: 0_2201_adguard |
|
172 |
+ widgets: |
| 92 |
92 |
- type: adguard-stats |
| 93 |
93 |
useProxy: true |
| 94 |
94 |
options: |
| ... |
... |
@@ -95,91 +95,512 @@ |
| 95 |
95 |
hostname: http://<IP_ADGUARD>:3000 |
| 96 |
96 |
username: <UTILISATEUR_ADGUARD> |
| 97 |
97 |
password: <MOT_DE_PASSE_ADGUARD> |
|
179 |
+ id: 0_2201_adguardwidget |
|
180 |
+ - type: adguard-filter-status |
|
181 |
+ useProxy: true |
|
182 |
+ options: |
|
183 |
+ hostname: http://<IP_ADGUARD>:3000 |
|
184 |
+ username: <UTILISATEUR_ADGUARD> |
|
185 |
+ password: <MOT_DE_PASSE_ADGUARD> |
|
186 |
+ id: 1_2201_adguardfilter |
|
187 |
+ - type: adguard-top-domains |
|
188 |
+ useProxy: true |
|
189 |
+ options: |
|
190 |
+ hostname: http://<IP_ADGUARD>:3000 |
|
191 |
+ username: <UTILISATEUR_ADGUARD> |
|
192 |
+ password: <MOT_DE_PASSE_ADGUARD> |
| 98 |
98 |
{{/code}} |
| 99 |
99 |
|
| 100 |
|
-Les trois widgets prennent les mêmes options : |
|
195 |
+Widgets AdGuard Home : statistiques DNS, état du filtrage, domaines les plus demandés. |
| 101 |
101 |
|
| 102 |
|
-* ##hostname## : adresse de l'interface web d'AdGuard Home, sans chemin ni barre oblique finale. |
| 103 |
|
-* ##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. |
| 104 |
|
-* ##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##. |
|
197 |
+* ##username## / ##password## : le compte de l'interface web d'AdGuard Home, défini à l'installation. |
|
198 |
+* ##useProxy: true## : AdGuard Home n'envoie pas d'en-têtes CORS. ##<IP_ADGUARD>## doit figurer dans ##allowed_internal## de SWAG. |
| 105 |
105 |
|
| 106 |
|
-=== iframe === |
|
200 |
+=== Medias === |
| 107 |
107 |
|
| 108 |
|
-Intègre une page ou un fichier distant dans un cadre. Utilisé ici pour afficher la bannière de soutien à l'April. Aucun identifiant. |
| 109 |
|
- |
| 110 |
110 |
{{code language="yaml"}} |
|
203 |
+sections: |
|
204 |
+ - name: Medias |
|
205 |
+ icon: jellyfin.svg |
|
206 |
+ displayData: |
|
207 |
+ sortBy: random |
|
208 |
+ rows: 1 |
|
209 |
+ cols: 1 |
|
210 |
+ collapsed: false |
|
211 |
+ hideForGuests: false |
|
212 |
+ items: |
|
213 |
+ - title: Jellyfin |
|
214 |
+ description: netflix selfmade |
|
215 |
+ icon: jellyfin.svg |
|
216 |
+ url: https://jellyfin.<DOMAINE>/ |
|
217 |
+ target: newtab |
|
218 |
+ statusCheck: true |
|
219 |
+ statusCheckAllowInsecure: true |
|
220 |
+ id: 0_595_jellyfin |
|
221 |
+ widgets: |
| 111 |
111 |
- type: iframe |
| 112 |
112 |
options: |
| 113 |
|
- url: <URL_A_INTEGRER> |
|
224 |
+ url: >- |
|
225 |
+ https://www.april.org/files/banniere_horizontale_soutien_adherent_fulltext_300x100.png |
| 114 |
114 |
frameHeight: 100 |
|
227 |
+ id: 0_595_iframe |
|
228 |
+ - type: chucknorris |
|
229 |
+ id: 1_595_chucknorris |
| 115 |
115 |
{{/code}} |
| 116 |
116 |
|
| 117 |
|
-* ##frameHeight## : hauteur du cadre en pixels. |
| 118 |
|
-* Le site intégré doit autoriser l'affichage en iframe (pas d'en-tête ##X-Frame-Options: DENY##). |
|
232 |
+=== International Time === |
| 119 |
119 |
|
| 120 |
|
-=== chucknorris === |
|
234 |
+{{code language="yaml"}} |
|
235 |
+sections: |
|
236 |
+ - name: International Time |
|
237 |
+ icon: fad fa-clock |
|
238 |
+ widgets: |
|
239 |
+ - type: clock |
|
240 |
+ options: |
|
241 |
+ timeZone: Europe/Lisbon |
|
242 |
+ format: fr-FR |
|
243 |
+ id: 0_1799_clock |
|
244 |
+ - type: clock |
|
245 |
+ options: |
|
246 |
+ timeZone: Asia/Hong_Kong |
|
247 |
+ format: fr-FR |
|
248 |
+ id: 1_1799_clock |
|
249 |
+ displayData: |
|
250 |
+ sortBy: default |
|
251 |
+ rows: 1 |
|
252 |
+ cols: 1 |
|
253 |
+ collapsed: false |
|
254 |
+ hideForGuests: false |
|
255 |
+{{/code}} |
| 121 |
121 |
|
| 122 |
|
-Affiche une blague Chuck Norris au hasard, en anglais. Ni option ni identifiant. |
|
257 |
+=== Productivité === |
| 123 |
123 |
|
| 124 |
124 |
{{code language="yaml"}} |
| 125 |
|
- - type: chucknorris |
|
260 |
+sections: |
|
261 |
+ - name: Productivité |
|
262 |
+ icon: xwiki.svg |
|
263 |
+ displayData: |
|
264 |
+ sortBy: random |
|
265 |
+ rows: 1 |
|
266 |
+ cols: 1 |
|
267 |
+ collapsed: false |
|
268 |
+ hideForGuests: false |
|
269 |
+ items: |
|
270 |
+ - title: Nextcloud |
|
271 |
+ description: nextcloud |
|
272 |
+ icon: nextcloud.svg |
|
273 |
+ url: https://cloud.<DOMAINE> |
|
274 |
+ target: newtab |
|
275 |
+ id: 0_1414_nextcloud |
|
276 |
+ - title: Xwiki |
|
277 |
+ description: wiki for Batcave Lab |
|
278 |
+ icon: xwiki.svg |
|
279 |
+ url: https://xwiki.<DOMAINE>/ |
|
280 |
+ target: newtab |
|
281 |
+ id: 1_1414_xwiki |
|
282 |
+ - title: Joplin |
|
283 |
+ description: Joplin server |
|
284 |
+ icon: joplin.svg |
|
285 |
+ url: https://joplin.<DOMAINE>/ |
|
286 |
+ target: newtab |
|
287 |
+ statusCheckAllowInsecure: true |
|
288 |
+ id: 2_1414_joplin |
| 126 |
126 |
{{/code}} |
| 127 |
127 |
|
| 128 |
|
-=== image === |
|
291 |
+=== OSINT === |
| 129 |
129 |
|
| 130 |
|
-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. |
|
293 |
+{{code language="yaml"}} |
|
294 |
+sections: |
|
295 |
+ - name: OSINT |
|
296 |
+ icon: 🕵 |
|
297 |
+ displayData: |
|
298 |
+ sortBy: random |
|
299 |
+ rows: 1 |
|
300 |
+ cols: 1 |
|
301 |
+ collapsed: false |
|
302 |
+ hideForGuests: false |
|
303 |
+ items: |
|
304 |
+ - title: Webcheck |
|
305 |
+ description: Container for find info about website |
|
306 |
+ icon: "hl-web-check\t" |
|
307 |
+ url: https://osint.<DOMAINE>/ |
|
308 |
+ target: newtab |
|
309 |
+ statusCheck: true |
|
310 |
+ statusCheckAllowInsecure: true |
|
311 |
+ id: 0_397_webcheck |
|
312 |
+ - title: SearchXNG |
|
313 |
+ description: browser for osint |
|
314 |
+ icon: searxng.svg |
|
315 |
+ url: https://searx.<DOMAINE>/ |
|
316 |
+ target: newtab |
|
317 |
+ statusCheckAllowInsecure: true |
|
318 |
+ statusCheck: true |
|
319 |
+ id: 1_397_searchxng |
|
320 |
+{{/code}} |
| 131 |
131 |
|
|
322 |
+=== plopplop === |
|
323 |
+ |
| 132 |
132 |
{{code language="yaml"}} |
|
325 |
+sections: |
|
326 |
+ - name: plopplop |
|
327 |
+ icon: github-light.svg |
|
328 |
+ widgets: |
| 133 |
133 |
- type: image |
| 134 |
134 |
options: |
| 135 |
135 |
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 |
| 136 |
136 |
- type: image |
| 137 |
137 |
options: |
| 138 |
|
- 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 |
| 139 |
|
-{{/code}} |
| 140 |
|
- |
| 141 |
|
-* Les couleurs (##bg_color=282a36##, ##title_color=98ace9##) reprennent le thème Dracula. |
| 142 |
|
-* 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>>Wiki Batcave John.Infrastructure.ServeurPrincipal.Dashy.WebHome]]. |
| 143 |
|
-* 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. |
| 144 |
|
- |
| 145 |
|
-=== public-ip === |
| 146 |
|
- |
| 147 |
|
-Affiche l'adresse IP publique vue depuis le navigateur, avec le fournisseur et la localisation approximative. Aucun identifiant. |
| 148 |
|
- |
| 149 |
|
-{{code language="yaml"}} |
|
334 |
+ 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 |
|
335 |
+ - type: image |
|
336 |
+ options: |
|
337 |
+ 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 |
|
338 |
+ - type: image |
|
339 |
+ options: |
|
340 |
+ 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 |
| 150 |
150 |
- type: public-ip |
|
342 |
+ id: 1_886_publicip |
|
343 |
+ displayData: |
|
344 |
+ sortBy: default |
|
345 |
+ rows: 1 |
|
346 |
+ cols: 1 |
|
347 |
+ collapsed: false |
|
348 |
+ hideForGuests: false |
|
349 |
+ items: [] |
| 151 |
151 |
{{/code}} |
| 152 |
152 |
|
| 153 |
|
-=== nextcloud-system === |
|
352 |
+Les widgets ##image## affichent les cartes de github-readme-stats (voir la page [[Dashy>>Wiki Batcave John.Infrastructure.ServeurPrincipal.Dashy.WebHome]]). 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. |
| 154 |
154 |
|
| 155 |
|
-Affiche l'état du serveur [[Nextcloud>>Wiki Batcave John.Infrastructure.ServeurPrincipal.Nextcloud.WebHome]] : charge CPU, mémoire et versions, lus dans l'API ##serverinfo## (##/ocs/v2.php/apps/serverinfo/api/v1/info##). |
|
354 |
+=== Stats nextcloud === |
| 156 |
156 |
|
| 157 |
157 |
{{code language="yaml"}} |
|
357 |
+sections: |
|
358 |
+ - name: Stats nextcloud |
|
359 |
+ widgets: |
| 158 |
158 |
- type: nextcloud-system |
| 159 |
159 |
useProxy: true |
| 160 |
160 |
options: |
| 161 |
|
- hostname: https://<DOMAINE_NEXTCLOUD> |
|
363 |
+ hostname: https://cloud.<DOMAINE> |
| 162 |
162 |
username: <UTILISATEUR_NEXTCLOUD> |
| 163 |
|
- password: <MOT_DE_PASSE_APPLICATION> |
|
365 |
+ password: <MOT_DE_PASSE_APPLICATION_NEXTCLOUD> |
|
366 |
+ id: 0_1541_nextcloudsystem |
|
367 |
+ - type: joke |
|
368 |
+ useProxy: true |
|
369 |
+ options: |
|
370 |
+ language: fr |
|
371 |
+ id: 1_1541_joke |
|
372 |
+ displayData: |
|
373 |
+ sortBy: default |
|
374 |
+ rows: 1 |
|
375 |
+ cols: 1 |
|
376 |
+ collapsed: false |
|
377 |
+ hideForGuests: false |
|
378 |
+ items: [] |
|
379 |
+ icon: nextcloud.svg |
| 164 |
164 |
{{/code}} |
| 165 |
165 |
|
| 166 |
|
-* ##hostname## : adresse racine de Nextcloud, sans barre oblique finale. |
| 167 |
|
-* ##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. |
| 168 |
|
-* ##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. |
| 169 |
|
-* 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. |
| 170 |
|
-* ##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##. |
| 171 |
|
-* 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. |
|
382 |
+##nextcloud-system## affiche la charge CPU, la mémoire et les versions de Nextcloud. |
| 172 |
172 |
|
| 173 |
|
-=== joke === |
|
384 |
+* ##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. |
|
385 |
+* ##username## : l'identifiant de connexion du compte qui a créé ce mot de passe, pas son nom d'affichage. Sensible à la casse. |
|
386 |
+* Le compte doit être administrateur : l'API ##serverinfo## refuse les statistiques système aux autres comptes. |
|
387 |
+* ##useProxy: true## : sans lui, le navigateur bloque l'appel à l'API de Nextcloud (CORS). |
| 174 |
174 |
|
| 175 |
|
-Affiche une blague au hasard, depuis JokeAPI. Aucun identifiant. |
|
389 |
+== Fichier complet == |
| 176 |
176 |
|
|
391 |
+Le fichier ##conf.yml## en un seul bloc, à copier tel quel dans ##user-data##. |
|
392 |
+ |
|
393 |
+{{html wiki="true"}} |
|
394 |
+<details><summary>Afficher conf.yml complet</summary> |
|
395 |
+ |
| 177 |
177 |
{{code language="yaml"}} |
|
397 |
+appConfig: |
|
398 |
+ theme: dracula |
|
399 |
+ layout: auto |
|
400 |
+ iconSize: small |
|
401 |
+ backgroundImg: /item-icons/ping.jpg |
|
402 |
+ startingView: default |
|
403 |
+ defaultOpeningMethod: newtab |
|
404 |
+ statusCheck: false |
|
405 |
+ statusCheckInterval: 0 |
|
406 |
+ faviconApi: allesedv |
|
407 |
+ enableMultiTasking: false |
|
408 |
+ widgetsAlwaysUseProxy: false |
|
409 |
+ webSearch: |
|
410 |
+ searchEngine: duckduckgo |
|
411 |
+ openingMethod: newtab |
|
412 |
+ searchBangs: {} |
|
413 |
+ disableWebSearch: false |
|
414 |
+ enableFontAwesome: true |
|
415 |
+ auth: |
|
416 |
+ enableGuestAccess: true |
|
417 |
+ users: |
|
418 |
+ - user: <UTILISATEUR_DASHY> |
|
419 |
+ hash: <HASH_SHA256_MOT_DE_PASSE> |
|
420 |
+ type: admin |
|
421 |
+ enableHeaderAuth: false |
|
422 |
+ headerAuth: |
|
423 |
+ userHeader: REMOTE_USER |
|
424 |
+ proxyWhitelist: [] |
|
425 |
+ enableKeycloak: false |
|
426 |
+ enableMaterialDesignIcons: false |
|
427 |
+ hideComponents: |
|
428 |
+ hideHeading: false |
|
429 |
+ hideNav: false |
|
430 |
+ hideSearch: false |
|
431 |
+ hideSettings: false |
|
432 |
+ hideFooter: false |
|
433 |
+ showSplashScreen: false |
|
434 |
+ preventWriteToDisk: false |
|
435 |
+ preventLocalSave: false |
|
436 |
+ disableConfiguration: false |
|
437 |
+ disableConfigurationForNonAdmin: true |
|
438 |
+ allowConfigEdit: true |
|
439 |
+ enableServiceWorker: false |
|
440 |
+ disableContextMenu: false |
|
441 |
+ disableUpdateChecks: false |
|
442 |
+ disableSmartSort: false |
|
443 |
+ enableErrorReporting: false |
|
444 |
+pages: |
|
445 |
+ - name: bookmarks |
|
446 |
+ path: bookmark.yml |
|
447 |
+ - name: cpu |
|
448 |
+ path: cpu.yml |
|
449 |
+ - name: news |
|
450 |
+ path: news.yml |
|
451 |
+pageInfo: |
|
452 |
+ title: Batcave Lab |
|
453 |
+ description: Batman n'attrape pas de coup de soleil |
|
454 |
+ navLinks: |
|
455 |
+ - title: <SITE_PERSO> |
|
456 |
+ target: newtab |
|
457 |
+ path: https://<SITE_PERSO> |
|
458 |
+sections: |
|
459 |
+ - name: Jours Fériés |
|
460 |
+ icon: 🏖️ |
|
461 |
+ widgets: |
|
462 |
+ - type: public-holidays |
|
463 |
+ useProxy: false |
|
464 |
+ options: |
|
465 |
+ country: FR |
|
466 |
+ monthsToShow: 6 |
|
467 |
+ lang: fr |
|
468 |
+ id: 0_1433_publicholidays |
|
469 |
+ displayData: |
|
470 |
+ sortBy: default |
|
471 |
+ rows: 1 |
|
472 |
+ cols: 1 |
|
473 |
+ collapsed: false |
|
474 |
+ hideForGuests: false |
|
475 |
+ items: [] |
|
476 |
+ - name: Portainer |
|
477 |
+ icon: docker-compose.png |
|
478 |
+ displayData: |
|
479 |
+ rows: 1 |
|
480 |
+ cols: 1 |
|
481 |
+ sortBy: random |
|
482 |
+ collapsed: false |
|
483 |
+ hideForGuests: false |
|
484 |
+ widgets: |
|
485 |
+ - type: clock |
|
486 |
+ options: |
|
487 |
+ timeZone: Europe/Paris |
|
488 |
+ format: fr-FR |
|
489 |
+ hidedate: false |
|
490 |
+ chartColor: '#f7931a' |
|
491 |
+ id: 0_948_clock |
|
492 |
+ items: |
|
493 |
+ - title: portainer |
|
494 |
+ description: manage containers |
|
495 |
+ icon: portainer.svg |
|
496 |
+ url: https://<IP_SERVEUR>:9443/ |
|
497 |
+ target: newtab |
|
498 |
+ statusCheck: true |
|
499 |
+ statusCheckAllowInsecure: true |
|
500 |
+ id: 0_948_portainer |
|
501 |
+ - name: Réseau |
|
502 |
+ icon: 🛡️ |
|
503 |
+ displayData: |
|
504 |
+ sortBy: random |
|
505 |
+ rows: 1 |
|
506 |
+ cols: 1 |
|
507 |
+ collapsed: false |
|
508 |
+ hideForGuests: false |
|
509 |
+ items: |
|
510 |
+ - title: AdGuard Home |
|
511 |
+ description: DNS ad-blocking (RPi) |
|
512 |
+ icon: hl-adguard-home |
|
513 |
+ url: https://adguard.<DOMAINE>/ |
|
514 |
+ target: newtab |
|
515 |
+ statusCheck: true |
|
516 |
+ statusCheckAllowInsecure: true |
|
517 |
+ id: 0_2201_adguard |
|
518 |
+ widgets: |
|
519 |
+ - type: adguard-stats |
|
520 |
+ useProxy: true |
|
521 |
+ options: |
|
522 |
+ hostname: http://<IP_ADGUARD>:3000 |
|
523 |
+ username: <UTILISATEUR_ADGUARD> |
|
524 |
+ password: <MOT_DE_PASSE_ADGUARD> |
|
525 |
+ id: 0_2201_adguardwidget |
|
526 |
+ - type: adguard-filter-status |
|
527 |
+ useProxy: true |
|
528 |
+ options: |
|
529 |
+ hostname: http://<IP_ADGUARD>:3000 |
|
530 |
+ username: <UTILISATEUR_ADGUARD> |
|
531 |
+ password: <MOT_DE_PASSE_ADGUARD> |
|
532 |
+ id: 1_2201_adguardfilter |
|
533 |
+ - type: adguard-top-domains |
|
534 |
+ useProxy: true |
|
535 |
+ options: |
|
536 |
+ hostname: http://<IP_ADGUARD>:3000 |
|
537 |
+ username: <UTILISATEUR_ADGUARD> |
|
538 |
+ password: <MOT_DE_PASSE_ADGUARD> |
|
539 |
+ - name: Medias |
|
540 |
+ icon: jellyfin.svg |
|
541 |
+ displayData: |
|
542 |
+ sortBy: random |
|
543 |
+ rows: 1 |
|
544 |
+ cols: 1 |
|
545 |
+ collapsed: false |
|
546 |
+ hideForGuests: false |
|
547 |
+ items: |
|
548 |
+ - title: Jellyfin |
|
549 |
+ description: netflix selfmade |
|
550 |
+ icon: jellyfin.svg |
|
551 |
+ url: https://jellyfin.<DOMAINE>/ |
|
552 |
+ target: newtab |
|
553 |
+ statusCheck: true |
|
554 |
+ statusCheckAllowInsecure: true |
|
555 |
+ id: 0_595_jellyfin |
|
556 |
+ widgets: |
|
557 |
+ - type: iframe |
|
558 |
+ options: |
|
559 |
+ url: >- |
|
560 |
+ https://www.april.org/files/banniere_horizontale_soutien_adherent_fulltext_300x100.png |
|
561 |
+ frameHeight: 100 |
|
562 |
+ id: 0_595_iframe |
|
563 |
+ - type: chucknorris |
|
564 |
+ id: 1_595_chucknorris |
|
565 |
+ - name: International Time |
|
566 |
+ icon: fad fa-clock |
|
567 |
+ widgets: |
|
568 |
+ - type: clock |
|
569 |
+ options: |
|
570 |
+ timeZone: Europe/Lisbon |
|
571 |
+ format: fr-FR |
|
572 |
+ id: 0_1799_clock |
|
573 |
+ - type: clock |
|
574 |
+ options: |
|
575 |
+ timeZone: Asia/Hong_Kong |
|
576 |
+ format: fr-FR |
|
577 |
+ id: 1_1799_clock |
|
578 |
+ displayData: |
|
579 |
+ sortBy: default |
|
580 |
+ rows: 1 |
|
581 |
+ cols: 1 |
|
582 |
+ collapsed: false |
|
583 |
+ hideForGuests: false |
|
584 |
+ - name: Productivité |
|
585 |
+ icon: xwiki.svg |
|
586 |
+ displayData: |
|
587 |
+ sortBy: random |
|
588 |
+ rows: 1 |
|
589 |
+ cols: 1 |
|
590 |
+ collapsed: false |
|
591 |
+ hideForGuests: false |
|
592 |
+ items: |
|
593 |
+ - title: Nextcloud |
|
594 |
+ description: nextcloud |
|
595 |
+ icon: nextcloud.svg |
|
596 |
+ url: https://cloud.<DOMAINE> |
|
597 |
+ target: newtab |
|
598 |
+ id: 0_1414_nextcloud |
|
599 |
+ - title: Xwiki |
|
600 |
+ description: wiki for Batcave Lab |
|
601 |
+ icon: xwiki.svg |
|
602 |
+ url: https://xwiki.<DOMAINE>/ |
|
603 |
+ target: newtab |
|
604 |
+ id: 1_1414_xwiki |
|
605 |
+ - title: Joplin |
|
606 |
+ description: Joplin server |
|
607 |
+ icon: joplin.svg |
|
608 |
+ url: https://joplin.<DOMAINE>/ |
|
609 |
+ target: newtab |
|
610 |
+ statusCheckAllowInsecure: true |
|
611 |
+ id: 2_1414_joplin |
|
612 |
+ - name: OSINT |
|
613 |
+ icon: 🕵 |
|
614 |
+ displayData: |
|
615 |
+ sortBy: random |
|
616 |
+ rows: 1 |
|
617 |
+ cols: 1 |
|
618 |
+ collapsed: false |
|
619 |
+ hideForGuests: false |
|
620 |
+ items: |
|
621 |
+ - title: Webcheck |
|
622 |
+ description: Container for find info about website |
|
623 |
+ icon: "hl-web-check\t" |
|
624 |
+ url: https://osint.<DOMAINE>/ |
|
625 |
+ target: newtab |
|
626 |
+ statusCheck: true |
|
627 |
+ statusCheckAllowInsecure: true |
|
628 |
+ id: 0_397_webcheck |
|
629 |
+ - title: SearchXNG |
|
630 |
+ description: browser for osint |
|
631 |
+ icon: searxng.svg |
|
632 |
+ url: https://searx.<DOMAINE>/ |
|
633 |
+ target: newtab |
|
634 |
+ statusCheckAllowInsecure: true |
|
635 |
+ statusCheck: true |
|
636 |
+ id: 1_397_searchxng |
|
637 |
+ - name: plopplop |
|
638 |
+ icon: github-light.svg |
|
639 |
+ widgets: |
|
640 |
+ - type: image |
|
641 |
+ options: |
|
642 |
+ 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 |
|
643 |
+ - type: image |
|
644 |
+ options: |
|
645 |
+ 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 |
|
646 |
+ - type: image |
|
647 |
+ options: |
|
648 |
+ 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 |
|
649 |
+ - type: image |
|
650 |
+ options: |
|
651 |
+ 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 |
|
652 |
+ - type: public-ip |
|
653 |
+ id: 1_886_publicip |
|
654 |
+ displayData: |
|
655 |
+ sortBy: default |
|
656 |
+ rows: 1 |
|
657 |
+ cols: 1 |
|
658 |
+ collapsed: false |
|
659 |
+ hideForGuests: false |
|
660 |
+ items: [] |
|
661 |
+ - name: Stats nextcloud |
|
662 |
+ widgets: |
|
663 |
+ - type: nextcloud-system |
|
664 |
+ useProxy: true |
|
665 |
+ options: |
|
666 |
+ hostname: https://cloud.<DOMAINE> |
|
667 |
+ username: <UTILISATEUR_NEXTCLOUD> |
|
668 |
+ password: <MOT_DE_PASSE_APPLICATION_NEXTCLOUD> |
|
669 |
+ id: 0_1541_nextcloudsystem |
| 178 |
178 |
- type: joke |
| 179 |
179 |
useProxy: true |
| 180 |
180 |
options: |
| 181 |
181 |
language: fr |
|
674 |
+ id: 1_1541_joke |
|
675 |
+ displayData: |
|
676 |
+ sortBy: default |
|
677 |
+ rows: 1 |
|
678 |
+ cols: 1 |
|
679 |
+ collapsed: false |
|
680 |
+ hideForGuests: false |
|
681 |
+ items: [] |
|
682 |
+ icon: nextcloud.svg |
| 182 |
182 |
{{/code}} |
| 183 |
183 |
|
| 184 |
|
-* ##language## : langue des blagues. JokeAPI en propose peu en français. |
|
685 |
+</details> |
|
686 |
+{{/html}} |
| 185 |
185 |
|