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:
@@ -13,6 +13,11 @@ sonarr/
|
||||
tautulli/
|
||||
tdarr/
|
||||
gluetun-data/
|
||||
caddy/*
|
||||
!Caddyfile
|
||||
influxdb/
|
||||
config/
|
||||
conf/
|
||||
etc*
|
||||
!odysseus/.*
|
||||
|
||||
|
||||
@@ -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
@@ -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 +0,0 @@
|
||||
respond "Hello World"
|
||||
+50
-33
@@ -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
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
img[src*="selfhs"] {
|
||||
filter: invert(82%) sepia(23%) saturate(1098%) hue-rotate(193deg)
|
||||
brightness(288%) contrast(88%) !important;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
img[src*="selfhs"] {
|
||||
filter: invert(82%) sepia(23%) saturate(1098%) hue-rotate(193deg)
|
||||
brightness(288%) contrast(88%) !important;
|
||||
}
|
||||
+153
-110
@@ -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,55 +37,73 @@
|
||||
- "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":
|
||||
- "Plex >":
|
||||
icon: sh-plex-light
|
||||
#icon: sh-plex-dark
|
||||
href: "{{HOMEPAGE_VAR_PLEX_HOST}}"
|
||||
description: Watch
|
||||
siteMonitor: "{{HOMEPAGE_VAR_PLEX_ADDRESS}}"
|
||||
widget:
|
||||
type: plex
|
||||
url: "{{HOMEPAGE_VAR_PLEX_ADDRESS}}"
|
||||
key: "{{HOMEPAGE_VAR_PLEX_KEY}}"
|
||||
fields: [albums, movies, tv]
|
||||
- "Tautulli >":
|
||||
icon: sh-tautulli-light
|
||||
href: "{{HOMEPAGE_VAR_TAUTULLI_HOST}}"
|
||||
description: Monitor
|
||||
server: my-docker
|
||||
container: tautulli
|
||||
widget:
|
||||
type: tautulli
|
||||
url: "{{HOMEPAGE_VAR_TAUTULLI_ADDRESS}}"
|
||||
key: "{{HOMEPAGE_VAR_TAUTULLI_KEY}}"
|
||||
enableUser: false
|
||||
expandOneStreamToTwoRows: false
|
||||
- "Media_2x2":
|
||||
- "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
|
||||
#icon: sh-plex-dark
|
||||
href: "{{HOMEPAGE_VAR_PLEX_HOST}}"
|
||||
description: Watch
|
||||
siteMonitor: "{{HOMEPAGE_VAR_PLEX_ADDRESS}}"
|
||||
widget:
|
||||
type: plex
|
||||
url: "{{HOMEPAGE_VAR_PLEX_ADDRESS}}"
|
||||
key: "{{HOMEPAGE_VAR_PLEX_KEY}}"
|
||||
fields: [albums, movies, tv]
|
||||
- "Tautulli >":
|
||||
icon: sh-tautulli
|
||||
href: "{{HOMEPAGE_VAR_TAUTULLI_HOST}}"
|
||||
description: Monitor
|
||||
server: my-docker
|
||||
container: tautulli
|
||||
widget:
|
||||
type: tautulli
|
||||
url: "{{HOMEPAGE_VAR_TAUTULLI_ADDRESS}}"
|
||||
key: "{{HOMEPAGE_VAR_TAUTULLI_KEY}}"
|
||||
enableUser: false
|
||||
expandOneStreamToTwoRows: false
|
||||
- "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
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user