Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- getHomepage config
- # 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.
- # 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.
- # 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}}".
- # 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.
- # SCREENSHOTS: https://imgur.com/a/gethomepage-dashboard-qiOG8rh
- NB: Images zoomed out to 50% to capture the whole page. Layout is "Mobile-optimized" using tabs for less scrolling.
- _____________________________________________________________________________________________________________________________________
- docker-compose.yml
- ---
- services:
- homepage:
- image: ghcr.io/gethomepage/homepage:latest
- container_name: homepage
- labels:
- - 'com.centurylinklabs.watchtower.enable=true'
- - 'com.centurylinklabs.watchtower.depends-on=glances'
- env_file:
- - .env
- environment:
- - PUID=${PUID}
- - PGID=${DOCKER_PGID} # changed to docker group id to prevent errors to socket access
- - TZ=${TZ}
- - HOMEPAGE_API_RESPONSE_SIZE=10mb # increased from the default 4mb as error relating to lidarr (needs fixing)
- - HOMEPAGE_ALLOWED_HOSTS=${HOMEPAGE_ALLOWED_HOSTS} #,<IP>:3000 # - add this IP if I ever open port 3000 locally as well
- #- HOMEPAGE_ALLOWED_HOSTS=* # - use to allow all if any issues with the above
- #- HOMEPAGE_BASE_URL=${HOMEPAGE_BASE_URL} # cant get homepage as a subfolder working behind proxy - base url issue
- #- GF_SERVER_ROOT_URL=${GF_SERVER_ROOT_URL} # - as a subfolder
- - GF_SERVER_DOMAIN=${GF_SERVER_DOMAIN}
- volumes:
- - ${LOCAL_TIME}:/etc/localtime:ro
- - ${LOCAL_TIME}:/etc/timezone:ro
- - ${CONFIG_PATH}/homepage/app/config:/app/config
- - ${CONFIG_PATH}/homepage/app/public/icons:/app/public/icons # place custom .png logos in here
- - ${CONFIG_PATH}/homepage/app/public/images:/app/public/images # place custom .png or .gif images in here
- - /var/run/docker.sock:/var/run/docker.sock:ro # optional, for docker integrations
- #ports:
- #- 3000:3000
- restart: unless-stopped
- depends_on:
- - glances
- networks:
- - docker_network
- _______________________________________________________
- services:
- glances:
- image: nicolargo/glances:ubuntu-latest-full
- container_name: glances
- labels:
- - 'com.centurylinklabs.watchtower.enable=true'
- env_file:
- - .env
- network_mode: host
- pid: host
- environment:
- - PUID=${PUID}
- - PGID=${PGID}
- - TZ=${TZ}
- - GLANCES_OPT=-w #--password # Unable to use basic auth password with Authelia
- - NVIDIA_VISIBLE_DEVICES=all
- volumes:
- - ${LOCAL_TIME}:/etc/localtime:ro
- - ${LOCAL_TIME}:/etc/timezone:ro
- #- ${CONFIG_PATH}/glances/glances.pwd:/root/.config/glances/glances.pwd:ro # Unable to use basic auth password with Authelia
- - /var/run/docker.sock:/var/run/docker.sock:ro
- - /run/user/${PUID}/podman/podman.sock:/run/user/${PUID}/podman/podman.sock
- #stdin_open: true
- #tty: true
- #security_opt:
- #- apparmor=unconfined
- deploy:
- resources:
- reservations:
- devices:
- - driver: nvidia
- count: 1
- capabilities: [gpu]
- runtime: nvidia
- restart: unless-stopped
- _____________________________________________________________________________________________________________________________________
- settings.yaml
- ---
- # For configuration options and examples, please see:
- # https://gethomepage.dev/latest/configs/settings
- title: Dashboard
- theme: dark # or light
- hideVersion: true
- hideErrors: true
- #background:
- #image: /images/clouds.gif
- color: zinc
- statusStyle: "dot"
- layout:
- Media:
- #icon: plex.png
- tab: Media
- style: row
- columns: 1
- Downloads:
- #icon: /icons/downloads.png
- tab: Media
- style: row
- columns: 3
- Libraries:
- #icon: /icons/libraries.png
- tab: Media
- style: row
- columns: 4
- Management:
- #icon: /icons/management.png
- tab: Media
- style: row
- columns: 4
- Requests:
- #icon: /icons/
- tab: Media
- style: row
- columns: 2
- Accounts:
- #icon: /icons/
- tab: Media
- style: row
- columns: 2
- Server:
- #icon: /icons/server.png
- tab: Server
- style: row
- columns: 2
- Network:
- #icon: /icons/network.png
- tab: Server
- style: row
- columns: 2
- Infrastructure:
- #icon: /icons/infrastructure.png
- tab: Server
- style: row
- columns: 2
- Logging:
- #icon: /icons/network.png
- tab: Server
- style: row
- columns: 2
- Documentation:
- #icon: /icons/infrastructure.png
- tab: Server
- style: row
- columns: 1
- Utilities:
- #icon: /icons/utilities.png
- tab: Utilities
- Host:
- #icon: /icons/host.png
- tab: Metrics
- style: row
- columns: 1
- Metrics:
- #icon: /icons/metrics.png
- tab: Metrics
- style: row
- columns: 4
- providers:
- openweathermap: "{{HOMEPAGE_VAR_OPENWEATHERMAP_API}}"
- weatherapi: "{{HOMEPAGE_VAR_WEATHERAPI}}"
- _____________________________________________________________________________________________________________________________________
- services.yaml
- ---
- # For configuration options and examples, please see:
- # https://gethomepage.dev/latest/configs/services
- - Media:
- - Plex:
- icon: plex.png
- href: "{{HOMEPAGE_VAR_PLEX_HREF}}"
- #target: _self
- ping: http://plex:32400
- description: media server
- widget:
- type: plex
- fields: ["streams", "movies", "tv", "albums"]
- url: http://plex:32400
- key: "{{HOMEPAGE_VAR_PLEX_KEY}}"
- - Tautulli:
- icon: tautulli.png
- href: "{{HOMEPAGE_VAR_TAUTULLI_HREF}}"
- #target: _self
- ping: http://tautulli:8181
- description: media server stats
- widget:
- type: tautulli
- url: http://tautulli:8181/tautulli
- key: "{{HOMEPAGE_VAR_TAUTULLI_KEY}}"
- enableUser: true # optional, defaults to false
- showEpisodeNumber: true # optional, defaults to false
- expandOneStreamToTwoRows: false # optional, defaults to true
- - Jellyfin:
- icon: jellyfin.png
- href: "{{HOMEPAGE_VAR_JELLYFIN_HREF}}"
- #target: _self
- ping: http://jellyfin:8096
- description: media server
- widget:
- type: jellyfin
- fields: ["movies", "series", "episodes", "songs"]
- url: http://jellyfin:8096
- key: "{{HOMEPAGE_VAR_JELLYFIN_KEY}}"
- enableBlocks: true # optional, defaults to false
- enableNowPlaying: true # optional, defaults to true
- enableUser: true # optional, defaults to false
- showEpisodeNumber: true # optional, defaults to false
- expandOneStreamToTwoRows: false # optional, defaults to true
- - Jellystat:
- icon: jellystat.png
- href: "{{HOMEPAGE_VAR_JELLYSTAT_HREF}}"
- #target: _self
- ping: http://jellystat:3000
- description: media server stats
- widget:
- type: jellystat
- url: http://jellystat:3000
- key: "{{HOMEPAGE_VAR_JELLYSTAT_API}}"
- fields: ["songs", "movies", "episodes", "other"]
- days: 30
- - Downloads:
- - SABnzbd:
- icon: sabnzbd.png
- href: "{{HOMEPAGE_VAR_SABNZBD_HREF}}"
- #target: _self
- ping: http://sabnzbd:9090
- description: usenet client
- widget:
- type: sabnzbd
- fields: ["rate", "queue", "timeleft"]
- url: http://sabnzbd:9090
- key: "{{HOMEPAGE_VAR_SABNZBD_KEY}}"
- - qBittorrent:
- icon: qbittorrent.png
- href: "{{HOMEPAGE_VAR_QBITTORRENT_HREF}}"
- #target: _self
- ping: http://qbittorrent:8080
- description: torrent client
- widget:
- type: qbittorrent
- fields: ["leech", "download", "seed", "upload"]
- url: http://qbittorrent:8080
- username: "{{HOMEPAGE_VAR_QBITTORRENT_USERNAME}}"
- password: "{{HOMEPAGE_VAR_QBITTORRENT_PASSWORD}}"
- - newznabarr:
- icon: /icons/newznabarr.png
- href: "{{HOMEPAGE_VAR_NEWZNABARR_HREF}}"
- #target: _self
- ping: http://newznabarr:10000
- description: download plugin
- widget: # please note I am using a custom newznabarr app with api feature not available yet
- type: customapi
- url: http://newznabarr:10000/api?mode=widget&apikey={{HOMEPAGE_VAR_NEWZNABARR_URL_APIKEY}}
- refreshInterval: 10000 # Refresh every 10 seconds
- method: GET # GET request to the API
- display: block
- mappings:
- - field: downloading
- label: Downloading
- format: number
- - field: queued
- label: Queued
- format: number
- - field: failed
- label: Failed
- format: number
- - Libraries:
- - Radarr:
- icon: radarr.png
- href: "{{HOMEPAGE_VAR_RADARR_HREF}}"
- #target: _self
- ping: http://radarr:7878
- description: movie library manager
- widget:
- type: radarr
- fields: ["wanted", "queued", "movies"]
- url: http://radarr:7878
- key: "{{HOMEPAGE_VAR_RADARR_KEY}}"
- - Sonarr:
- icon: sonarr.png
- href: "{{HOMEPAGE_VAR_SONARR_HREF}}"
- #target: _self
- ping: http://sonarr:8989
- description: tv show library manager
- widget:
- type: sonarr
- fields: ["wanted", "queued", "series"]
- url: http://sonarr:8989
- key: "{{HOMEPAGE_VAR_SONARR_KEY}}"
- - Lidarr:
- icon: lidarr.png
- href: "{{HOMEPAGE_VAR_LIDARR_HREF}}"
- #target: _self
- ping: http://lidarr:8686
- description: music library manager
- widget:
- type: lidarr
- fields: ["wanted", "queued", "artists"]
- url: http://lidarr:8686
- key: "{{HOMEPAGE_VAR_LIDARR_KEY}}"
- - Readarr:
- icon: readarr.png
- href: "{{HOMEPAGE_VAR_READARR_HREF}}"
- #target: _self
- ping: http://readarr:8787
- description: ebook library manager
- widget:
- type: readarr
- fields: ["wanted", "queued", "books"]
- url: http://readarr:8787
- key: "{{HOMEPAGE_VAR_READARR_KEY}}"
- - Management:
- - Prowlarr:
- icon: prowlarr.png
- href: "{{HOMEPAGE_VAR_PROWLARR_HREF}}"
- #target: _self
- ping: http://prowlarr:9696
- description: indexer manager
- widget:
- type: prowlarr
- fields: ["numberOfGrabs", "numberOfQueries", "numberOfFailGrabs"]
- url: http://prowlarr:9696
- key: "{{HOMEPAGE_VAR_PROWLARR_KEY}}"
- - Bazarr:
- icon: bazarr.png
- href: "{{HOMEPAGE_VAR_BAZARR_HREF}}"
- #target: _self
- ping: http://bazarr:6767/bazarr
- description: subtitle manager
- widget:
- type: bazarr
- fields: ["missingEpisodes", "missingMovies"]
- url: http://bazarr:6767/bazarr
- key: "{{HOMEPAGE_VAR_BAZARR_KEY}}"
- - Calibre-Web:
- icon: /icons/calibre-web.png
- href: "{{HOMEPAGE_VAR_CALIBRE_WEB_HREF}}"
- #target: _self
- ping: http://calibre-web:8083
- description: ebook manager
- widget:
- type: calibreweb
- fields: ["books", "authors", "categories", "series"]
- url: http://calibre-web:8083
- username: "{{HOMEPAGE_VAR_CALIBRE_WEB_USERNAME}}"
- password: "{{HOMEPAGE_VAR_CALIBRE_WEB_PASSWORD}}"
- - Immich:
- icon: immich.png
- href: "{{HOMEPAGE_VAR_IMMICH_HREF}}"
- #target: _self
- ping: http://immich-server:2283
- description: photo manager
- widget:
- type: immich
- fields: ["users" ,"photos", "videos", "storage"]
- url: http://immich-server:2283
- key: "{{HOMEPAGE_VAR_IMMICH_API}}"
- version: 2 # optional, default is 1
- - Requests:
- - Ombi:
- icon: ombi.png
- href: "{{HOMEPAGE_VAR_OMBI_HREF}}"
- #target: _self
- ping: http://ombi:3579
- description: requests manager
- widget:
- type: ombi
- fields: ["pending", "approved", "available"]
- url: http://ombi:3579
- key: "{{HOMEPAGE_VAR_OMBI_KEY}}"
- - Jellyseerr:
- icon: jellyseerr.png
- href: "{{HOMEPAGE_VAR_JELLYSEERR_HREF}}"
- #target: _self
- ping: http://jellyseerr:5055
- description: requests manager
- widget:
- type: jellyseerr
- fields: ["pending", "approved", "available"]
- url: http://jellyseerr:5055
- key: "{{HOMEPAGE_VAR_JELLYSEERR_KEY}}"
- - Accounts:
- - Wizarr:
- icon: /icons/wizarr.png
- href: "{{HOMEPAGE_VAR_WIZARR_HREF}}"
- #target: _self
- ping: http://wizarr:5690
- description: plex invite manager
- widget:
- type: customapi
- url: http://wizarr-summary:3002/wizarr-summary # currently running a separate custom app for this endpoint
- refreshInterval: 60000
- method: GET
- display: block
- mappings:
- - field: users
- label: Users
- format: number
- - field: invites
- label: Invites
- format: number
- - field: pending
- label: Pending
- format: number
- - field: expired
- label: Expired
- format: number
- - Jfa-go:
- icon: /icons/jfa-go.png
- href: "{{HOMEPAGE_VAR_JFA_GO_HREF}}"
- #target: _self
- ping: http://jfa-go:8056
- description: jellyfin invite manager
- widget:
- type: customapi
- url: http://jfa-summary:3001/jfa-summary # currently running a separate custom app for this endpoint
- refreshInterval: 60000
- method: GET
- display: block
- mappings:
- - field: users
- label: Users
- format: number
- - field: disabled
- label: Disabled
- format: number
- - field: invites
- label: Invites
- format: number
- - Server:
- - Portainer:
- icon: portainer.png
- href: "{{HOMEPAGE_VAR_PORTAINER_HREF}}"
- #target: _self
- ping: http://portainer:9000
- description: docker manager
- widget:
- type: portainer
- fields: ["running", "stopped", "total"]
- url: http://portainer:9000
- env: 2
- key: "{{HOMEPAGE_VAR_PORTAINER_KEY}}"
- - Watchtower:
- icon: watchtower.png
- ping: http://watchtower:8080
- description: container updater
- widget:
- type: watchtower
- fields: ["containers_scanned", "containers_updated", "containers_failed"]
- url: http://watchtower:8080
- key: "{{HOMEPAGE_VAR_WATCHTOWER_KEY}}"
- - SWAG:
- icon: linuxserver-io.png
- href: "{{HOMEPAGE_VAR_SWAG_HREF}}"
- #target: _self
- ping: http://swag:81
- description: proxy manager
- widget:
- type: swagdashboard
- fields: ["proxied", "auth", "outdated", "banned"]
- url: http://swag:81
- - NAS:
- icon: synology.png
- href: "{{HOMEPAGE_VAR_NAS_HREF}}"
- #target: _self
- ping: "{{HOMEPAGE_VAR_NAS_URL}}"
- description: file server
- widget:
- type: diskstation
- fields: ["uptime", "volumeAvailable", "resources.cpu", "resources.mem"]
- url: "{{HOMEPAGE_VAR_NAS_URL}}"
- username: "{{HOMEPAGE_VAR_NAS_USERNAME}}"
- password: "{{HOMEPAGE_VAR_NAS_PASSWORD}}"
- volume: #volume_N # optional
- - Network:
- - Uptime-Kuma:
- icon: uptime-kuma.png
- href: "{{HOMEPAGE_VAR_UPTIME_KUMA_HREF}}"
- #target: _self
- ping: http://uptime-kuma:3001
- description: website monitor
- widget:
- type: uptimekuma
- url: http://uptime-kuma:3001
- slug: "{{HOMEPAGE_VAR_UPTIME_KUMA_SLUG}}"
- - NetAlertX:
- icon: netalertx.png
- href: "{{HOMEPAGE_VAR_NETALERTX_HREF}}"
- #target: _self
- ping: "{{HOMEPAGE_VAR_NETALERTX_URL}}"
- description: network activity
- widget:
- type: netalertx
- fields: ["total", "connected", "new_devices", "down_alerts"]
- url: "{{HOMEPAGE_VAR_NETALERTX_URL}}"
- key: "{{HOMEPAGE_VAR_NETALERTX_KEY}}"
- - Speedtest:
- icon: speedtest-tracker.png
- href: "{{HOMEPAGE_VAR_SPEEDTEST_HREF}}"
- #target: _self
- ping: http://speedtest:80
- description: speed test
- widget:
- type: speedtest
- fields: ["download", "upload", "ping"]
- url: http://speedtest:80
- key: "{{HOMEPAGE_VAR_SPEEDTEST_KEY}}"
- - DDNS Updater:
- icon: /icons/ddns-updater.png
- href: "{{HOMEPAGE_VAR_DDNS_UPDATER_HREF}}"
- #target: _self
- ping: http://ddns-updater:8000/ddns-updater
- description: ip updater
- widget: # Custom widget for cloudflare dns - other providers will differ
- type: customapi
- url: https://api.cloudflare.com/client/v4/zones/{{HOMEPAGE_VAR_DDNS_UPDATER_CLOUDFLARE_ZONE_ID}}/dns_records?type=A # DNS Zone ID
- refreshInterval: 10000
- method: GET
- headers:
- Authorization: Bearer {{HOMEPAGE_VAR_DDNS_UPDATER_CLOUDFLARE_API}} # Create a new read only Zone DNS API key for this widget
- Content-Type: application/json
- mappings:
- - field: 'result[0].name'
- label: Domain Name
- format: text
- - field: 'result[0].content'
- label: DNS IP
- format: text
- - field: 'result[0].modified_on'
- label: Updated
- format: date
- dateStyle: medium
- timeStyle: short
- locale: en-{{HOMEPAGE_VAR_DDNS_UPDATER_WIDGET_LOCAL}} # two letter country code eg 'en-US'
- - Infrastructure:
- - Router:
- icon: /icons/tp-link.png
- href: "{{HOMEPAGE_VAR_ROUTER_HREF}}"
- #target: _self
- ping: "{{HOMEPAGE_VAR_ROUTER_URL}}"
- description: gateway router
- widget:
- type: customapi
- url: https://api.ipify.org?format=json # public site
- refreshInterval: 10000 # optional - in milliseconds, defaults to 10s
- method: GET
- mappings:
- - field: 'ip'
- label: Current IP
- format: text
- - Peanut:
- icon: peanut.png
- href: "{{HOMEPAGE_VAR_PEANUT_HREF}}"
- #target: _self
- ping: http://peanut:8080
- description: ups monitor
- widget:
- type: peanut
- url: http://peanut:8080
- key: ups
- - Logging:
- - Dozzle:
- icon: /icons/dozzle.png
- href: "{{HOMEPAGE_VAR_DOZZLE_HREF}}"
- #target: _self
- ping: http://dozzle:8080
- description: docker logs
- widget:
- type: customapi
- url: http://dozzle-summary:8080/dozzle-summary # currently running a separate custom app for this endpoint
- refreshInterval: 60000
- mappings:
- - field: containers
- label: Containers
- - field: running
- label: Running
- - field: version
- label: Version
- - Lazydocker:
- icon: /icons/lazydocker.png
- href: "{{HOMEPAGE_VAR_LAZYDOCKER_HREF}}"
- #target: _self
- ping: http://lazydocker:7681
- description: docker cli
- widget:
- type: customapi
- url: http://lazydocker-summary:8082/lazydocker-summary # currently running a separate custom app for this endpoint
- refreshInterval: 60000
- mappings:
- - field: containers
- label: Containers
- - field: running
- label: Running
- - field: images
- label: Images
- #- field: version
- #label: Version
- - Documentation:
- - bookstack:
- icon: /icons/bookstack.png
- href: "{{HOMEPAGE_VAR_BOOKSTACK_HREF}}"
- ping: http://bookstack:80
- description: document manager
- widget:
- type: customapi
- url: http://bookstack-metrics:8000/status # currently running a separate custom app for this endpoint
- refreshInterval: 60000
- method: GET
- display: block
- mappings:
- - field: shelves
- label: Shelves
- format: number
- - field: books
- label: Books
- format: number
- - field: pages
- label: Pages
- format: number
- - field: users
- label: Users
- format: number
- - Utilities:
- - Calendar:
- icon: synology-calendar.png
- description: calendar
- widget:
- type: calendar
- view: monthly # optional - possible values monthly, agenda
- maxEvents: 10 # optional - defaults to 10
- showTime: true # optional - show time for event happening today - defaults to false
- 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)
- integrations:
- - type: sonarr
- service_group: Libraries # group name where widget exists
- service_name: Sonarr # service name for that widget
- - type: radarr
- service_group: Libraries # group name where widget exists
- service_name: Radarr # service name for that widget
- - type: lidarr # radarr, sonarr, lidarr, readarr, ical
- service_group: Libraries # group name where widget exists
- service_name: Lidarr # service name for that widget
- - type: readarr
- service_group: Libraries # group name where widget exists
- service_name: Readarr # service name for that widget
- - Releases:
- icon: plex-alt.png
- description: calendar
- widget:
- type: calendar
- view: agenda # optional - possible values monthly, agenda
- maxEvents: 20 # optional - defaults to 10
- showTime: true # optional - show time for event happening today - defaults to false
- 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)
- integrations:
- - type: sonarr
- service_group: Libraries # group name where widget exists
- service_name: Sonarr # service name for that widget
- - type: radarr
- service_group: Libraries # group name where widget exists
- service_name: Radarr # service name for that widget
- - type: lidarr # radarr, sonarr, lidarr, readarr, ical
- service_group: Libraries # group name where widget exists
- service_name: Lidarr # service name for that widget
- - type: readarr
- service_group: Libraries # group name where widget exists
- service_name: Readarr # service name for that widget
- - Host:
- - Glances:
- icon: glances.png
- href: "{{HOMEPAGE_VAR_GLANCES_HREF}}"
- #target: _self
- ping: "{{HOMEPAGE_VAR_GLANCES_URL}}"
- description: host metrics
- widget:
- type: customapi
- url: "{{HOMEPAGE_VAR_GLANCES_SUMMARY_URL}}"
- mappings:
- - field: users
- label: Users
- #- field: services
- #label: Services # Processes running
- - field: containers
- label: Containers
- - field: sensors
- label: Sensors
- - field: uptime
- label: Uptime
- format: text
- - Metrics:
- - Info:
- widget:
- type: glances
- url: "{{HOMEPAGE_VAR_GLANCES_URL}}"
- version: 4
- metric: info
- - CPU Usage:
- widget:
- type: glances
- url: "{{HOMEPAGE_VAR_GLANCES_URL}}"
- version: 4
- metric: cpu
- - Network Usage:
- widget:
- type: glances
- url: "{{HOMEPAGE_VAR_GLANCES_URL}}"
- version: 4
- metric: network:{{HOMEPAGE_VAR_GLANCES_NETWORK_ADAPTER_ID}} # eg eth0
- - Memory Usage:
- widget:
- type: glances
- url: "{{HOMEPAGE_VAR_GLANCES_URL}}"
- version: 4
- metric: memory
- - Processes:
- widget:
- type: glances
- url: "{{HOMEPAGE_VAR_GLANCES_URL}}"
- version: 4
- metric: process
- - Disk I/O:
- widget:
- type: glances
- url: "{{HOMEPAGE_VAR_GLANCES_URL}}"
- version: 4
- metric: disk:{{HOMEPAGE_VAR_GLANCES_DISK_ID}} # eg nvme01
- - GPU:
- widget:
- type: glances
- url: "{{HOMEPAGE_VAR_GLANCES_URL}}"
- version: 4
- metric: gpu:{{HOMEPAGE_VAR_GLANCES_GRAPHICS_CARD_ID}} # eg nvidia0
- - CPU Temp:
- widget:
- type: glances
- url: "{{HOMEPAGE_VAR_GLANCES_URL}}"
- version: 4
- metric: sensor:Sensor 1
- _____________________________________________________________________________________________________________________________________
- widgets.yaml
- ---
- # For configuration options and examples, please see:
- # https://gethomepage.dev/latest/configs/service-widgets
- - logo:
- icon: /icons/logo.png
- - greeting:
- text_size: xl
- text: "{{HOMEPAGE_VAR_GREETING_TEXT}}"
- - openweathermap:
- label: "{{HOMEPAGE_VAR_OPENWEATHERMAP_LABEL}}" #optional
- latitude: "{{HOMEPAGE_VAR_OPENWEATHERMAP_LATITUDE}}"
- longitude: "{{HOMEPAGE_VAR_OPENWEATHERMAP_LONGITUTE}}"
- units: metric # or imperial
- provider: openweathermap
- cache: 5 # Time in minutes to cache API responses, to stay within limits
- format: # optional, Intl.NumberFormat options
- maximumFractionDigits: 1
- - datetime:
- text_size: md
- format:
- dateStyle: long
- timeStyle: short
- hourCycle: h23
- - resources:
- #expanded: true
- cpu: true
- memory: true
- disk: /
- cputemp: true
- tempmax: 70 # optional, maximum cpu temp
- units: metric
- uptime: true
- network: true
- - search:
- provider: google
- target: _blank
- _____________________________________________________________________________________________________________________________________
- bookmarks.yaml
- ---
- # For configuration options and examples, please see:
- # https://gethomepage.dev/latest/configs/bookmarks
- - Developer:
- - Github:
- - abbr: GH
- href: "{{HOMEPAGE_VAR_GITHUB_HREF}}"
- - Social:
- - Reddit:
- - abbr: RE
- href: https://reddit.com/
- - Entertainment:
- - Organizr:
- - abbr: OR
- href: "{{HOMEPAGE_VAR_ORGANIZR_HREF}}"
- _____________________________________________________________________________________________________________________________________