diff --git a/.gitignore b/.gitignore index 1c986e6..2601631 100644 --- a/.gitignore +++ b/.gitignore @@ -18,4 +18,6 @@ gluetun-data/ homepage/* !homepage/*.yaml !homepage/*.yml +!homepage/*.css +!homepage/*.js !homepage/images/ diff --git a/compose.yml b/compose.yml index 93e395e..6c14d23 100644 --- a/compose.yml +++ b/compose.yml @@ -343,6 +343,9 @@ services: - "HOMEPAGE_VAR_TERMIX_HOST=${WEB_PROTOCOL}://${SERVER_NAME}:${TERMIX_PORT}" extra_hosts: - "host.docker.internal:host-gateway" + networks: + staticaddress: + ipv4_address: 172.16.0.1 restart: always glances: @@ -446,6 +449,10 @@ networks: driver: bridge termix-net: driver: bridge + staticaddress: + ipam: + config: + - subnet: "172.16.0.0/16" volumes: myspeed: diff --git a/homepage/bookmarks.yaml b/homepage/bookmarks.yaml index d574958..ed1fef9 100644 --- a/homepage/bookmarks.yaml +++ b/homepage/bookmarks.yaml @@ -2,17 +2,17 @@ # For configuration options and examples, please see: # https://gethomepage.dev/configs/bookmarks - Bookmarks: - - Github: - - icon: si-github + - github/dhaan7/torrent-stack: + - icon: sh-github href: https://github.com/dhaan7/torrent-stack description: link to this GitHub repository - Termix: - - icon: si-termix + - icon: "{{HOMEPAGE_VAR_TERMIX_ADDRESS}}/favicon.ico" href: "{{HOMEPAGE_VAR_TERMIX_HOST}}" description: Terminal emulator in your web browser - Monitorix: - - icon: si-monitorix + - icon: "{{HOMEPAGE_VAR_WEB_PROTOCOL}}://{{HOMEPAGE_VAR_LOCAL_IPV4}}:4000/monitorix/monitorixico.png" href: http://{{HOMEPAGE_VAR_SERVER_NAME}}:4000/monitorix description: Generate and review system reports diff --git a/homepage/custom.css b/homepage/custom.css new file mode 100644 index 0000000..d6db2d8 --- /dev/null +++ b/homepage/custom.css @@ -0,0 +1,4 @@ +img[src*="selfhs"] { + filter: invert(82%) sepia(23%) saturate(1098%) hue-rotate(193deg) + brightness(288%) contrast(88%) !important; +} diff --git a/homepage/custom.js b/homepage/custom.js new file mode 100644 index 0000000..e69de29 diff --git a/homepage/docker.yaml b/homepage/docker.yaml index 2f4c4e3..6fb15a6 100644 --- a/homepage/docker.yaml +++ b/homepage/docker.yaml @@ -6,5 +6,5 @@ # host: 127.0.0.1 # port: 2375 -# my-docker: -# socket: /var/run/docker.sock +my-docker: + socket: /var/run/docker.sock diff --git a/homepage/services.yaml b/homepage/services.yaml index c8fb4a5..666b86c 100644 --- a/homepage/services.yaml +++ b/homepage/services.yaml @@ -4,9 +4,8 @@ - "Top": - "io": - icon: si-docker + icon: sh-docker-light href: "{{HOMEPAGE_VAR_GLANCES_HOST}}" - description: IO Dashboard widget: type: customapi url: "{{HOMEPAGE_VAR_GLANCES_ADDRESS}}/api/4/network/interface_name/value/enp2s0" @@ -19,9 +18,8 @@ label: Sent. format: bitrate - "External Address": - icon: si-globus + #icon: si-globus href: https://api.ipify.org - description: WAN IP Address widget: type: customapi url: https://api.ipify.org?format=json @@ -30,216 +28,383 @@ - field: ip label: Address - "Tailscale >": - icon: si-tailscale + icon: sh-tailscale-light href: https://login.tailscale.com - description: Mesh VPN Network widget: type: tailscale deviceid: "{{HOMEPAGE_VAR_TAILSCALE_DEVICE_KEY}}" key: "{{HOMEPAGE_VAR_TAILSCALE_KEY}}" fields: [address] - "Speedtest Results >": - icon: si-speedtest + icon: sh-speedtest-light href: "{{HOMEPAGE_VAR_MYSPEED_HOST}}" - #description: hi widget: type: myspeed url: "{{HOMEPAGE_VAR_MYSPEED_ADDRESS}}" fields: [download, upload] - -# Non-Torrent-Stack Group - "non-torrent-stack": - "Windows 11 >": - icon: si-windows11 + icon: sh-microsoft-windows-light href: http://localhost - description: Windows 11 Instance + server: my-docker + container: windows11 + description: Web (Tailscale Required) - "Windows 10 >": - icon: si-windows + icon: sh-microsoft-windows-light href: http://localhost - description: Windows 10 Instance + server: my-docker + container: windows10 + description: Web (Tailscale Required) - "TailsOS >": - icon: si-linux + icon: sh-linux-light href: http://localhost - description: TailsOS Environment - - "Blank": - icon: si-containerd - href: http://localhost - description: Empty Slot - -# Torrent-Stack Group + server: my-docker + container: qemu + description: Web + - " ": + description: - "Media": + - "Plex >": + icon: sh-plex-light + #icon: sh-plex-dark + href: "{{HOMEPAGE_VAR_PLEX_HOST}}" + description: Watch + ping: "{{HOMEPAGE_VAR_WEB_PROTOCOL}}://{{HOMEPAGE_VAR_EXTERNAL_IPV4}}:{{HOMEPAGE_VAR_PLEX_PFWD_PORT}}" + siteMonitor: "{{HOMEPAGE_VAR_PLEX_ADDRESS}}" + widget: + type: plex + url: "{{HOMEPAGE_VAR_PLEX_ADDRESS}}" + key: "{{HOMEPAGE_VAR_PLEX_KEY}}" + fields: [albums, movies, tv] - "Tautulli >": - icon: si-tautulli + icon: sh-tautulli-light href: "{{HOMEPAGE_VAR_TAUTULLI_HOST}}" - description: Plex Monitoring and Statistics + description: Monitor + server: my-docker + container: tautulli + siteMonitor: "{{HOMEPAGE_VAR_TAUTULLI_ADDRESS}}" widget: type: tautulli url: "{{HOMEPAGE_VAR_TAUTULLI_ADDRESS}}" key: "{{HOMEPAGE_VAR_TAUTULLI_KEY}}" enableUser: false expandOneStreamToTwoRows: false - - "Plex >": - icon: si-plex - href: "{{HOMEPAGE_VAR_PLEX_HOST}}" - description: Media Server - widget: - type: plex - url: "{{HOMEPAGE_VAR_PLEX_ADDRESS}}" - key: "{{HOMEPAGE_VAR_PLEX_KEY}}" - fields: [albums, movies, tv] - "Media_2x2": - "Seerr >": - icon: si-overseerr + icon: sh-overseerr-light href: "{{HOMEPAGE_VAR_SEERR_HOST}}" - description: Media Request Management + description: Request + server: my-docker + container: seerr + siteMonitor: "{{HOMEPAGE_VAR_SEERR_ADDRESS}}" widget: type: seerr url: "{{HOMEPAGE_VAR_SEERR_ADDRESS}}" key: "{{HOMEPAGE_VAR_SEERR_KEY}}" - fields: [pending, completed] + fields: [completed, pending] + highlight: + pending: + numeric: + - level: warn + when: gt + value: 0 - "Sonarr >": - icon: si-sonarr + icon: sh-sonarr-light href: "{{HOMEPAGE_VAR_SONARR_HOST}}" - description: TV Show Torrent Grabber + description: TV Shows + server: my-docker + container: sonarr + siteMonitor: "{{HOMEPAGE_VAR_SONARR_ADDRESS}}" widget: type: sonarr url: "{{HOMEPAGE_VAR_SONARR_ADDRESS}}" key: "{{HOMEPAGE_VAR_SONARR_KEY}}" enableQueue: true # optional, defaults to false fields: [wanted, queued] + highlight: + queued: + numeric: + - level: warn + when: gt + value: 0 - "Radarr >": - icon: si-radarr + icon: sh-radarr-light href: "{{HOMEPAGE_VAR_RADARR_HOST}}" - description: Movie Torrent Grabber + description: Movies + server: my-docker + container: radarr + siteMonitor: "{{HOMEPAGE_VAR_RADARR_ADDRESS}}" widget: type: radarr url: "{{HOMEPAGE_VAR_RADARR_ADDRESS}}" key: "{{HOMEPAGE_VAR_RADARR_KEY}}" fields: [wanted, queued] + highlight: + queued: + numeric: + - level: warn + when: gt + value: 0 - "Lidarr >": - icon: si-lidarr + icon: sh-lidarr-light href: "{{HOMEPAGE_VAR_LIDARR_HOST}}" - description: Music Torrent Grabber + description: Music + server: my-docker + container: lidarr + siteMonitor: "{{HOMEPAGE_VAR_LIDARR_ADDRESS}}" widget: type: lidarr url: "{{HOMEPAGE_VAR_LIDARR_ADDRESS}}" key: "{{HOMEPAGE_VAR_LIDARR_KEY}}" fields: [wanted, queued] + highlight: + queued: + numeric: + - level: warn + when: gt + value: 0 - "Media_oddballs": - "Tdarr >": - icon: si-tdarr + icon: sh-tdarr href: "{{HOMEPAGE_VAR_TDARR_HOST}}" - description: Distributed Media Transcoding + description: Stage + server: my-docker + container: tdarr + siteMonitor: "{{HOMEPAGE_VAR_TDARR_ADDRESS}}" widget: type: tdarr url: "{{HOMEPAGE_VAR_TDARR_ADDRESS}}" key: "{{HOMEPAGE_VAR_TDARR_KEY}}" - - Tdarr Node: - icon: si-tdarr - href: http://localhost - description: Transcoding Processing Node + highlight: + queue: + numeric: + - level: warn + when: gt + value: 0 + errored: + numeric: + - level: danger + when: gt + value: 0 + - Tdarr Node Local: + icon: sh-tdarr + description: Transcode + server: my-docker + container: tdarr-node + - Tdarr Node Remote: + icon: sh-tdarr + description: Transcode + siteMonitor: "{{HOMEPAGE_VAR_WEB_PROTOCOL}}://192.168.50.6:8266" +- "Network": + - "Network_2x2": + - "Gluetun": + icon: sh-gluetun-light + description: VPN + server: my-docker + container: gluetun + #widget: + # type: gluetun + # url: ${HOMEPAGE_VAR_WEB_PROTOCOL}://${HOMEPAGE_VAR_LOCAL_IPV4}:8000 + + - "Port Updater": + icon: sh-docker-light + description: VPN + server: my-docker + container: port-updater + - "Network_list": + - "Prowlarr >": + icon: sh-prowlarr-light + href: "{{HOMEPAGE_VAR_PROWLARR_HOST}}" + description: Indexer Management + server: my-docker + container: prowlarr + siteMonitor: "{{HOMEPAGE_VAR_PROWLARR_ADDRESS}}" + widget: + type: prowlarr + url: "{{HOMEPAGE_VAR_PROWLARR_ADDRESS}}" + key: "{{HOMEPAGE_VAR_PROWLARR_KEY}}" + #fields: ["numberOfGrabs"] + highlight: + "numberOfGrabs": + numeric: + - level: warn + when: lte + value: 0 + "numberOfQueries": + numeric: + - level: warn + when: lte + value: 0 + "numberOfFailGrabs": + numeric: + - level: warn + when: gt + value: 0 + "numberOfFailQueries": + numeric: + - level: warn + when: gt + value: 0 + + - "qBittorrent Active >": + icon: sh-qbittorrent-light + href: "{{HOMEPAGE_VAR_QBITTORRENT_HOST}}" + server: my-docker + container: qbittorrent + siteMonitor: "{{HOMEPAGE_VAR_QBITTORRENT_ADDRESS}}" + #description: + widget: + type: customapi + url: "{{HOMEPAGE_VAR_QBITTORRENT_ADDRESS}}/api/v2/torrents/info?filter=seeding" + mappings: + #- field: + - label: "Active" + format: integer + scale: 1 + highlight: + "Active": + numeric: + - level: danger + when: lte + value: 20 + + - "qBittorrent Status >": + icon: sh-qbittorrent-light + href: "{{HOMEPAGE_VAR_QBITTORRENT_HOST}}" + server: my-docker + container: qbittorrent + siteMonitor: "{{HOMEPAGE_VAR_QBITTORRENT_ADDRESS}}" + widget: + type: customapi + url: "{{HOMEPAGE_VAR_QBITTORRENT_ADDRESS}}/api/v2/sync/maindata" + mappings: + - field: server_state.connection_status + label: "status" + format: string + - field: server_state.dht_nodes + label: "DHT" + format: integer + scale: 1 + - field: server_state.last_external_address_v4 + label: "Address" + format: string + highlight: + "status": + string: + - level: warn + when: equals + value: connected + negate: true + "DHT": + #valueOnly: true + numeric: + - level: warn + when: lte + value: 200 + + - "qBittorrent Stats >": + icon: sh-qbittorrent-light + href: "{{HOMEPAGE_VAR_QBITTORRENT_HOST}}" + server: my-docker + container: qbittorrent + siteMonitor: "{{HOMEPAGE_VAR_QBITTORRENT_ADDRESS}}" + widget: + type: customapi + url: "{{HOMEPAGE_VAR_QBITTORRENT_ADDRESS}}/api/v2/sync/maindata" + mappings: + - field: server_state.alltime_dl + label: "T. Down" + format: bytes + scale: 0.862 + - field: server_state.alltime_ul + label: "T. Up" + format: bytes + scale: 0.862 + - field: server_state.global_ratio + label: "Ratio" + format: percent + scale: 100 + #suffix: "%" + highlight: + "Ratio": + numeric: + - level: warn + when: lt + value: 100 + - level: danger + when: lte + value: 60 + + - "qBittorrent Session >": + icon: sh-qbittorrent-light + href: "{{HOMEPAGE_VAR_QBITTORRENT_HOST}}" + server: my-docker + container: qbittorrent + siteMonitor: "{{HOMEPAGE_VAR_QBITTORRENT_ADDRESS}}" + widget: + type: customapi + url: "{{HOMEPAGE_VAR_QBITTORRENT_ADDRESS}}/api/v2/sync/maindata" + key: "{{HOMEPAGE_VAR_QBITTORRENT_KEY}}" + mappings: + - field: server_state.down_info_speed + label: T. Down + format: bytes + scale: 0.862 + - field: server_state.down_info_data + label: Down + format: bitrate + scale: 0.862 + - field: server_state.up_info_speed + label: T. Up + format: bytes + scale: 0.862 + - field: server_state.up_info_data + label: Up + format: bitrate + scale: 0.862 + highlight: + "T. Down": + numeric: + - level: good + when: gt + value: 0 + "Down": + numeric: + - level: good + when: gt + value: 0 + "T. Up": + numeric: + - level: good + when: gt + value: 0 + "Up": + numeric: + - level: good + when: gt + value: 0 - "Minecraft": - icon: si-minecraft - href: http://localhost + icon: sh-minecraft-creeper-light description: Game Server Instance + server: my-docker + container: mc + #siteMonitor: "udp://localhost:25575" widget: type: minecraft url: http://localhost:25565 -- "Network": - - "Gluetun": - icon: si-gluetun - href: http://localhost - description: VPN Client Container - #widget: - # type: gluetun - # url: ${HOMEPAGE_VAR_WEB_PROTOCOL}://${HOMEPAGE_VAR_LOCAL_IPV4}:8000 - - - "Port Updater": - icon: si-docker - href: http://localhost - description: Automated Docker Image Updates - - - "Prowlarr >": - icon: si-prowlarr - href: http://localhost:9696 - description: Indexer Management - widget: - type: prowlarr - url: "{{HOMEPAGE_VAR_PROWLARR_ADDRESS}}" - key: "{{HOMEPAGE_VAR_PROWLARR_KEY}}" - - - "qBittorrent1 >": - icon: si-qbittorrent - href: "{{HOMEPAGE_VAR_QBITTORRENT_HOST}}" - widget: - type: customapi - url: "{{HOMEPAGE_VAR_QBITTORRENT_ADDRESS}}/api/v2/torrents/info?filter=seeding" - mappings: - #- field: - - label: Active Torrents - format: integer - scale: 1 - description: - - - "qBittorrent2 >": - icon: si-qbittorrent - href: "{{HOMEPAGE_VAR_QBITTORRENT_HOST}}" - widget: - type: customapi - url: "{{HOMEPAGE_VAR_QBITTORRENT_ADDRESS}}/api/v2/sync/maindata" - mappings: - - field: server_state.connection_status - label: status - format: string - - field: server_state.dht_nodes - label: DHT nodes - format: integer - scale: 1 - - field: server_state.last_external_address_v4 - label: Address - format: string - - - "qBittorrent3 >": - icon: si-qbittorrent - href: "{{HOMEPAGE_VAR_QBITTORRENT_HOST}}" - widget: - type: customapi - url: "{{HOMEPAGE_VAR_QBITTORRENT_ADDRESS}}/api/v2/sync/maindata" - mappings: - - field: server_state.alltime_dl - label: T. Down - format: bytes - scale: 0.862 - - field: server_state.alltime_ul - label: T. Up - format: bytes - scale: 0.862 - - field: server_state.global_ratio - label: Ratio - format: integer - scale: 100 - suffix: "%" - - - "qBittorrent4 >": - icon: si-qbittorrent - href: "{{HOMEPAGE_VAR_QBITTORRENT_HOST}}" - widget: - type: customapi - url: "{{HOMEPAGE_VAR_QBITTORRENT_ADDRESS}}/api/v2/sync/maindata" - mappings: - - field: server_state.down_info_speed - label: t. down - format: bytes - scale: 0.862 - - field: server_state.down_info_data - label: down - format: speed - scale: 0. - - field: server_state.up_info_speed - label: t. up - format: bytes - scale: 0.862 - - field: server_state.up_info_data - label: up - format: speed - scale: 0.862 + highlight: + status: + valueOnly: true + string: + - level: good + when: equals + value: "connected" + - level: warn + when: equals + value: "connected" + negate: true + players: + numeric: + - level: warn + when: lte + value: 0 diff --git a/homepage/settings.yaml b/homepage/settings.yaml index 5a4dd61..f457012 100644 --- a/homepage/settings.yaml +++ b/homepage/settings.yaml @@ -19,8 +19,8 @@ color: slate # Behavior target: _blank # opens links in a new tab -showStats: true # for docker containers -statusStyle: basic # dot, basic +showStats: false # for docker containers +#statusStyle: basic # dot, basic hideErrors: false # change to true once deployed disableIndexing: true # ask indexers not to index your homepage, incase you port forward @@ -38,17 +38,16 @@ headerStyle: boxed #underlined useEqualHeights: true layout: - header: true - disableCollapse: true - iconStyle: gradiant "Top": - header: true + header: false style: row - columns: 1 + columns: 4 "non-torrent-stack": + header: false style: row columns: 4 "Media": + header: false style: column columns: 1 "Media_2x2": @@ -60,5 +59,18 @@ layout: style: row columns: 1 "Network": + header: false style: column columns: 1 + "Network_list": + header: false + style: row + columns: 1 + "Network_2x2": + header: false + style: row + columns: 2 + "Bookmarks": + header: false + style: row + columns: 1