refactor: homepage, as well as additional services such as pihole, portainer, scrutiny, torrents-csv. caddy has been partially set up

This commit is contained in:
2026-07-08 17:44:10 -07:00
parent a42fdfd2db
commit ad48cb8bc1
10 changed files with 350 additions and 236 deletions
+5
View File
@@ -13,6 +13,11 @@ sonarr/
tautulli/
tdarr/
gluetun-data/
caddy/*
!Caddyfile
influxdb/
config/
conf/
etc*
!odysseus/.*
+21
View File
@@ -0,0 +1,21 @@
# --- TAUTULLI ---
tautulli.shaan-server {
tls internal
reverse_proxy tautulli:8181
}
# --- HOMEPAGE ---
shaan-server {
tls internal
reverse_proxy homepage:3000
}
# --- PORTAINER ---
portainer.shaan-server {
tls internal
reverse_proxy https://portainer:9443 {
transport http {
tls_insecure_skip_verify
}
}
}
+97 -56
View File
@@ -24,8 +24,6 @@ services:
- DNS_UPSTREAM_RESOLVER_TYPE=doh # DNS over TLS is an extra layer of security so your isp can not look at what you're doing through your DNS requests, even if your using a vpn (very vague, I don't know how this syustem works with a vpn).
ports: # YOU MUST SPECIFY A PORT PER SERVICE ROUTED THROUGH GLUETUN!
- 8888:8000/tcp # gluetun control server, i dont think you should change this
- 6881:6881 # Default port for qbit
- 6881:6881/udp # Default port for qbit, if udp > tcp
- ${QBITTORRENT_PORT}:${QBITTORRENT_PORT} # qBittorrent Web UI
- ${PROWLARR_PORT}:${PROWLARR_PORT} # Prowlarr
- ${SONARR_PORT}:${SONARR_PORT} # Sonarr
@@ -243,6 +241,8 @@ services:
- TZ=${TIMEZONE}
ports:
- ${TAUTULLI_PORT}:${TAUTULLI_PORT}
networks:
- caddy_net
restart: always
tdarr:
@@ -250,6 +250,7 @@ services:
image: haveagitgat/tdarr:latest
networks:
- tdarr-net
- caddy_net
ports:
- ${TDARR_PORT}:${TDARR_PORT} # WebUI
- ${TDARR_NODE_PORT}:${TDARR_NODE_PORT} # local tdarr-node
@@ -268,6 +269,13 @@ services:
# dont put temp files onto a HARD DISK DRIVE! > - ${DISK1}/tdarr-temp:/temp
devices:
- /dev/dri:/dev/dri # Intel UHD Graphics 710
labels:
caddy: tdarr.shaan-server.cc
caddy.reverse_proxy: "{{upstreams 3000}}"
caddy.reverse_proxy.transport: "http"
caddy.reverse_proxy.transport.tls: ""
caddy.reverse_proxy.transport.tls_insecure_skip_verify: ""
caddy.tls: internal
restart: always
tdarr-node:
@@ -306,7 +314,8 @@ services:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
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},${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_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},${SERVER_NAME}:80,${SERVER_NAME}:443,shaan-server:443" # required, may need port. See gethomepage.dev/installation/#homepage_allowed_hosts
- "HOMEPAGE_ALLOWED_HOSTS=*"
- "HOMEPAGE_VAR_DISK1=${DISK1}"
- "HOMEPAGE_VAR_DISK2=${DISK2}"
- "HOMEPAGE_VAR_DISK3=${DISK3}"
@@ -336,6 +345,7 @@ services:
- "HOMEPAGE_VAR_SEERR_ADDRESS=${WEB_PROTOCOL}://${LOCAL_IPV4}:${SEERR_PORT}"
- "HOMEPAGE_VAR_MYSPEED_ADDRESS=${WEB_PROTOCOL}://${LOCAL_IPV4}:${MYSPEED_PORT}"
- "HOMEPAGE_VAR_TERMIX_ADDRESS=${WEB_PROTOCOL}://${LOCAL_IPV4}:${TERMIX_PORT}"
- "HOMEPAGE_VAR_ODYSSEUS_ADDRESS=${WEB_PROTOCOL}://${LOCAL_IPV4}:${ODYSSEUS_PORT}"
- "HOMEPAGE_VAR_PLEX_HOST=${WEB_PROTOCOL}://${SERVER_NAME}:${PLEX_PORT}"
- "HOMEPAGE_VAR_QBITTORRENT_HOST=${WEB_PROTOCOL}://${SERVER_NAME}:${QBITTORRENT_PORT}"
- "HOMEPAGE_VAR_PROWLARR_HOST=${WEB_PROTOCOL}://${SERVER_NAME}:${PROWLARR_PORT}"
@@ -349,12 +359,12 @@ services:
- "HOMEPAGE_VAR_SEERR_HOST=${WEB_PROTOCOL}://${SERVER_NAME}:${SEERR_PORT}"
- "HOMEPAGE_VAR_MYSPEED_HOST=${WEB_PROTOCOL}://${SERVER_NAME}:${MYSPEED_PORT}"
- "HOMEPAGE_VAR_TERMIX_HOST=${WEB_PROTOCOL}://${SERVER_NAME}:${TERMIX_PORT}"
- "HOMEPAGE_VAR_ODYSSEUS_HOST=${WEB_PROTOCOL}://${SERVER_NAME}:${ODYSSEUS_PORT}"
- TZ=${TIMEZONE}
extra_hosts:
- "host.docker.internal:host-gateway"
#networks:
# staticaddress:
# ipv4_address: 172.200.0.2
networks:
- caddy_net
restart: always
glances:
@@ -463,32 +473,37 @@ 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"
# - /etc/localtime:/etc/localtime:ro
# - /etc/timezone:/etc/timezone:ro
# cap_add:
# - NET_ADMIN
# restart: unless-stopped
pihole:
container_name: pihole
image: pihole/pihole:latest
network_mode: "host"
ports:
- "53:53/tcp"
- "53:53/udp"
- "67:67/udp"
- "6060:6060/tcp"
environment:
TZ: "America/Los_Angeles"
WEBPASSWORD: "password123"
FTLCONF_misc_etc_dnsmasq_d: "true"
volumes:
- "./etc-pihole:/etc/pihole"
- "./etc-dnsmasq.d:/etc/dnsmasq.d"
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
cap_add:
- NET_ADMIN
restart: unless-stopped
labels:
caddy: pihole.shaan-server.cc
caddy.reverse_proxy: "192.168.50.2:6060"
caddy.tls: internal
cloudflared:
container_name: cloudflared-tunnel
image: cloudflare/cloudflared:latest
restart: always
command: tunnel --no-autoupdate run --token eyJhIjoiMjUyZjQ3MWZkMzE2ZTg5NjI2ZjEzYzI1YzYwMTJiYzciLCJ0IjoiNWFhMDJlNmEtNDE2Ni00YTJkLTk1YzktMGFmMGY3MjM3YjIzIiwicyI6Ik5tWmhOR1V6WVRZdE5HRXdOaTAwT1RjekxXSTFPV1V0T0RrMU1UWTRabVl4WkRZeCJ9
command: tunnel --no-autoupdate run --token ${CLOUDFLARED_KEY}
torrents-csv:
image: dessalines/torrents-csv-server:latest
@@ -505,7 +520,6 @@ services:
db:
image: pgautoupgrade/pgautoupgrade:17-alpine
restart: unless-stopped
shm_size: 1gb
volumes:
- ./init-database.sh:/docker-entrypoint-initdb.d/init-database.sh
@@ -519,48 +533,75 @@ services:
POSTGRES_PASSWORD: password
POSTGRES_USER: postgres
TIMEZONE: ${TIMEZONE}
restart: unless-stopped
# 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
portainer:
container_name: portainer
image: portainer/portainer-ce:lts
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
ports:
- 9443:9443
networks:
- caddy_net
caddy:
image: caddy:latest
restart: unless-stopped
container_name: caddy
ports:
- 80:80
- 443:443
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /home/shaan/torrent-stack/caddy/Caddyfile:/etc/caddy/Caddyfile
- /home/shaan/torrent-stack/caddy/site:/srv
- /home/shaan/torrent-stack/caddy/caddy_data:/data
- /home/shaan/torrent-stack/caddy/caddy_config:/config
networks:
- caddy_net
scrutiny:
restart: unless-stopped
container_name: scrutiny
image: ghcr.io/analogj/scrutiny:nightly-omnibus
cap_add:
- SYS_RAWIO
ports:
- "${SCRUTINY_PORT:-54321}:8080" # webapp
- "${SCRUTINY_ADMIN_PORT:-12345}:8086" # influxDB admin
volumes:
- /run/udev:/run/udev:ro
- ./config:/opt/scrutiny/config
- ./influxdb:/opt/scrutiny/influxdb
devices:
- "/dev/nvme0n1"
- "/dev/sda"
- "/dev/sdb"
networks:
caddy_net:
external: true
tdarr-net:
driver: bridge
termix-net:
driver: bridge
server-mesh:
external: true
staticaddress:
ipam:
config:
- subnet: "172.200.0.0/16"
default:
name: portainer_network
volumes:
# open-webui:
# caddy_data:
# caddy_config:
caddy_data:
external: true
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:
driver: local
portainer_data:
name: portainer_data
-1
View File
@@ -1 +0,0 @@
respond "Hello World"
+50 -33
View File
@@ -2,53 +2,70 @@
# For configuration options and examples, please see:
# https://gethomepage.dev/configs/bookmarks
- "Icons":
- "Apps":
- "Plex":
- icon: si-plex-#EBAF00
href: {{HOMEPAGE_VAR_PLEX_HOST}}
- "LibreChat":
- icon: si-ollama-#FFFFFF
href: http://shaan-server:7001
href: "{{HOMEPAGE_VAR_PLEX_HOST}}"
- "Odysseus":
- icon: http://shaan-server:7001/static/icons/icon-192.png
href: https://shaan-server.cc
- "Sonarr":
- icon: si-sonarr-#2596BE
href: {{HOMEPAGE_VAR_SONARR_HOST}}
- icon: sh-sonarr
href: "{{HOMEPAGE_VAR_SONARR_HOST}}"
- "Radarr":
- icon: si-radarr-#FFCB3D
href: {{HOMEPAGE_VAR_RADARR_HOST}}
- icon: sh-radarr
href: "{{HOMEPAGE_VAR_RADARR_HOST}}"
- "Lidarr":
- icon: si-youtubemusic-#499848
href: {{HOMEPAGE_VAR_LIDARR_HOST}}
- icon: sh-lidarr
href: "{{HOMEPAGE_VAR_LIDARR_HOST}}"
- "Tautulli":
- icon: sh-tautulli-light
href: {{HOMEPAGE_VAR_TAUTULLI_HOST}}
- icon: sh-tautulli
href: "{{HOMEPAGE_VAR_TAUTULLI_HOST}}"
- "Tdarr":
- icon: sh-tdarr
href: {{HOMEPAGE_VAR_TDARR_HOST}}
href: "{{HOMEPAGE_VAR_TDARR_HOST}}"
- "qBittorrent":
- icon: si-qbittorrent-#2F67BA
- icon: sh-qbittorrent
href: http://shaan-server:2161
- "Seerr":
- icon: sh-seerr-light
href: {{HOMEPAGE_VAR_SEERR_HOST}}
- icon: sh-seerr
href: "{{HOMEPAGE_VAR_SEERR_HOST}}"
- "Prowlarr":
- icon: sh-prowlarr-light
href: {{HOMEPAGE_VAR_PROWLARR_HOST}}
- "pihole":
- icon: si-pihole-#96060C
href: http://shaan-server/admin
- icon: sh-prowlarr
href: "{{HOMEPAGE_VAR_PROWLARR_HOST}}"
- "Portainer":
- icon: sh-portainer-light
href: https://shaan-server:9443
- "Pi-Hole":
- icon: sh-pi-hole
href: http://shaan-server:6060/admin
- "Router Gateway":
- icon: "http://192.168.50.1/images/favicon.png"
href: http://192.168.50.1
- "llama.cpp":
- icon: sh-llama-cpp
href: http://192.168.50.6:5078
- "Tailscale":
- icon: sh-tailscale-light
href: https://login.tailscale.com
- "Speedtest":
- icon: sh-speedtest-light
href: "{{HOMEPAGE_VAR_MYSPEED_HOST}}"
- "Scrutiny":
- icon: sh-scrutiny-light
href: http://shaan-server:54321
- Bookmarks:
- github/dhaan7/torrent-stack:
- icon: sh-github
- icon: sh-github-light
href: https://github.com/dhaan7/torrent-stack
description: link to this GitHub repository
- Termix:
- icon: "{{HOMEPAGE_VAR_TERMIX_ADDRESS}}/favicon.ico"
href: "{{HOMEPAGE_VAR_TERMIX_HOST}}"
description: Terminal emulator in your web browser
- 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
# - Termix:
# - icon: "{{HOMEPAGE_VAR_TERMIX_ADDRESS}}/favicon.ico"
# href: "{{HOMEPAGE_VAR_TERMIX_HOST}}"
# description: Terminal emulator in your web browser
#
# - 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
-4
View File
@@ -1,4 +0,0 @@
img[src*="selfhs"] {
filter: invert(82%) sepia(23%) saturate(1098%) hue-rotate(193deg)
brightness(288%) contrast(88%) !important;
}
+4
View File
@@ -0,0 +1,4 @@
img[src*="selfhs"] {
filter: invert(82%) sepia(23%) saturate(1098%) hue-rotate(193deg)
brightness(288%) contrast(88%) !important;
}
+132 -89
View File
@@ -4,8 +4,10 @@
- "Top":
- "Cloudflared Tunnel":
icon: sh-cloudflare-light
icon: sh-cloudflare
href: "https://dash.cloudflare.com/"
server: my-docker
container: cloudflared-tunnel
description:
widget:
type: cloudflared
@@ -15,6 +17,7 @@
- "External Address":
icon: si-globus
href: https://api.ipify.org
siteMonitor: https://api.ipify.org
widget:
type: customapi
url: https://api.ipify.org?format=json
@@ -25,6 +28,7 @@
- "Tailscale >":
icon: sh-tailscale-light
href: https://login.tailscale.com
siteMonitor: https://tailscale.com
widget:
type: tailscale
deviceid: "{{HOMEPAGE_VAR_TAILSCALE_DEVICE_KEY}}"
@@ -33,31 +37,50 @@
- "Speedtest Results >":
icon: sh-speedtest-light
href: "{{HOMEPAGE_VAR_MYSPEED_HOST}}"
server: my-docker
container: MySpeed
widget:
type: myspeed
url: "{{HOMEPAGE_VAR_MYSPEED_ADDRESS}}"
fields: [download, upload]
- "non-torrent-stack":
- "Odysseus":
icon: sh-ollama-light
href: "{{HOMEPAGE_VAR_WEB_PROTOCOL}}://{{HOMEPAGE_VAR_SERVER_NAME}}:7001"
siteMonitor: "{{HOMEPAGE_VAR_WEB_PROTOCOL}}://{{HOMEPAGE_VAR_SERVER_NAME}}:7001"
description: Local AI Models
- "llama.cpp (shaan-pc)":
icon: sh-llama-cpp-light
href: "http://192.168.50.6:5078/v1/health"
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: pihole
# api token with `Account.Cloudflare Tunnel:Read` https://dash.cloudflare.com/profile/api-tokens
- "Media":
- "Media_1":
- "llama.cpp (shaan-pc)":
icon: sh-llama-cpp
href: "http://192.168.50.6:5078"
siteMonitor: http://192.168.50.6:5078/v1/health
description: 42GB VRAM + 32GB RAM
- "Odysseus":
icon: sh-ollama
href: "{{HOMEPAGE_VAR_ODYSSEUS_HOST}}"
siteMonitor: "{{HOMEPAGE_VAR_ODYSSEUS_HOST}}"
description: Local AI Models
- "Gluetun":
icon: sh-gluetun
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
description: VPN
server: my-docker
container: port-updater
- "Termix":
icon: "{{HOMEPAGE_VAR_TERMIX_ADDRESS}}/favicon.ico"
href: "{{HOMEPAGE_VAR_TERMIX_HOST}}"
description: Web Terminal
server: my-docker
container: termix
- "Monitorix":
icon: "{{HOMEPAGE_VAR_WEB_PROTOCOL}}://{{HOMEPAGE_VAR_LOCAL_IPV4}}:4000/monitorix/monitorixico.png"
href: http://{{HOMEPAGE_VAR_SERVER_NAME}}:4000/monitorix
description: View System Reports
- "Media_2":
- "Plex >":
icon: sh-plex-light
icon: sh-plex
#icon: sh-plex-dark
href: "{{HOMEPAGE_VAR_PLEX_HOST}}"
description: Watch
@@ -68,7 +91,7 @@
key: "{{HOMEPAGE_VAR_PLEX_KEY}}"
fields: [albums, movies, tv]
- "Tautulli >":
icon: sh-tautulli-light
icon: sh-tautulli
href: "{{HOMEPAGE_VAR_TAUTULLI_HOST}}"
description: Monitor
server: my-docker
@@ -79,9 +102,8 @@
key: "{{HOMEPAGE_VAR_TAUTULLI_KEY}}"
enableUser: false
expandOneStreamToTwoRows: false
- "Media_2x2":
- "Sonarr >":
icon: sh-sonarr-light
icon: sh-sonarr
href: "{{HOMEPAGE_VAR_SONARR_HOST}}"
description: TV Shows
server: my-docker
@@ -98,8 +120,22 @@
- level: warn
when: gt
value: 0
- Upcoming TV Episodes:
icon: sh-sonarr
widget:
type: calendar
firstDayInWeek: sunday # optional - defaults to monday
view: agenda # optional - possible values monthly, agenda
maxEvents: 2 # optional - defaults to 10
showTime: true # optional - show time for event happening today - defaults to false
timezone: America/Los_Angeles
integrations: # optional
- type: sonarr
service_name: "Sonarr >"
baseUrl: "{{HOMEPAGE_VAR_SONARR_HOST}}"
unmonitored: true
- "Radarr >":
icon: sh-radarr-light
icon: sh-radarr
href: "{{HOMEPAGE_VAR_RADARR_HOST}}"
description: Movies
server: my-docker
@@ -115,22 +151,8 @@
- level: warn
when: gt
value: 0
- Upcoming TV Episodes:
icon: sh-sonarr-light
widget:
type: calendar
firstDayInWeek: sunday # optional - defaults to monday
view: agenda # optional - possible values monthly, agenda
maxEvents: 2 # optional - defaults to 10
showTime: true # optional - show time for event happening today - defaults to false
timezone: America/Los_Angeles
integrations: # optional
- type: sonarr
service_name: "Sonarr >"
baseUrl: "{{HOMEPAGE_VAR_SONARR_HOST}}"
unmonitored: true
- Upcoming Movies:
icon: sh-radarr-light
icon: sh-radarr
widget:
type: calendar
firstDayInWeek: sunday # optional - defaults to monday
@@ -144,7 +166,7 @@
baseUrl: "{{HOMEPAGE_VAR_RADARR_HOST}}"
unmonitored: true
- "Lidarr >":
icon: sh-lidarr-light
icon: sh-lidarr
href: "{{HOMEPAGE_VAR_LIDARR_HOST}}"
description: Music
server: my-docker
@@ -161,7 +183,7 @@
when: gt
value: 0
- "Seerr >":
icon: sh-overseerr-light
icon: sh-overseerr
href: "{{HOMEPAGE_VAR_SEERR_HOST}}"
description: Request
server: my-docker
@@ -177,8 +199,11 @@
- level: warn
when: gt
value: 0
- "Media_Bottom":
- "Tdarr Node (Intel Graphics UHD 710)":
icon: sh-tdarr
server: my-docker
container: tdarr-node
- "Tdarr >":
icon: sh-tdarr
href: "{{HOMEPAGE_VAR_TDARR_HOST}}"
@@ -200,30 +225,38 @@
- level: danger
when: gt
value: 0
- "Media_Tdarr_Nodes":
- "Intel UHD 710":
icon: sh-tdarr
server: my-docker
container: tdarr-node
# - "Media_Tdarr_Nodes":
# - "Intel UHD 710":
# icon: sh-tdarr
# server: my-docker
# container: tdarr-node
- "Network":
- "Network_2x2":
- "Gluetun":
icon: sh-gluetun-light
description: VPN
- "Network_1":
- "Portainer":
icon: sh-portainer-light
href: https://shaan-server:9443
description: Manage Docker Containers
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
container: portainer
widget:
type: portainer
url: https://shaan-server:9443
env: 3
key: ptr_dR3wQa568otBJzfZz5FET+IQKXee7K6O+VO301iY6x4=
- "Pi-Hole Adblocker":
icon: sh-pi-hole
href: "http://192.168.50.2/admin"
description: Configure Device DNS to '192.168.50.2'
server: my-docker
container: port-updater
- "Network_list":
container: pihole
widget:
type: pihole
url: http://shaan-server:6060
version: 6 # required if running v6 or higher, defaults to 5
key: password # optional, in v6 can be your password or app password
- "Network_qbit":
- "Prowlarr >":
icon: sh-prowlarr-light
icon: sh-prowlarr
href: "{{HOMEPAGE_VAR_PROWLARR_HOST}}"
description: Indexer Management
server: my-docker
@@ -256,7 +289,7 @@
value: 0
- "qBittorrent Active >":
icon: sh-qbittorrent-light
icon: sh-qbittorrent
href: "{{HOMEPAGE_VAR_QBITTORRENT_HOST}}"
server: my-docker
container: qbittorrent
@@ -278,7 +311,7 @@
value: 20
- "qBittorrent Status >":
icon: sh-qbittorrent-light
icon: sh-qbittorrent
href: "{{HOMEPAGE_VAR_QBITTORRENT_HOST}}"
server: my-docker
container: qbittorrent
@@ -314,7 +347,7 @@
value: 200
- "qBittorrent Stats >":
icon: sh-qbittorrent-light
icon: sh-qbittorrent
href: "{{HOMEPAGE_VAR_QBITTORRENT_HOST}}"
server: my-docker
container: qbittorrent
@@ -346,7 +379,7 @@
value: 60
- "qBittorrent Session >":
icon: sh-qbittorrent-light
icon: sh-qbittorrent
href: "{{HOMEPAGE_VAR_QBITTORRENT_HOST}}"
server: my-docker
container: qbittorrent
@@ -392,28 +425,38 @@
- level: good
when: gt
value: 0
- "Minecraft":
icon: sh-minecraft-creeper-light
description: Game Server Instance
# - "Minecraft":
# icon: sh-minecraft-creeper
# description: Game Server Instance
# server: my-docker
# container: mc
# #siteMonitor: "udp://localhost:25575"
# widget:
# type: minecraft
# url: http://localhost:25565
# 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
- "Network_2":
- "Scrutiny":
icon: sh-scrutiny
href: http://192.168.50.2:54321 #"{{HOMEPAGE_VAR_SCRUTINY_ADDRESS}}""
description: Disk "S.M.A.R.T." Stats
server: my-docker
container: mc
#siteMonitor: "udp://localhost:25575"
container: scrutiny
widget:
type: minecraft
url: http://localhost:25565
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
type: scrutiny
url: http://192.168.50.2:54321 #"{{HOMEPAGE_VAR_SCRUTINY_ADDRESS}}"
+17 -16
View File
@@ -40,27 +40,27 @@ headerStyle: boxed #underlined
useEqualHeights: true
layout:
"Icons":
tab: Icons
iconsOnly: true
header: false
"Apps":
tab: Apps
iconsOnly: false
header: true
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":
"Media_1":
tab: All
header: false
style: row
columns: 3
"Media_2":
tab: All
header: false
style: row
@@ -70,21 +70,22 @@ layout:
header: false
style: row
columns: 1
"Media_Tdarr_Nodes":
header: false
style: row
columns: 2
"Network":
tab: All
header: false
style: column
columns: 1
"Network_list":
"Network_1":
tab: All
header: false
style: row
columns: 2
"Network_qbit":
tab: All
header: false
style: row
columns: 1
"Network_2x2":
"Network_2":
tab: All
header: false
style: row
+3 -16
View File
@@ -1,26 +1,13 @@
#!/bin/bash
# --- SYSTEM STARTUP LOGGING ---
echo "==========================================" >> /home/shaan/startup.log
echo "Starting local AI and Media stacks: $(date)" >> /home/shaan/startup.log
echo "==========================================" >> /home/shaan/startup.log
# 1. Wait 15 seconds to ensure Docker daemon and network layers are completely awake
sleep 15
# 2. Launch your Primary Stack (Homarr, Radarr, Sonarr, qBit, Cloudflared)
echo "Spinning up Primary Media Stack..." >> /home/shaan/torrent-stack/startup.log
cd /home/shaan/torrent-stack || exit
docker compose up -d gluetun & sleep 90 >> /home/shaan/torrent-stack/startup.log 2>&1
docker compose up -d gluetun & sleep 90
docker compose up -d
# 3. Small buffer to allow the primary network to mesh
sleep 5
# 4. Launch Odysseus
echo "Spinning up Odysseus Stack..." >> /home/shaan/torrent-stack/startup.log
cd /home/shaan/torrent-stack/odysseus || exit
git pull . dev
docker compose up -d >> /home/shaan/torrent-stack/startup.log 2>&1
echo "All services initiated successfully at $(date)" >> /home/shaan/torrent-stack/startup.log
docker compose pull
docker compose up -d