jandalslap

getHomepage config

May 1st, 2025 (edited)
727
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 31.34 KB | Source Code | 0 0
  1. getHomepage config
  2.  
  3. # I have homepage running in docker on the same docker network as most of the services included in it and this is why I am able to use the container name as the url. The exception being where a container network is 'host' eg Glances. I recommend using images from https://docs.linuxserver.io/images-by-category/ or https://hub.docker.com/ but I find better documentation with linuxserver.io especially for docker-compose.
  4.  
  5. # My homepage has a subdomain that is reverse proxied by SWAG using Authelia for auth. All services also require a subdomain behind the same auth if you want the links to work to access applications externally. The other option is to only have it run locally on your network and use a vpn to access. In which case you can just use the local http://<IP>:<PORT> to access. I have yet to successfully setup homepage as a subfolder using a base url /homepage. I suspect there may be some issue with that or some config error on my part.
  6.  
  7. # I use a single .env file in the same directory as my docker-compose.yml to house variables that are passed to containers, and this includes homepage configuration files. This is a great way to reduce maintenance on any changes having to only replace variables in one location. It also allows me to share this config with others without revealing secrets. An example of the use of this in a compose file is placing PUID=1000 in the .env and use the variable - PUID=${PUID} in the environment. Homepage configuration files require all variable names in the .env to begin with HOMEPAGE_VAR. An example of this in the .env file is HOMEPAGE_VAR_PLEX_HREF=https://www.plex.tv and in your config href: "{{HOMEPAGE_VAR_PLEX_HREF}}".
  8.  
  9. # I hope this helps someone who may be stuck with a certain configuration for a specific service I am also running. You do need to be mindful of yaml indentation, my configs use mostly 4 spaces but 2 spaces are accepted. The important thing is consistency within a file. These configurations are by no means exhaustive and are for my own personal setup only and a guide for anyone interested. Please refer to the official documentation at https://gethomepage.dev/ for a complete guide.
  10.  
  11. # SCREENSHOTS: https://imgur.com/a/gethomepage-dashboard-qiOG8rh
  12. NB: Images zoomed out to 50% to capture the whole page. Layout is "Mobile-optimized" using tabs for less scrolling.
  13. _____________________________________________________________________________________________________________________________________
  14.  
  15. docker-compose.yml
  16.  
  17. ---
  18. services:
  19. homepage:
  20. image: ghcr.io/gethomepage/homepage:latest
  21. container_name: homepage
  22. labels:
  23. - 'com.centurylinklabs.watchtower.enable=true'
  24. - 'com.centurylinklabs.watchtower.depends-on=glances'
  25. env_file:
  26. - .env
  27. environment:
  28. - PUID=${PUID}
  29. - PGID=${DOCKER_PGID} # changed to docker group id to prevent errors to socket access
  30. - TZ=${TZ}
  31. - HOMEPAGE_API_RESPONSE_SIZE=10mb # increased from the default 4mb as error relating to lidarr (needs fixing)
  32. - HOMEPAGE_ALLOWED_HOSTS=${HOMEPAGE_ALLOWED_HOSTS} #,<IP>:3000 # - add this IP if I ever open port 3000 locally as well
  33. #- HOMEPAGE_ALLOWED_HOSTS=* # - use to allow all if any issues with the above
  34. #- HOMEPAGE_BASE_URL=${HOMEPAGE_BASE_URL} # cant get homepage as a subfolder working behind proxy - base url issue
  35. #- GF_SERVER_ROOT_URL=${GF_SERVER_ROOT_URL} # - as a subfolder
  36. - GF_SERVER_DOMAIN=${GF_SERVER_DOMAIN}
  37. volumes:
  38. - ${LOCAL_TIME}:/etc/localtime:ro
  39. - ${LOCAL_TIME}:/etc/timezone:ro
  40. - ${CONFIG_PATH}/homepage/app/config:/app/config
  41. - ${CONFIG_PATH}/homepage/app/public/icons:/app/public/icons # place custom .png logos in here
  42. - ${CONFIG_PATH}/homepage/app/public/images:/app/public/images # place custom .png or .gif images in here
  43. - /var/run/docker.sock:/var/run/docker.sock:ro # optional, for docker integrations
  44. #ports:
  45. #- 3000:3000
  46. restart: unless-stopped
  47. depends_on:
  48. - glances
  49. networks:
  50. - docker_network
  51.  
  52. _______________________________________________________
  53.  
  54. services:
  55. glances:
  56. image: nicolargo/glances:ubuntu-latest-full
  57. container_name: glances
  58. labels:
  59. - 'com.centurylinklabs.watchtower.enable=true'
  60. env_file:
  61. - .env
  62. network_mode: host
  63. pid: host
  64. environment:
  65. - PUID=${PUID}
  66. - PGID=${PGID}
  67. - TZ=${TZ}
  68. - GLANCES_OPT=-w #--password # Unable to use basic auth password with Authelia
  69. - NVIDIA_VISIBLE_DEVICES=all
  70. volumes:
  71. - ${LOCAL_TIME}:/etc/localtime:ro
  72. - ${LOCAL_TIME}:/etc/timezone:ro
  73. #- ${CONFIG_PATH}/glances/glances.pwd:/root/.config/glances/glances.pwd:ro # Unable to use basic auth password with Authelia
  74. - /var/run/docker.sock:/var/run/docker.sock:ro
  75. - /run/user/${PUID}/podman/podman.sock:/run/user/${PUID}/podman/podman.sock
  76. #stdin_open: true
  77. #tty: true
  78. #security_opt:
  79. #- apparmor=unconfined
  80. deploy:
  81. resources:
  82. reservations:
  83. devices:
  84. - driver: nvidia
  85. count: 1
  86. capabilities: [gpu]
  87. runtime: nvidia
  88. restart: unless-stopped
  89. _____________________________________________________________________________________________________________________________________
  90.  
  91. settings.yaml
  92.  
  93. ---
  94. # For configuration options and examples, please see:
  95. # https://gethomepage.dev/latest/configs/settings
  96. title: Dashboard
  97. theme: dark # or light
  98. hideVersion: true
  99. hideErrors: true
  100. #background:
  101. #image: /images/clouds.gif
  102. color: zinc
  103. statusStyle: "dot"
  104.  
  105. layout:
  106. Media:
  107. #icon: plex.png
  108. tab: Media
  109. style: row
  110. columns: 1
  111. Downloads:
  112. #icon: /icons/downloads.png
  113. tab: Media
  114. style: row
  115. columns: 3
  116. Libraries:
  117. #icon: /icons/libraries.png
  118. tab: Media
  119. style: row
  120. columns: 4
  121. Management:
  122. #icon: /icons/management.png
  123. tab: Media
  124. style: row
  125. columns: 4
  126. Requests:
  127. #icon: /icons/
  128. tab: Media
  129. style: row
  130. columns: 2
  131. Accounts:
  132. #icon: /icons/
  133. tab: Media
  134. style: row
  135. columns: 2
  136. Server:
  137. #icon: /icons/server.png
  138. tab: Server
  139. style: row
  140. columns: 2
  141. Network:
  142. #icon: /icons/network.png
  143. tab: Server
  144. style: row
  145. columns: 2
  146. Infrastructure:
  147. #icon: /icons/infrastructure.png
  148. tab: Server
  149. style: row
  150. columns: 2
  151. Logging:
  152. #icon: /icons/network.png
  153. tab: Server
  154. style: row
  155. columns: 2
  156. Documentation:
  157. #icon: /icons/infrastructure.png
  158. tab: Server
  159. style: row
  160. columns: 1
  161. Utilities:
  162. #icon: /icons/utilities.png
  163. tab: Utilities
  164. Host:
  165. #icon: /icons/host.png
  166. tab: Metrics
  167. style: row
  168. columns: 1
  169. Metrics:
  170. #icon: /icons/metrics.png
  171. tab: Metrics
  172. style: row
  173. columns: 4
  174.  
  175.  
  176. providers:
  177. openweathermap: "{{HOMEPAGE_VAR_OPENWEATHERMAP_API}}"
  178. weatherapi: "{{HOMEPAGE_VAR_WEATHERAPI}}"
  179. _____________________________________________________________________________________________________________________________________
  180.  
  181. services.yaml
  182.  
  183. ---
  184. # For configuration options and examples, please see:
  185. # https://gethomepage.dev/latest/configs/services
  186.  
  187. - Media:
  188. - Plex:
  189. icon: plex.png
  190. href: "{{HOMEPAGE_VAR_PLEX_HREF}}"
  191. #target: _self
  192. ping: http://plex:32400
  193. description: media server
  194. widget:
  195. type: plex
  196. fields: ["streams", "movies", "tv", "albums"]
  197. url: http://plex:32400
  198. key: "{{HOMEPAGE_VAR_PLEX_KEY}}"
  199. - Tautulli:
  200. icon: tautulli.png
  201. href: "{{HOMEPAGE_VAR_TAUTULLI_HREF}}"
  202. #target: _self
  203. ping: http://tautulli:8181
  204. description: media server stats
  205. widget:
  206. type: tautulli
  207. url: http://tautulli:8181/tautulli
  208. key: "{{HOMEPAGE_VAR_TAUTULLI_KEY}}"
  209. enableUser: true # optional, defaults to false
  210. showEpisodeNumber: true # optional, defaults to false
  211. expandOneStreamToTwoRows: false # optional, defaults to true
  212. - Jellyfin:
  213. icon: jellyfin.png
  214. href: "{{HOMEPAGE_VAR_JELLYFIN_HREF}}"
  215. #target: _self
  216. ping: http://jellyfin:8096
  217. description: media server
  218. widget:
  219. type: jellyfin
  220. fields: ["movies", "series", "episodes", "songs"]
  221. url: http://jellyfin:8096
  222. key: "{{HOMEPAGE_VAR_JELLYFIN_KEY}}"
  223. enableBlocks: true # optional, defaults to false
  224. enableNowPlaying: true # optional, defaults to true
  225. enableUser: true # optional, defaults to false
  226. showEpisodeNumber: true # optional, defaults to false
  227. expandOneStreamToTwoRows: false # optional, defaults to true
  228. - Jellystat:
  229. icon: jellystat.png
  230. href: "{{HOMEPAGE_VAR_JELLYSTAT_HREF}}"
  231. #target: _self
  232. ping: http://jellystat:3000
  233. description: media server stats
  234. widget:
  235. type: jellystat
  236. url: http://jellystat:3000
  237. key: "{{HOMEPAGE_VAR_JELLYSTAT_API}}"
  238. fields: ["songs", "movies", "episodes", "other"]
  239. days: 30
  240.  
  241. - Downloads:
  242. - SABnzbd:
  243. icon: sabnzbd.png
  244. href: "{{HOMEPAGE_VAR_SABNZBD_HREF}}"
  245. #target: _self
  246. ping: http://sabnzbd:9090
  247. description: usenet client
  248. widget:
  249. type: sabnzbd
  250. fields: ["rate", "queue", "timeleft"]
  251. url: http://sabnzbd:9090
  252. key: "{{HOMEPAGE_VAR_SABNZBD_KEY}}"
  253. - qBittorrent:
  254. icon: qbittorrent.png
  255. href: "{{HOMEPAGE_VAR_QBITTORRENT_HREF}}"
  256. #target: _self
  257. ping: http://qbittorrent:8080
  258. description: torrent client
  259. widget:
  260. type: qbittorrent
  261. fields: ["leech", "download", "seed", "upload"]
  262. url: http://qbittorrent:8080
  263. username: "{{HOMEPAGE_VAR_QBITTORRENT_USERNAME}}"
  264. password: "{{HOMEPAGE_VAR_QBITTORRENT_PASSWORD}}"
  265. - newznabarr:
  266. icon: /icons/newznabarr.png
  267. href: "{{HOMEPAGE_VAR_NEWZNABARR_HREF}}"
  268. #target: _self
  269. ping: http://newznabarr:10000
  270. description: download plugin
  271. widget: # please note I am using a custom newznabarr app with api feature not available yet
  272. type: customapi
  273. url: http://newznabarr:10000/api?mode=widget&apikey={{HOMEPAGE_VAR_NEWZNABARR_URL_APIKEY}}
  274. refreshInterval: 10000 # Refresh every 10 seconds
  275. method: GET # GET request to the API
  276. display: block
  277. mappings:
  278. - field: downloading
  279. label: Downloading
  280. format: number
  281. - field: queued
  282. label: Queued
  283. format: number
  284. - field: failed
  285. label: Failed
  286. format: number
  287.  
  288. - Libraries:
  289. - Radarr:
  290. icon: radarr.png
  291. href: "{{HOMEPAGE_VAR_RADARR_HREF}}"
  292. #target: _self
  293. ping: http://radarr:7878
  294. description: movie library manager
  295. widget:
  296. type: radarr
  297. fields: ["wanted", "queued", "movies"]
  298. url: http://radarr:7878
  299. key: "{{HOMEPAGE_VAR_RADARR_KEY}}"
  300. - Sonarr:
  301. icon: sonarr.png
  302. href: "{{HOMEPAGE_VAR_SONARR_HREF}}"
  303. #target: _self
  304. ping: http://sonarr:8989
  305. description: tv show library manager
  306. widget:
  307. type: sonarr
  308. fields: ["wanted", "queued", "series"]
  309. url: http://sonarr:8989
  310. key: "{{HOMEPAGE_VAR_SONARR_KEY}}"
  311. - Lidarr:
  312. icon: lidarr.png
  313. href: "{{HOMEPAGE_VAR_LIDARR_HREF}}"
  314. #target: _self
  315. ping: http://lidarr:8686
  316. description: music library manager
  317. widget:
  318. type: lidarr
  319. fields: ["wanted", "queued", "artists"]
  320. url: http://lidarr:8686
  321. key: "{{HOMEPAGE_VAR_LIDARR_KEY}}"
  322. - Readarr:
  323. icon: readarr.png
  324. href: "{{HOMEPAGE_VAR_READARR_HREF}}"
  325. #target: _self
  326. ping: http://readarr:8787
  327. description: ebook library manager
  328. widget:
  329. type: readarr
  330. fields: ["wanted", "queued", "books"]
  331. url: http://readarr:8787
  332. key: "{{HOMEPAGE_VAR_READARR_KEY}}"
  333.  
  334. - Management:
  335. - Prowlarr:
  336. icon: prowlarr.png
  337. href: "{{HOMEPAGE_VAR_PROWLARR_HREF}}"
  338. #target: _self
  339. ping: http://prowlarr:9696
  340. description: indexer manager
  341. widget:
  342. type: prowlarr
  343. fields: ["numberOfGrabs", "numberOfQueries", "numberOfFailGrabs"]
  344. url: http://prowlarr:9696
  345. key: "{{HOMEPAGE_VAR_PROWLARR_KEY}}"
  346. - Bazarr:
  347. icon: bazarr.png
  348. href: "{{HOMEPAGE_VAR_BAZARR_HREF}}"
  349. #target: _self
  350. ping: http://bazarr:6767/bazarr
  351. description: subtitle manager
  352. widget:
  353. type: bazarr
  354. fields: ["missingEpisodes", "missingMovies"]
  355. url: http://bazarr:6767/bazarr
  356. key: "{{HOMEPAGE_VAR_BAZARR_KEY}}"
  357. - Calibre-Web:
  358. icon: /icons/calibre-web.png
  359. href: "{{HOMEPAGE_VAR_CALIBRE_WEB_HREF}}"
  360. #target: _self
  361. ping: http://calibre-web:8083
  362. description: ebook manager
  363. widget:
  364. type: calibreweb
  365. fields: ["books", "authors", "categories", "series"]
  366. url: http://calibre-web:8083
  367. username: "{{HOMEPAGE_VAR_CALIBRE_WEB_USERNAME}}"
  368. password: "{{HOMEPAGE_VAR_CALIBRE_WEB_PASSWORD}}"
  369. - Immich:
  370. icon: immich.png
  371. href: "{{HOMEPAGE_VAR_IMMICH_HREF}}"
  372. #target: _self
  373. ping: http://immich-server:2283
  374. description: photo manager
  375. widget:
  376. type: immich
  377. fields: ["users" ,"photos", "videos", "storage"]
  378. url: http://immich-server:2283
  379. key: "{{HOMEPAGE_VAR_IMMICH_API}}"
  380. version: 2 # optional, default is 1
  381.  
  382. - Requests:
  383. - Ombi:
  384. icon: ombi.png
  385. href: "{{HOMEPAGE_VAR_OMBI_HREF}}"
  386. #target: _self
  387. ping: http://ombi:3579
  388. description: requests manager
  389. widget:
  390. type: ombi
  391. fields: ["pending", "approved", "available"]
  392. url: http://ombi:3579
  393. key: "{{HOMEPAGE_VAR_OMBI_KEY}}"
  394. - Jellyseerr:
  395. icon: jellyseerr.png
  396. href: "{{HOMEPAGE_VAR_JELLYSEERR_HREF}}"
  397. #target: _self
  398. ping: http://jellyseerr:5055
  399. description: requests manager
  400. widget:
  401. type: jellyseerr
  402. fields: ["pending", "approved", "available"]
  403. url: http://jellyseerr:5055
  404. key: "{{HOMEPAGE_VAR_JELLYSEERR_KEY}}"
  405.  
  406. - Accounts:
  407. - Wizarr:
  408. icon: /icons/wizarr.png
  409. href: "{{HOMEPAGE_VAR_WIZARR_HREF}}"
  410. #target: _self
  411. ping: http://wizarr:5690
  412. description: plex invite manager
  413. widget:
  414. type: customapi
  415. url: http://wizarr-summary:3002/wizarr-summary # currently running a separate custom app for this endpoint
  416. refreshInterval: 60000
  417. method: GET
  418. display: block
  419. mappings:
  420. - field: users
  421. label: Users
  422. format: number
  423. - field: invites
  424. label: Invites
  425. format: number
  426. - field: pending
  427. label: Pending
  428. format: number
  429. - field: expired
  430. label: Expired
  431. format: number
  432. - Jfa-go:
  433. icon: /icons/jfa-go.png
  434. href: "{{HOMEPAGE_VAR_JFA_GO_HREF}}"
  435. #target: _self
  436. ping: http://jfa-go:8056
  437. description: jellyfin invite manager
  438. widget:
  439. type: customapi
  440. url: http://jfa-summary:3001/jfa-summary # currently running a separate custom app for this endpoint
  441. refreshInterval: 60000
  442. method: GET
  443. display: block
  444. mappings:
  445. - field: users
  446. label: Users
  447. format: number
  448. - field: disabled
  449. label: Disabled
  450. format: number
  451. - field: invites
  452. label: Invites
  453. format: number
  454.  
  455. - Server:
  456. - Portainer:
  457. icon: portainer.png
  458. href: "{{HOMEPAGE_VAR_PORTAINER_HREF}}"
  459. #target: _self
  460. ping: http://portainer:9000
  461. description: docker manager
  462. widget:
  463. type: portainer
  464. fields: ["running", "stopped", "total"]
  465. url: http://portainer:9000
  466. env: 2
  467. key: "{{HOMEPAGE_VAR_PORTAINER_KEY}}"
  468. - Watchtower:
  469. icon: watchtower.png
  470. ping: http://watchtower:8080
  471. description: container updater
  472. widget:
  473. type: watchtower
  474. fields: ["containers_scanned", "containers_updated", "containers_failed"]
  475. url: http://watchtower:8080
  476. key: "{{HOMEPAGE_VAR_WATCHTOWER_KEY}}"
  477. - SWAG:
  478. icon: linuxserver-io.png
  479. href: "{{HOMEPAGE_VAR_SWAG_HREF}}"
  480. #target: _self
  481. ping: http://swag:81
  482. description: proxy manager
  483. widget:
  484. type: swagdashboard
  485. fields: ["proxied", "auth", "outdated", "banned"]
  486. url: http://swag:81
  487. - NAS:
  488. icon: synology.png
  489. href: "{{HOMEPAGE_VAR_NAS_HREF}}"
  490. #target: _self
  491. ping: "{{HOMEPAGE_VAR_NAS_URL}}"
  492. description: file server
  493. widget:
  494. type: diskstation
  495. fields: ["uptime", "volumeAvailable", "resources.cpu", "resources.mem"]
  496. url: "{{HOMEPAGE_VAR_NAS_URL}}"
  497. username: "{{HOMEPAGE_VAR_NAS_USERNAME}}"
  498. password: "{{HOMEPAGE_VAR_NAS_PASSWORD}}"
  499. volume: #volume_N # optional
  500.  
  501. - Network:
  502. - Uptime-Kuma:
  503. icon: uptime-kuma.png
  504. href: "{{HOMEPAGE_VAR_UPTIME_KUMA_HREF}}"
  505. #target: _self
  506. ping: http://uptime-kuma:3001
  507. description: website monitor
  508. widget:
  509. type: uptimekuma
  510. url: http://uptime-kuma:3001
  511. slug: "{{HOMEPAGE_VAR_UPTIME_KUMA_SLUG}}"
  512. - NetAlertX:
  513. icon: netalertx.png
  514. href: "{{HOMEPAGE_VAR_NETALERTX_HREF}}"
  515. #target: _self
  516. ping: "{{HOMEPAGE_VAR_NETALERTX_URL}}"
  517. description: network activity
  518. widget:
  519. type: netalertx
  520. fields: ["total", "connected", "new_devices", "down_alerts"]
  521. url: "{{HOMEPAGE_VAR_NETALERTX_URL}}"
  522. key: "{{HOMEPAGE_VAR_NETALERTX_KEY}}"
  523. - Speedtest:
  524. icon: speedtest-tracker.png
  525. href: "{{HOMEPAGE_VAR_SPEEDTEST_HREF}}"
  526. #target: _self
  527. ping: http://speedtest:80
  528. description: speed test
  529. widget:
  530. type: speedtest
  531. fields: ["download", "upload", "ping"]
  532. url: http://speedtest:80
  533. key: "{{HOMEPAGE_VAR_SPEEDTEST_KEY}}"
  534. - DDNS Updater:
  535. icon: /icons/ddns-updater.png
  536. href: "{{HOMEPAGE_VAR_DDNS_UPDATER_HREF}}"
  537. #target: _self
  538. ping: http://ddns-updater:8000/ddns-updater
  539. description: ip updater
  540. widget: # Custom widget for cloudflare dns - other providers will differ
  541. type: customapi
  542. url: https://api.cloudflare.com/client/v4/zones/{{HOMEPAGE_VAR_DDNS_UPDATER_CLOUDFLARE_ZONE_ID}}/dns_records?type=A # DNS Zone ID
  543. refreshInterval: 10000
  544. method: GET
  545. headers:
  546. Authorization: Bearer {{HOMEPAGE_VAR_DDNS_UPDATER_CLOUDFLARE_API}} # Create a new read only Zone DNS API key for this widget
  547. Content-Type: application/json
  548. mappings:
  549. - field: 'result[0].name'
  550. label: Domain Name
  551. format: text
  552. - field: 'result[0].content'
  553. label: DNS IP
  554. format: text
  555. - field: 'result[0].modified_on'
  556. label: Updated
  557. format: date
  558. dateStyle: medium
  559. timeStyle: short
  560. locale: en-{{HOMEPAGE_VAR_DDNS_UPDATER_WIDGET_LOCAL}} # two letter country code eg 'en-US'
  561.  
  562. - Infrastructure:
  563. - Router:
  564. icon: /icons/tp-link.png
  565. href: "{{HOMEPAGE_VAR_ROUTER_HREF}}"
  566. #target: _self
  567. ping: "{{HOMEPAGE_VAR_ROUTER_URL}}"
  568. description: gateway router
  569. widget:
  570. type: customapi
  571. url: https://api.ipify.org?format=json # public site
  572. refreshInterval: 10000 # optional - in milliseconds, defaults to 10s
  573. method: GET
  574. mappings:
  575. - field: 'ip'
  576. label: Current IP
  577. format: text
  578. - Peanut:
  579. icon: peanut.png
  580. href: "{{HOMEPAGE_VAR_PEANUT_HREF}}"
  581. #target: _self
  582. ping: http://peanut:8080
  583. description: ups monitor
  584. widget:
  585. type: peanut
  586. url: http://peanut:8080
  587. key: ups
  588.  
  589. - Logging:
  590. - Dozzle:
  591. icon: /icons/dozzle.png
  592. href: "{{HOMEPAGE_VAR_DOZZLE_HREF}}"
  593. #target: _self
  594. ping: http://dozzle:8080
  595. description: docker logs
  596. widget:
  597. type: customapi
  598. url: http://dozzle-summary:8080/dozzle-summary # currently running a separate custom app for this endpoint
  599. refreshInterval: 60000
  600. mappings:
  601. - field: containers
  602. label: Containers
  603. - field: running
  604. label: Running
  605. - field: version
  606. label: Version
  607. - Lazydocker:
  608. icon: /icons/lazydocker.png
  609. href: "{{HOMEPAGE_VAR_LAZYDOCKER_HREF}}"
  610. #target: _self
  611. ping: http://lazydocker:7681
  612. description: docker cli
  613. widget:
  614. type: customapi
  615. url: http://lazydocker-summary:8082/lazydocker-summary # currently running a separate custom app for this endpoint
  616. refreshInterval: 60000
  617. mappings:
  618. - field: containers
  619. label: Containers
  620. - field: running
  621. label: Running
  622. - field: images
  623. label: Images
  624. #- field: version
  625. #label: Version
  626.  
  627. - Documentation:
  628. - bookstack:
  629. icon: /icons/bookstack.png
  630. href: "{{HOMEPAGE_VAR_BOOKSTACK_HREF}}"
  631. ping: http://bookstack:80
  632. description: document manager
  633. widget:
  634. type: customapi
  635. url: http://bookstack-metrics:8000/status # currently running a separate custom app for this endpoint
  636. refreshInterval: 60000
  637. method: GET
  638. display: block
  639. mappings:
  640. - field: shelves
  641. label: Shelves
  642. format: number
  643. - field: books
  644. label: Books
  645. format: number
  646. - field: pages
  647. label: Pages
  648. format: number
  649. - field: users
  650. label: Users
  651. format: number
  652.  
  653. - Utilities:
  654. - Calendar:
  655. icon: synology-calendar.png
  656. description: calendar
  657. widget:
  658. type: calendar
  659. view: monthly # optional - possible values monthly, agenda
  660. maxEvents: 10 # optional - defaults to 10
  661. showTime: true # optional - show time for event happening today - defaults to false
  662. timezone: "{{HOMEPAGE_VAR_CALENDAR_TIMEZONE}}" # timezone in REGION/CITY format eg America/New_York refer: https://timezonedb.com/time-zones # optional and only when timezone is not detected properly (slightly slower performance) - force timezone for ical events (if it's the same - no change, if missing or different in ical - will be converted to this timezone)
  663. integrations:
  664. - type: sonarr
  665. service_group: Libraries # group name where widget exists
  666. service_name: Sonarr # service name for that widget
  667. - type: radarr
  668. service_group: Libraries # group name where widget exists
  669. service_name: Radarr # service name for that widget
  670. - type: lidarr # radarr, sonarr, lidarr, readarr, ical
  671. service_group: Libraries # group name where widget exists
  672. service_name: Lidarr # service name for that widget
  673. - type: readarr
  674. service_group: Libraries # group name where widget exists
  675. service_name: Readarr # service name for that widget
  676.  
  677. - Releases:
  678. icon: plex-alt.png
  679. description: calendar
  680. widget:
  681. type: calendar
  682. view: agenda # optional - possible values monthly, agenda
  683. maxEvents: 20 # optional - defaults to 10
  684. showTime: true # optional - show time for event happening today - defaults to false
  685. timezone: "{{HOMEPAGE_VAR_CALENDAR_TIMEZONE}}" # timezone in REGION/CITY format eg America/New_York refer: https://timezonedb.com/time-zones # optional and only when timezone is not detected properly (slightly slower performance) - force timezone for ical events (if it's the same - no change, if missing or different in ical - will be converted to this timezone)
  686. integrations:
  687. - type: sonarr
  688. service_group: Libraries # group name where widget exists
  689. service_name: Sonarr # service name for that widget
  690. - type: radarr
  691. service_group: Libraries # group name where widget exists
  692. service_name: Radarr # service name for that widget
  693. - type: lidarr # radarr, sonarr, lidarr, readarr, ical
  694. service_group: Libraries # group name where widget exists
  695. service_name: Lidarr # service name for that widget
  696. - type: readarr
  697. service_group: Libraries # group name where widget exists
  698. service_name: Readarr # service name for that widget
  699. - Host:
  700. - Glances:
  701. icon: glances.png
  702. href: "{{HOMEPAGE_VAR_GLANCES_HREF}}"
  703. #target: _self
  704. ping: "{{HOMEPAGE_VAR_GLANCES_URL}}"
  705. description: host metrics
  706. widget:
  707. type: customapi
  708. url: "{{HOMEPAGE_VAR_GLANCES_SUMMARY_URL}}"
  709. mappings:
  710. - field: users
  711. label: Users
  712. #- field: services
  713. #label: Services # Processes running
  714. - field: containers
  715. label: Containers
  716. - field: sensors
  717. label: Sensors
  718. - field: uptime
  719. label: Uptime
  720. format: text
  721.  
  722. - Metrics:
  723. - Info:
  724. widget:
  725. type: glances
  726. url: "{{HOMEPAGE_VAR_GLANCES_URL}}"
  727. version: 4
  728. metric: info
  729. - CPU Usage:
  730. widget:
  731. type: glances
  732. url: "{{HOMEPAGE_VAR_GLANCES_URL}}"
  733. version: 4
  734. metric: cpu
  735. - Network Usage:
  736. widget:
  737. type: glances
  738. url: "{{HOMEPAGE_VAR_GLANCES_URL}}"
  739. version: 4
  740. metric: network:{{HOMEPAGE_VAR_GLANCES_NETWORK_ADAPTER_ID}} # eg eth0
  741. - Memory Usage:
  742. widget:
  743. type: glances
  744. url: "{{HOMEPAGE_VAR_GLANCES_URL}}"
  745. version: 4
  746. metric: memory
  747. - Processes:
  748. widget:
  749. type: glances
  750. url: "{{HOMEPAGE_VAR_GLANCES_URL}}"
  751. version: 4
  752. metric: process
  753. - Disk I/O:
  754. widget:
  755. type: glances
  756. url: "{{HOMEPAGE_VAR_GLANCES_URL}}"
  757. version: 4
  758. metric: disk:{{HOMEPAGE_VAR_GLANCES_DISK_ID}} # eg nvme01
  759. - GPU:
  760. widget:
  761. type: glances
  762. url: "{{HOMEPAGE_VAR_GLANCES_URL}}"
  763. version: 4
  764. metric: gpu:{{HOMEPAGE_VAR_GLANCES_GRAPHICS_CARD_ID}} # eg nvidia0
  765. - CPU Temp:
  766. widget:
  767. type: glances
  768. url: "{{HOMEPAGE_VAR_GLANCES_URL}}"
  769. version: 4
  770. metric: sensor:Sensor 1
  771. _____________________________________________________________________________________________________________________________________
  772.  
  773. widgets.yaml
  774.  
  775. ---
  776. # For configuration options and examples, please see:
  777. # https://gethomepage.dev/latest/configs/service-widgets
  778.  
  779. - logo:
  780. icon: /icons/logo.png
  781.  
  782. - greeting:
  783. text_size: xl
  784. text: "{{HOMEPAGE_VAR_GREETING_TEXT}}"
  785.  
  786. - openweathermap:
  787. label: "{{HOMEPAGE_VAR_OPENWEATHERMAP_LABEL}}" #optional
  788. latitude: "{{HOMEPAGE_VAR_OPENWEATHERMAP_LATITUDE}}"
  789. longitude: "{{HOMEPAGE_VAR_OPENWEATHERMAP_LONGITUTE}}"
  790. units: metric # or imperial
  791. provider: openweathermap
  792. cache: 5 # Time in minutes to cache API responses, to stay within limits
  793. format: # optional, Intl.NumberFormat options
  794. maximumFractionDigits: 1
  795.  
  796. - datetime:
  797. text_size: md
  798. format:
  799. dateStyle: long
  800. timeStyle: short
  801. hourCycle: h23
  802.  
  803. - resources:
  804. #expanded: true
  805. cpu: true
  806. memory: true
  807. disk: /
  808. cputemp: true
  809. tempmax: 70 # optional, maximum cpu temp
  810. units: metric
  811. uptime: true
  812. network: true
  813.  
  814. - search:
  815. provider: google
  816. target: _blank
  817.  
  818. _____________________________________________________________________________________________________________________________________
  819.  
  820. bookmarks.yaml
  821.  
  822. ---
  823. # For configuration options and examples, please see:
  824. # https://gethomepage.dev/latest/configs/bookmarks
  825.  
  826. - Developer:
  827. - Github:
  828. - abbr: GH
  829. href: "{{HOMEPAGE_VAR_GITHUB_HREF}}"
  830.  
  831. - Social:
  832. - Reddit:
  833. - abbr: RE
  834. href: https://reddit.com/
  835.  
  836. - Entertainment:
  837. - Organizr:
  838. - abbr: OR
  839. href: "{{HOMEPAGE_VAR_ORGANIZR_HREF}}"
  840.  
  841. _____________________________________________________________________________________________________________________________________
  842.  
Tags: homepage
Comments
Add Comment
Please, Sign In to add comment