From 3b63d8cd4964e65269e6373dc69a0bbcb34bac81 Mon Sep 17 00:00:00 2001 From: shaan Date: Sun, 21 Jun 2026 01:50:35 -0700 Subject: [PATCH] fix: minor bugs --- .gitignore | 110 ++++++++++++++++++++++++++++++++++++++++ compose.yml | 56 +++++++++++++++++++- homepage/bookmarks.yaml | 30 +++++++++++ homepage/services.yaml | 82 +++++++++++------------------- homepage/settings.yaml | 23 +++++++-- 5 files changed, 245 insertions(+), 56 deletions(-) diff --git a/.gitignore b/.gitignore index 2601631..893f93d 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,8 @@ sonarr/ tautulli/ tdarr/ gluetun-data/ +etc* +!odysseus/.* # Only track homepage structural yaml files, ignore app cache homepage/* @@ -21,3 +23,111 @@ homepage/* !homepage/*.css !homepage/*.js !homepage/images/ + + +# from odysseus .gitignore + +# Python +__pycache__/ +*.pyc +*.pyo +*.egg-info/ +dist/ +build/ +!static/js/editor/build/ +venv/ +.venv/ +*.egg + +# Environment +.env +.env.bak.* +!.env.example +# Local uv lockfile (optional, per-platform — see "Faster installs with uv" in README) +requirements.lock + +# SOPS workflow — encrypted `secrets.env` is intentionally committable, +# but every variant (plaintext, manual decrypt copy, editor backup) +# must stay out of git. Mirrored in .dockerignore so the same artifacts +# also cannot enter image build layers. +secrets.env.* +!secrets.env.example + +# Data — all user data stays local +data/ +!services/hwfit/data/ +!services/hwfit/data/hf_models.json +logs/ +*.log +*.db +*.sqlite +*.sqlite3 + +# Node +node_modules/ +services/node_modules/ +services/data/ + +# IDE / Editor +.aider* +.claude/ +.vscode/ +.idea/ +*.swp +*.swo +*~ + +# Test capture artifacts (browser session dumps may contain personal content) +.playwright-mcp/ + +# OS +.DS_Store +Thumbs.db + +# Build artifacts +*.cache +cache/ +output.txt.txt + +# Media (uploaded/generated) +*.jpg +*.jpeg +*.png +*.gif +*.bmp +*.webp +*.tiff +*.pdf + +# …except shipped static assets +!static/icons/*.png + +# …except shipped demo assets in docs/ that the README links to. +!docs/*.jpg +!docs/*.jpeg +!docs/*.png +!docs/*.gif +!docs/*.webp +# …and curated docs/ subfolder assets (e.g. accessibility before/after shots). +!docs/**/*.png +!docs/**/*.jpg +!docs/**/*.gif +!docs/**/*.webp + +# Reports and temp files +reports/ +tasks/ +scripts/compound/*.json +research_data/ +**/search_analytics.json + +# Internal dev/review notes — not for public repo +dev-docs/ +# Windows-port working docs (local only, not for public repo) +docs/windows-port/ + +# Local config +compound.config.json +*.error.log +_scratch/ +/odysseus/ diff --git a/compose.yml b/compose.yml index 933427a..efd4186 100644 --- a/compose.yml +++ b/compose.yml @@ -298,7 +298,7 @@ services: - /var/run/docker.sock:/var/run/docker.sock:ro # (optional) For docker integrations - ./gluetun-data:/tmp/gluetun:ro # get the port from port-updater environment: - - "HOMEPAGE_ALLOWED_HOSTS=gethomepage.dev,${LOCAL_IPV4}:${HOMEPAGE_PORT},${SERVER_NAME}:${HOMEPAGE_PORT},100.76.249.110:${HOMEPAGE_PORT},${SERVER_NAME}.tail:${HOMEPAGE_PORT}" # required, may need port. See gethomepage.dev/installation/#homepage_allowed_hosts + - "HOMEPAGE_ALLOWED_HOSTS=gethomepage.dev,${LOCAL_IPV4}:${HOMEPAGE_PORT},${SERVER_NAME}:${HOMEPAGE_PORT},100.76.249.110:${HOMEPAGE_PORT},${SERVER_NAME}.tail:${HOMEPAGE_PORT},${EXTERNAL_IPV4}:${HOMEPAGE_PORT},${WEB_NAME}:${HOMEPAGE_PORT},${WEB_NAME},172.17.0.1:${HOMEPAGE_PORT}" # required, may need port. See gethomepage.dev/installation/#homepage_allowed_hosts - "HOMEPAGE_VAR_DISK1=${DISK1}" - "HOMEPAGE_VAR_DISK2=${DISK2}" - "HOMEPAGE_VAR_DISK3=${DISK3}" @@ -444,17 +444,71 @@ services: - termix-net restart: unless-stopped + # pihole: + # container_name: pihole + # image: pihole/pihole:latest + # network_mode: "host" + # ports: + # - "53:53/tcp" + # - "53:53/udp" + # - "67:67/udp" + # - "80:80/tcp" + # environment: + # TZ: "America/Los_Angeles" + # #WEBPASSWORD: "password123" + # volumes: + # - "./etc-pihole:/etc/pihole" + # - "./etc-dnsmasq.d:/etc/dnsmasq.d" + # cap_add: + # - NET_ADMIN + # restart: unless-stopped + + cloudflared: + container_name: cloudflared-tunnel + image: cloudflare/cloudflared:latest + restart: always + command: tunnel --no-autoupdate run --token eyJhIjoiMjUyZjQ3MWZkMzE2ZTg5NjI2ZjEzYzI1YzYwMTJiYzciLCJ0IjoiNWFhMDJlNmEtNDE2Ni00YTJkLTk1YzktMGFmMGY3MjM3YjIzIiwicyI6Ik5tWmhOR1V6WVRZdE5HRXdOaTAwT1RjekxXSTFPV1V0T0RrMU1UWTRabVl4WkRZeCJ9 + +# caddy: +# build: +# context: . +# dockerfile_inline: | +# FROM caddy:2.11-builder AS builder +# RUN xcaddy build --with github.com/caddyserver/nginx-adapter --with github.com/caddy-dns/cloudflare +# FROM caddy:2.11-builder +# COPY --from=builder /usr/bin/caddy /usr/bin/caddy +# container_name: caddy +# restart: unless-stopped +# ports: +# - "80:80" +# - "443:443" +# - "443:443/udp" +# environment: +# - CLOUDFLARE_API_TOKEN=eyJhIjoiMjUyZjQ3MWZkMzE2ZTg5NjI2ZjEzYzI1YzYwMTJiYzciLCJ0IjoiNWFhMDJlNmEtNDE2Ni00YTJkLTk1YzktMGFmMGY3MjM3YjIzIiwicyI6Ik5tWmhOR1V6WVRZdE5HRXdOaTAwT1RjekxXSTFPV1V0T0RrMU1UWTRabVl4WkRZeCJ9 +# volumes: +# - ./conf:/etc/caddy +# - ./site:/srv +# - caddy_data:/data +# - caddy_config:/config +# networks: +# - server-mesh + networks: tdarr-net: driver: bridge termix-net: driver: bridge + server-mesh: + external: true staticaddress: ipam: config: - subnet: "172.200.0.0/16" volumes: + # open-webui: + # caddy_data: + # caddy_config: myspeed: external: true # docker compose will fail creating myspeed if the volume hasn't been manually created, which we have done. unless you deleted it... termix-data: diff --git a/homepage/bookmarks.yaml b/homepage/bookmarks.yaml index ed1fef9..71ebf86 100644 --- a/homepage/bookmarks.yaml +++ b/homepage/bookmarks.yaml @@ -1,6 +1,36 @@ --- # For configuration options and examples, please see: # https://gethomepage.dev/configs/bookmarks + +- "Icons": + - "Plex": + - icon: si-plex-#EBAF00 + href: https://github.com/dhaan7/torrent-stack + - "LibreChat": + - icon: si-ollama-#FFFFFF + href: https://0.0.0.0 + - "Sonarr": + - icon: si-sonarr-#2596BE + href: https://github.com/dhaan7/torrent-stack + - "Radarr": + - icon: si-radarr-#FFCB3D + href: https://github.com/dhaan7/torrent-stack + - "Lidarr": + - icon: si-youtubemusic-#499848 + href: https://github.com/dhaan7/torrent-stack + - "qBittorrent": + - icon: si-qbittorrent-#2F67BA + href: https://github.com/dhaan7/torrent-stack + - "Seerr": + - icon: sh-seerr-light + href: https://github.com/dhaan7/torrent-stack + - "Prowlarr": + - icon: sh-prowlarr-light + href: https://github.com/dhaan7/torrent-stack + - "pihole": + - icon: si-pihole-#96060C + href: https://github.com/dhaan7/torrent-stack + - Bookmarks: - github/dhaan7/torrent-stack: - icon: sh-github diff --git a/homepage/services.yaml b/homepage/services.yaml index c1dae59..84599e8 100644 --- a/homepage/services.yaml +++ b/homepage/services.yaml @@ -3,22 +3,17 @@ # https://gethomepage.dev/configs/services/ - "Top": - - "io": - icon: sh-docker-light - href: "{{HOMEPAGE_VAR_GLANCES_HOST}}" + - "Cloudflared Tunnel": + icon: sh-cloudflare-light + href: "https://dash.cloudflare.com/" + description: widget: - type: customapi - url: "{{HOMEPAGE_VAR_GLANCES_ADDRESS}}/api/4/network/interface_name/value/enp2s0" - method: GET - mappings: - - field: enp2s0.0.bytes_recv_rate_per_sec - label: Recv. - format: bitrate - - field: enp2s0.0.bytes_sent_rate_per_sec - label: Sent. - format: bitrate + type: cloudflared + accountid: 252f471fd316e89626f13c25c6012bc7 # from zero trust dashboard url e.g. https://one.dash.cloudflare.com//home/quick-start + tunnelid: 5aa02e6a-4166-4a2d-95c9-0af0f7237b23 # found in tunnels dashboard under the tunnel name + key: cfut_2i9bGXfbFuu0XkDEcCClXvVu0x1wYuwn7sTztLLGd5469df7 - "External Address": - #icon: si-globus + icon: si-globus href: https://api.ipify.org widget: type: customapi @@ -43,33 +38,35 @@ url: "{{HOMEPAGE_VAR_MYSPEED_ADDRESS}}" fields: [download, upload] - "non-torrent-stack": - - "Windows 11 >": - icon: sh-microsoft-windows-light - href: http://windows11:8006 + - "LibreChat": + icon: sh-open-webui-light + href: "{{HOMEPAGE_VAR_WEB_PROTOCOL}}://{{HOMEPAGE_VAR_SERVER_NAME}}:3080" server: my-docker - container: windows11 - description: Web (Tailscale Required) - - "Windows 10 >": - icon: sh-microsoft-windows-light - href: http://windows10:8006 + container: open-webui + description: Local AI Models + - "llama.cpp (thinkcentre)": + icon: sh-llama-cpp-light + href: "http://192.168.50.116:5079" + siteMonitor: http://192.168.50.116:5079 + description: 0GB VRAM + 16GB RAM + - "llama.cpp (shaan-pc)": + icon: sh-llama-cpp-light + href: "http://192.168.50.6:5078" + siteMonitor: http://192.168.50.6:5078 + description: 42GB VRAM + 32GB RAM + - "Pi-Hole Adblocker": + icon: sh-pi-hole-light + href: "http://192.168.50.2/admin" + description: Configure Device DNS to '192.168.50.2' server: my-docker - container: windows10 - description: Web (Tailscale Required) - - "TailsOS >": - icon: sh-linux-light - href: ${HOMEPAGE_VAR_WEB_PROTOCOL}://${HOMEPAGE_VAR_SERVER_NAME}:8006 - server: my-docker - container: qemu - description: Web - - " ": - description: + container: pihole + # api token with `Account.Cloudflare Tunnel:Read` https://dash.cloudflare.com/profile/api-tokens - "Media": - "Plex >": icon: sh-plex-light #icon: sh-plex-dark href: "{{HOMEPAGE_VAR_PLEX_HOST}}" description: Watch - ping: "htttp://135.26.168.87:32401" # "{{HOMEPAGE_VAR_WEB_PROTOCOL}}://{{HOMEPAGE_VAR_EXTERNAL_IPV4}}:{{HOMEPAGE_VAR_PLEX_PORT}}" siteMonitor: "{{HOMEPAGE_VAR_PLEX_ADDRESS}}" widget: type: plex @@ -82,7 +79,6 @@ description: Monitor server: my-docker container: tautulli - siteMonitor: "{{HOMEPAGE_VAR_TAUTULLI_ADDRESS}}" widget: type: tautulli url: "{{HOMEPAGE_VAR_TAUTULLI_ADDRESS}}" @@ -96,7 +92,6 @@ description: TV Shows server: my-docker container: sonarr - siteMonitor: "{{HOMEPAGE_VAR_SONARR_ADDRESS}}" widget: type: sonarr url: "{{HOMEPAGE_VAR_SONARR_ADDRESS}}" @@ -115,7 +110,6 @@ description: Movies server: my-docker container: radarr - siteMonitor: "{{HOMEPAGE_VAR_RADARR_ADDRESS}}" widget: type: radarr url: "{{HOMEPAGE_VAR_RADARR_ADDRESS}}" @@ -161,7 +155,6 @@ description: Music server: my-docker container: lidarr - siteMonitor: "{{HOMEPAGE_VAR_LIDARR_ADDRESS}}" widget: type: lidarr url: "{{HOMEPAGE_VAR_LIDARR_ADDRESS}}" @@ -179,7 +172,6 @@ description: Request server: my-docker container: seerr - siteMonitor: "{{HOMEPAGE_VAR_SEERR_ADDRESS}}" widget: type: seerr url: "{{HOMEPAGE_VAR_SEERR_ADDRESS}}" @@ -199,7 +191,6 @@ description: Stage server: my-docker container: tdarr - siteMonitor: "{{HOMEPAGE_VAR_TDARR_ADDRESS}}" widget: type: tdarr url: "{{HOMEPAGE_VAR_TDARR_ADDRESS}}" @@ -220,12 +211,6 @@ icon: sh-tdarr server: my-docker container: tdarr-node - - "Arc B570": - icon: sh-tdarr - ping: "192.168.50.6" - - "M2 Media Engine": - icon: sh-tdarr - ping: "192.168.50.157" - "Network": - "Network_2x2": - "Gluetun": @@ -249,7 +234,6 @@ description: Indexer Management server: my-docker container: prowlarr - siteMonitor: "{{HOMEPAGE_VAR_PROWLARR_ADDRESS}}" widget: type: prowlarr url: "{{HOMEPAGE_VAR_PROWLARR_ADDRESS}}" @@ -282,7 +266,6 @@ href: "{{HOMEPAGE_VAR_QBITTORRENT_HOST}}" server: my-docker container: qbittorrent - siteMonitor: "{{HOMEPAGE_VAR_QBITTORRENT_ADDRESS}}" #description: widget: type: customapi @@ -290,7 +273,7 @@ mappings: #- field: - field: _count - label: "Active" + label: "Active" format: integer scale: 1 highlight: @@ -305,7 +288,6 @@ 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" @@ -342,7 +324,6 @@ 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" @@ -375,7 +356,6 @@ 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" diff --git a/homepage/settings.yaml b/homepage/settings.yaml index 6f07d8c..a46cfd1 100644 --- a/homepage/settings.yaml +++ b/homepage/settings.yaml @@ -8,11 +8,11 @@ instanceName: torrent-stack background: image: /images/wallhaven-pk997m.jpg #blur: sm # Options: sm, md, lg, xl - #saturate: 200 - #brightness: 100 + #saturate: 10 + #brightness: 10 opacity: 30 -cardBlur: xl +cardBlur: md theme: dark color: slate @@ -20,10 +20,11 @@ color: slate target: _blank # opens links in a new tab showStats: false # for docker containers -#statusStyle: basic # dot, basic +statusStyle: dot # dot, basic hideErrors: false # change to true once deployed disableIndexing: true # ask indexers not to index your homepage, incase you port forward showActivity: false +#bookmarksStyle: icons quicklaunch: searchDescriptions: true @@ -39,23 +40,33 @@ headerStyle: boxed #underlined useEqualHeights: true layout: + "Icons": + tab: Icons + iconsOnly: true + header: false + iconStyle: gradient "Top": + tab: All header: false style: row columns: 4 "non-torrent-stack": + tab: All header: false style: row columns: 4 "Media": + tab: All header: false style: column columns: 1 "Media_2x2": + tab: All header: false style: row columns: 2 "Media_Bottom": + tab: All header: false style: row columns: 1 @@ -64,18 +75,22 @@ layout: style: row columns: 2 "Network": + tab: All header: false style: column columns: 1 "Network_list": + tab: All header: false style: row columns: 1 "Network_2x2": + tab: All header: false style: row columns: 2 "Bookmarks": + tab: All header: false style: row columns: 1