Initial Commit
This commit is contained in:
commit
dc40d19393
39 files changed
+2000
No files matched your search
@@ -0,0 +1,14 @@
|
||||
FROM golang:alpine AS build
|
||||
RUN apk add --no-cache alpine-sdk npm patch
|
||||
RUN git clone -b release-v0.107.79 https://github.com/AdguardTeam/AdGuardHome.git /AdGuardHome
|
||||
WORKDIR /AdGuardHome
|
||||
RUN wget https://patch-diff.githubusercontent.com/raw/AdguardTeam/AdGuardHome/pull/8571.patch
|
||||
RUN patch -p 1 -i 8571.patch
|
||||
RUN sed -i 's:CHANNEL = development:CHANNEL = release:' Makefile
|
||||
RUN make
|
||||
FROM alpine:latest
|
||||
RUN apk add --no-cache ca-certificates
|
||||
COPY --from=build /AdGuardHome/AdGuardHome /opt/adguardhome/
|
||||
EXPOSE 53/tcp 53/udp 67/tcp 67/udp 68/tcp 68/udp 80/tcp 443/tcp 853/tcp 853/udp 3000/tcp
|
||||
VOLUME ["/opt/adguardhome/conf", "/opt/adguardhome/work"]
|
||||
ENTRYPOINT ["/opt/adguardhome/AdGuardHome", "-c", "/opt/adguardhome/conf/AdGuardHome.yaml", "-w", "/opt/adguardhome/work", "--web-addr", "0.0.0.0:3000"]
|
||||
@@ -0,0 +1,19 @@
|
||||
networks:
|
||||
ssankur:
|
||||
external: "true"
|
||||
|
||||
services:
|
||||
adguard-home:
|
||||
container_name: "adguard-home"
|
||||
environment:
|
||||
- "TZ=Asia/Dhaka"
|
||||
image: "ssankur/adguard-home:latest"
|
||||
networks:
|
||||
- "ssankur"
|
||||
ports:
|
||||
- "10.1.1.253:53:53/tcp"
|
||||
- "10.1.1.253:53:53/udp"
|
||||
restart: "on-failure"
|
||||
volumes:
|
||||
- "./mounts/conf:/opt/adguardhome/conf"
|
||||
- "./mounts/work:/opt/adguardhome/work"
|
||||
@@ -0,0 +1,16 @@
|
||||
networks:
|
||||
ssankur:
|
||||
external: "true"
|
||||
|
||||
services:
|
||||
adminer:
|
||||
container_name: "adminer"
|
||||
environment:
|
||||
- "ADMINER_DEFAULT_SERVER=postgres"
|
||||
- "PGID=1000"
|
||||
- "PUID=1000"
|
||||
- "TZ=Asia/Dhaka"
|
||||
image: "adminer:latest"
|
||||
networks:
|
||||
- "ssankur"
|
||||
restart: "on-failure"
|
||||
@@ -0,0 +1,22 @@
|
||||
networks:
|
||||
ssankur:
|
||||
external: "true"
|
||||
|
||||
volumes:
|
||||
TrueNAS:
|
||||
external: "true"
|
||||
|
||||
services:
|
||||
bazarr:
|
||||
container_name: "bazarr"
|
||||
environment:
|
||||
- "PGID=1000"
|
||||
- "PUID=1000"
|
||||
- "TZ=Asia/Dhaka"
|
||||
image: "lscr.io/linuxserver/bazarr:latest"
|
||||
networks:
|
||||
- "ssankur"
|
||||
restart: "on-failure"
|
||||
volumes:
|
||||
- "./mounts/config:/config"
|
||||
- "TrueNAS:/mnt/TrueNAS"
|
||||
@@ -0,0 +1,18 @@
|
||||
networks:
|
||||
ssankur:
|
||||
external: "true"
|
||||
|
||||
services:
|
||||
dockhand:
|
||||
container_name: "dockhand"
|
||||
environment:
|
||||
- "PGID=1000"
|
||||
- "PUID=1000"
|
||||
- "TZ=Asia/Dhaka"
|
||||
image: "fnsys/dockhand:latest"
|
||||
networks:
|
||||
- "ssankur"
|
||||
restart: "on-failure"
|
||||
volumes:
|
||||
- "/var/run/docker.sock:/var/run/docker.sock"
|
||||
- "./mounts/data:/app/data"
|
||||
@@ -0,0 +1,18 @@
|
||||
networks:
|
||||
ssankur:
|
||||
external: "true"
|
||||
|
||||
services:
|
||||
dozzle:
|
||||
container_name: "dozzle"
|
||||
environment:
|
||||
- "DOZZLE_HOSTNAME=LAN-Server"
|
||||
- "DOZZLE_NO_ANALYTICS=true"
|
||||
- "DOZZLE_REMOTE_HOST=tcp://10.1.4.2:2375|DMZ-Server"
|
||||
- "TZ=Asia/Dhaka"
|
||||
image: "amir20/dozzle:latest"
|
||||
networks:
|
||||
- "ssankur"
|
||||
restart: "on-failure"
|
||||
volumes:
|
||||
- "/var/run/docker.sock:/var/run/docker.sock"
|
||||
@@ -0,0 +1,44 @@
|
||||
networks:
|
||||
ssankur:
|
||||
external: "true"
|
||||
|
||||
services:
|
||||
ente-server:
|
||||
container_name: "ente-server"
|
||||
depends_on:
|
||||
ente-postgres:
|
||||
condition: "service_healthy"
|
||||
environment:
|
||||
- "ENTE_DB_HOST=ente-postgres"
|
||||
- "ENTE_DB_NAME=ente"
|
||||
- "ENTE_DB_PASSWORD=${DB_PASSWORD}"
|
||||
- "ENTE_DB_USER=ente"
|
||||
image: "ghcr.io/ente-io/server:latest"
|
||||
networks:
|
||||
- "ssankur"
|
||||
restart: "on-failure"
|
||||
|
||||
ente-web:
|
||||
container_name: "ente-web"
|
||||
depends_on:
|
||||
ente-server:
|
||||
condition: "service_started"
|
||||
image: "ghcr.io/ente-io/web:latest"
|
||||
networks:
|
||||
- "ssankur"
|
||||
restart: "on-failure"
|
||||
|
||||
ente-postgres:
|
||||
container_name: "ente-postgres"
|
||||
environment:
|
||||
- "POSTGRES_DB=ente"
|
||||
- "POSTGRES_PASSWORD=${DB_PASSWORD}"
|
||||
- "POSTGRES_USER=ente"
|
||||
healthcheck:
|
||||
test: "pg_isready -d ente -q -U ente"
|
||||
image: "postgres:17"
|
||||
networks:
|
||||
- "ssankur"
|
||||
restart: "on-failure"
|
||||
volumes:
|
||||
- "./mounts/postgres:/var/lib/postgresql/data"
|
||||
@@ -0,0 +1,18 @@
|
||||
networks:
|
||||
ssankur:
|
||||
external: "true"
|
||||
|
||||
services:
|
||||
esphome:
|
||||
container_name: "esphome"
|
||||
environment:
|
||||
- "ESPHOME_DASHBOARD_USE_PING=true"
|
||||
- "PGID=1000"
|
||||
- "PUID=1000"
|
||||
- "TZ=Asia/Dhaka"
|
||||
image: "ghcr.io/esphome/esphome:latest"
|
||||
networks:
|
||||
- "ssankur"
|
||||
restart: "on-failure"
|
||||
volumes:
|
||||
- "./mounts/config:/config"
|
||||
@@ -0,0 +1,17 @@
|
||||
networks:
|
||||
ssankur:
|
||||
external: "true"
|
||||
|
||||
services:
|
||||
flaresolverr:
|
||||
container_name: "flaresolverr"
|
||||
environment:
|
||||
- "PGID=1000"
|
||||
- "PUID=1000"
|
||||
- "TZ=Asia/Dhaka"
|
||||
image: "flaresolverr/flaresolverr:latest"
|
||||
networks:
|
||||
- "ssankur"
|
||||
restart: "on-failure"
|
||||
volumes:
|
||||
- "./mounts/config:/config"
|
||||
@@ -0,0 +1,375 @@
|
||||
networks:
|
||||
ssankur:
|
||||
external: "true"
|
||||
|
||||
services:
|
||||
gatus:
|
||||
configs:
|
||||
- source: "config"
|
||||
target: "/config/config.yaml"
|
||||
container_name: "gatus"
|
||||
environment:
|
||||
- "TZ=Asia/Dhaka"
|
||||
extra_hosts:
|
||||
- "files.ssankur.com=10.1.4.2"
|
||||
- "gitea.ssankur.com=10.1.4.2"
|
||||
- "gotify.ssankur.com=10.1.4.2"
|
||||
- "hunt.ssankur.com=10.1.4.2"
|
||||
- "jellyfin.ssankur.com=10.1.4.2"
|
||||
- "mirotalk.ssankur.com=10.1.4.2"
|
||||
- "openspeedtest.ssankur.com=10.1.4.2"
|
||||
- "speedtest.ssankur.com=10.1.4.2"
|
||||
image: "ghcr.io/twin/gatus:latest"
|
||||
networks:
|
||||
- "ssankur"
|
||||
restart: "on-failure"
|
||||
|
||||
configs:
|
||||
config:
|
||||
content: |
|
||||
alerting:
|
||||
gotify:
|
||||
server-url: "https://gotify.ssankur.com"
|
||||
token: "${GOTIFY_TOKEN}"
|
||||
default-alert:
|
||||
failure-threshold: 1
|
||||
success-threshold: 1
|
||||
send-on-resolved: true
|
||||
|
||||
endpoints:
|
||||
- name: "AdGuard Home"
|
||||
group: "LAN-Server"
|
||||
url: "http://adguard-home:3000"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Adminer"
|
||||
group: "LAN-Server"
|
||||
url: "http://adminer:8080"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Bazarr"
|
||||
group: "LAN-Server"
|
||||
url: "http://bazarr:6767"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Dockhand"
|
||||
group: "LAN-Server"
|
||||
url: "http://dockhand:3000"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Dozzle"
|
||||
group: "LAN-Server"
|
||||
url: "http://dozzle:8080"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Ente Postgres"
|
||||
group: "LAN-Server"
|
||||
url: "tcp://ente-postgres:5432"
|
||||
conditions:
|
||||
- "[CONNECTED] == true"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Ente Server"
|
||||
group: "LAN-Server"
|
||||
url: "tcp://ente-server:8080"
|
||||
conditions:
|
||||
- "[CONNECTED] == true"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Ente Web"
|
||||
group: "LAN-Server"
|
||||
url: "http://ente-web:3003"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "ESPHome"
|
||||
group: "LAN-Server"
|
||||
url: "http://esphome:6052"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "FlareSolverr"
|
||||
group: "LAN-Server"
|
||||
url: "http://flaresolverr:8191"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Gatus"
|
||||
group: "LAN-Server"
|
||||
url: "http://gatus:8080"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Gitea"
|
||||
group: "DMZ-Server"
|
||||
url: "https://gitea.ssankur.com"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Gotify"
|
||||
group: "DMZ-Server"
|
||||
url: "https://gotify.ssankur.com"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Grocy"
|
||||
group: "LAN-Server"
|
||||
url: "http://grocy"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Home Assistant"
|
||||
group: "LAN-Server"
|
||||
url: "http://home-assistant"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Homepage"
|
||||
group: "LAN-Server"
|
||||
url: "http://homepage:3000"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Immich"
|
||||
group: "LAN-Server"
|
||||
url: "http://immich:2283"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Immich Machine Learning"
|
||||
group: "LAN-Server"
|
||||
url: "http://immich-machine-learning:3003"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Immich Postgres"
|
||||
group: "LAN-Server"
|
||||
url: "tcp://immich-postgres:5432"
|
||||
conditions:
|
||||
- "[CONNECTED] == true"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Immich Valkey"
|
||||
group: "LAN-Server"
|
||||
url: "tcp://immich-valkey:6379"
|
||||
conditions:
|
||||
- "[CONNECTED] == true"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Jellyfin"
|
||||
group: "DMZ-Server"
|
||||
url: "https://jellyfin.ssankur.com"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "LibreSpeed"
|
||||
group: "DMZ-Server"
|
||||
url: "https://speedtest.ssankur.com"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
# - name: "Librespot"
|
||||
# group: "LAN-Server"
|
||||
# url: "icmp://librespot"
|
||||
# conditions:
|
||||
# - "[CONNECTED] == true"
|
||||
# alerts:
|
||||
# - type: "gotify"
|
||||
- name: "LedFx"
|
||||
group: "LAN-Server"
|
||||
url: "http://ledfx:8888"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Mailrise"
|
||||
group: "DMZ-Server"
|
||||
url: "tcp://10.1.4.2:25"
|
||||
conditions:
|
||||
- "[CONNECTED] == true"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "MiroTalk"
|
||||
group: "DMZ-Server"
|
||||
url: "https://mirotalk.ssankur.com"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Mosquitto"
|
||||
group: "LAN-Server"
|
||||
url: "tcp://mosquitto:1883"
|
||||
conditions:
|
||||
- "[CONNECTED] == true"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Music Assistant"
|
||||
group: "LAN-Server"
|
||||
url: "http://music-assistant:8095"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Nginx"
|
||||
group: "DMZ-Server"
|
||||
url: "https://hunt.ssankur.com"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "OpenSpeedTest"
|
||||
group: "DMZ-Server"
|
||||
url: "https://openspeedtest.ssankur.com"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Pingvin Share"
|
||||
group: "DMZ-Server"
|
||||
url: "https://files.ssankur.com"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Piper"
|
||||
group: "LAN-Server"
|
||||
url: "tcp://piper:10200"
|
||||
conditions:
|
||||
- "[CONNECTED] == true"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Prowlarr"
|
||||
group: "LAN-Server"
|
||||
url: "http://prowlarr:9696"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "qBittorrent"
|
||||
group: "DMZ-Server"
|
||||
url: "http://10.1.4.2:8080"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "qBittorrent (VPN)"
|
||||
group: "DMZ-Server"
|
||||
url: "http://10.1.4.2:8082"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Radarr"
|
||||
group: "LAN-Server"
|
||||
url: "http://radarr:7878"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Radicale"
|
||||
group: "LAN-Server"
|
||||
url: "http://radicale:5232"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
# - name: "Scream"
|
||||
# group: "LAN-Server"
|
||||
# url: "icmp://scream"
|
||||
# conditions:
|
||||
# - "[CONNECTED] == true"
|
||||
# alerts:
|
||||
# - type: "gotify"
|
||||
- name: "Scrutiny"
|
||||
group: "TrueNAS"
|
||||
url: "http://10.1.1.201:8080"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
# - name: "Shairport Sync"
|
||||
# group: "LAN-Server"
|
||||
# url: "tcp://shairport-sync:5000"
|
||||
# conditions:
|
||||
# - "[CONNECTED] == true"
|
||||
# alerts:
|
||||
# - type: "gotify"
|
||||
- name: "Socket Proxy"
|
||||
group: "DMZ-Server"
|
||||
url: "http://10.1.4.2:2375/_ping"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Sonarr"
|
||||
group: "LAN-Server"
|
||||
url: "http://sonarr:8989"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Traefik"
|
||||
group: "LAN-Server"
|
||||
url: "http://traefik:8080"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Traefik (DMZ)"
|
||||
group: "DMZ-Server"
|
||||
url: "http://10.1.4.2:8081"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
- name: "Vaultwarden"
|
||||
group: "LAN-Server"
|
||||
url: "http://vaultwarden"
|
||||
conditions:
|
||||
- "[STATUS] == 200"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
# - name: "Wyoming Satellite"
|
||||
# group: "LAN-Server"
|
||||
# url: "tcp://wyoming-satellite:10700"
|
||||
# conditions:
|
||||
# - "[CONNECTED] == true"
|
||||
# alerts:
|
||||
# - type: "gotify"
|
||||
# - name: "Wyoming Snowboy"
|
||||
# group: "LAN-Server"
|
||||
# url: "tcp://wyoming-snowboy:10400"
|
||||
# conditions:
|
||||
# - "[CONNECTED] == true"
|
||||
# alerts:
|
||||
# - type: "gotify"
|
||||
- name: "Wyoming Vosk"
|
||||
group: "LAN-Server"
|
||||
url: "tcp://wyoming-vosk:10300"
|
||||
conditions:
|
||||
- "[CONNECTED] == true"
|
||||
alerts:
|
||||
- type: "gotify"
|
||||
@@ -0,0 +1,18 @@
|
||||
networks:
|
||||
ssankur:
|
||||
external: "true"
|
||||
|
||||
services:
|
||||
grocy:
|
||||
container_name: "grocy"
|
||||
environment:
|
||||
- "GROCY_CURRENCY=BDT"
|
||||
- "PGID=1000"
|
||||
- "PUID=1000"
|
||||
- "TZ=Asia/Dhaka"
|
||||
image: "lscr.io/linuxserver/grocy:latest"
|
||||
networks:
|
||||
- "ssankur"
|
||||
restart: "on-failure"
|
||||
volumes:
|
||||
- "./mounts/config:/config"
|
||||
@@ -0,0 +1,18 @@
|
||||
networks:
|
||||
ssankur:
|
||||
external: "true"
|
||||
|
||||
services:
|
||||
home-assistant:
|
||||
container_name: "home-assistant"
|
||||
environment:
|
||||
- "DOCKER_MODS=ghcr.io/linuxserver/mods:homeassistant-hacs"
|
||||
- "PGID=1000"
|
||||
- "PUID=1000"
|
||||
- "TZ=Asia/Dhaka"
|
||||
image: "lscr.io/linuxserver/homeassistant:latest"
|
||||
networks:
|
||||
- "ssankur"
|
||||
restart: "on-failure"
|
||||
volumes:
|
||||
- "./mounts/config:/config"
|
||||
@@ -0,0 +1,353 @@
|
||||
networks:
|
||||
ssankur:
|
||||
external: "true"
|
||||
|
||||
services:
|
||||
homepage:
|
||||
configs:
|
||||
- source: "bookmarks"
|
||||
target: "/app/config/bookmarks.yaml"
|
||||
- source: "docker"
|
||||
target: "/app/config/docker.yaml"
|
||||
- source: "services"
|
||||
target: "/app/config/services.yaml"
|
||||
- source: "settings"
|
||||
target: "/app/config/settings.yaml"
|
||||
- source: "widgets"
|
||||
target: "/app/config/widgets.yaml"
|
||||
container_name: "homepage"
|
||||
environment:
|
||||
- "HOMEPAGE_ALLOWED_HOSTS=*"
|
||||
- "TZ=Asia/Dhaka"
|
||||
image: "ghcr.io/gethomepage/homepage:latest"
|
||||
networks:
|
||||
- "ssankur"
|
||||
restart: "on-failure"
|
||||
volumes:
|
||||
- "./mounts/images:/app/public/images"
|
||||
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
||||
|
||||
configs:
|
||||
bookmarks:
|
||||
content: "\n"
|
||||
|
||||
docker:
|
||||
content: |
|
||||
LAN-Server:
|
||||
socket: "/var/run/docker.sock"
|
||||
DMZ-Server:
|
||||
host: "10.1.4.2"
|
||||
port: "2375"
|
||||
|
||||
services:
|
||||
content: |
|
||||
- Home Automation:
|
||||
- ESPHome:
|
||||
icon: "/images/esphome.png"
|
||||
href: "https://esphome.ssankur.com"
|
||||
server: "LAN-Server"
|
||||
container: "esphome"
|
||||
widget:
|
||||
type: "esphome"
|
||||
url: "http://esphome:6052"
|
||||
fields: ["online", "offline", "unknown", "total"]
|
||||
- Home Assistant:
|
||||
icon: "/images/home-assistant.png"
|
||||
href: "https://home-assistant.ssankur.com"
|
||||
server: "LAN-Server"
|
||||
container: "home-assistant"
|
||||
widget:
|
||||
type: "homeassistant"
|
||||
url: "http://home-assistant"
|
||||
key: "${HOME_ASSISTANT_KEY}"
|
||||
custom:
|
||||
- template: "{{ states('sensor.lywsd03mmc_temperature', with_unit=True) }}"
|
||||
label: Indoor Temperature
|
||||
- template: "{{ states('sensor.lywsd03mmc_humidity', with_unit=True) }}"
|
||||
label: Indoor Humidity
|
||||
- Music Assistant:
|
||||
icon: "/images/music-assistant.png"
|
||||
href: "https://music-assistant.ssankur.com"
|
||||
server: "LAN-Server"
|
||||
container: "music-assistant"
|
||||
- LedFx:
|
||||
icon: "/images/ledfx.png"
|
||||
href: "https://ledfx.ssankur.com"
|
||||
server: "LAN-Server"
|
||||
container: "ledfx"
|
||||
|
||||
- Media:
|
||||
- Bazarr:
|
||||
icon: "/images/bazarr.png"
|
||||
href: "https://bazarr.ssankur.com"
|
||||
server: "LAN-Server"
|
||||
container: "bazarr"
|
||||
widget:
|
||||
type: "bazarr"
|
||||
url: "http://bazarr:6767"
|
||||
key: "${BAZARR_KEY}"
|
||||
- Immich:
|
||||
icon: "/images/immich.png"
|
||||
href: "https://immich.ssankur.com"
|
||||
server: "LAN-Server"
|
||||
container: "immich"
|
||||
widget:
|
||||
type: "immich"
|
||||
url: "http://immich:2283"
|
||||
key: "${IMMICH_KEY}"
|
||||
version: "2"
|
||||
fields: ["photos", "videos"]
|
||||
- Jellyfin:
|
||||
icon: "/images/jellyfin.png"
|
||||
href: "https://jellyfin.ssankur.com"
|
||||
server: "DMZ-Server"
|
||||
container: "jellyfin"
|
||||
widget:
|
||||
type: "jellyfin"
|
||||
url: "https://jellyfin.ssankur.com"
|
||||
key: "${JELLYFIN_KEY}"
|
||||
version: "2"
|
||||
fields: ["movies", "series", "episodes"]
|
||||
enableBlocks: "true"
|
||||
enableNowPlaying: "false"
|
||||
- Prowlarr:
|
||||
icon: "/images/prowlarr.png"
|
||||
href: "https://prowlarr.ssankur.com"
|
||||
server: "LAN-Server"
|
||||
container: "prowlarr"
|
||||
widget:
|
||||
type: "prowlarr"
|
||||
url: "http://prowlarr:9696"
|
||||
key: "${PROWLARR_KEY}"
|
||||
- qBittorrent:
|
||||
icon: "/images/qbittorrent.png"
|
||||
href: "https://qbittorrent.ssankur.com"
|
||||
server: "DMZ-Server"
|
||||
container: "qbittorrent"
|
||||
widget:
|
||||
type: "qbittorrent"
|
||||
url: "http://10.1.4.2:8080"
|
||||
username: "SSAnkur"
|
||||
password: "${QBITTORRENT_PASSWORD}"
|
||||
- qBittorrent (VPN):
|
||||
icon: "/images/qbittorrent.png"
|
||||
href: "https://qbittorrent-vpn.ssankur.com"
|
||||
server: "DMZ-Server"
|
||||
container: "qbittorrent-vpn"
|
||||
widget:
|
||||
type: "qbittorrent"
|
||||
url: "http://10.1.4.2:8082"
|
||||
username: "SSAnkur"
|
||||
password: "${QBITTORRENT_VPN_PASSWORD}"
|
||||
- Radarr:
|
||||
icon: "/images/radarr.png"
|
||||
href: "https://radarr.ssankur.com"
|
||||
server: "LAN-Server"
|
||||
container: "radarr"
|
||||
widget:
|
||||
type: "radarr"
|
||||
url: "http://radarr:7878"
|
||||
key: "${RADARR_KEY}"
|
||||
- Sonarr:
|
||||
icon: "/images/sonarr.png"
|
||||
href: "https://sonarr.ssankur.com"
|
||||
server: "LAN-Server"
|
||||
container: "sonarr"
|
||||
widget:
|
||||
type: "sonarr"
|
||||
url: "http://sonarr:8989"
|
||||
key: "${SONARR_KEY}"
|
||||
|
||||
- Monitoring & Tracking:
|
||||
- Dockhand:
|
||||
icon: "/images/dockhand.png"
|
||||
href: "https://dockhand.ssankur.com"
|
||||
server: "LAN-Server"
|
||||
container: "dockhand"
|
||||
widget:
|
||||
type: "dockhand"
|
||||
url: "http://dockhand:3000"
|
||||
username: "SSAnkur"
|
||||
password: "${DOCKHAND_PASSWORD}"
|
||||
fields: ["running", "pending_updates", "total"]
|
||||
- Gatus:
|
||||
icon: "/images/gatus.png"
|
||||
href: "https://gatus.ssankur.com"
|
||||
server: "LAN-Server"
|
||||
container: "gatus"
|
||||
widget:
|
||||
type: "gatus"
|
||||
url: "http://gatus:8080"
|
||||
- Gotify:
|
||||
icon: "/images/gotify.png"
|
||||
href: "https://gotify.ssankur.com"
|
||||
server: "DMZ-Server"
|
||||
container: "gotify"
|
||||
widget:
|
||||
type: "gotify"
|
||||
url: "https://gotify.ssankur.com"
|
||||
key: "${GOTIFY_KEY}"
|
||||
- Scrutiny:
|
||||
icon: "/images/scrutiny.png"
|
||||
href: "https://scrutiny.ssankur.com"
|
||||
widget:
|
||||
type: "scrutiny"
|
||||
url: "https://scrutiny.ssankur.com"
|
||||
- Dozzle:
|
||||
icon: "/images/dozzle.png"
|
||||
href: "https://dozzle.ssankur.com"
|
||||
server: "LAN-Server"
|
||||
container: "dozzle"
|
||||
- Grocy:
|
||||
icon: "/images/grocy.png"
|
||||
href: "https://grocy.ssankur.com"
|
||||
server: "LAN-Server"
|
||||
container: "grocy"
|
||||
|
||||
- Networking:
|
||||
- AdGuard Home:
|
||||
icon: "/images/adguard-home.png"
|
||||
href: "https://adguard.ssankur.com"
|
||||
server: "LAN-Server"
|
||||
container: "adguard-home"
|
||||
widget:
|
||||
type: "adguard"
|
||||
url: "http://adguard-home:3000"
|
||||
username: "SSAnkur"
|
||||
password: "${ADGUARD_HOME_PASSWORD}"
|
||||
- Traefik:
|
||||
icon: "/images/traefik.png"
|
||||
href: "https://traefik.ssankur.com"
|
||||
server: "LAN-Server"
|
||||
container: "traefik"
|
||||
widget:
|
||||
type: "traefik"
|
||||
url: "http://traefik:8080"
|
||||
- Traefik (DMZ):
|
||||
icon: "/images/traefik.png"
|
||||
href: "https://traefik-dmz.ssankur.com"
|
||||
server: "DMZ-Server"
|
||||
container: "traefik-dmz"
|
||||
widget:
|
||||
type: "traefik"
|
||||
url: "http://10.1.4.2:8081"
|
||||
- OpenWrt:
|
||||
icon: "/images/openwrt.png"
|
||||
href: "https://openwrt.ssankur.com"
|
||||
ping: "10.1.1.254"
|
||||
- pfSense:
|
||||
icon: "/images/pfsense.png"
|
||||
href: "https://pfsense.ssankur.com"
|
||||
ping: "10.1.1.1"
|
||||
|
||||
- Servers & NAS:
|
||||
- Proxmox:
|
||||
icon: "/images/proxmox.png"
|
||||
href: "https://proxmox.ssankur.com"
|
||||
ping: "10.1.1.200"
|
||||
widget:
|
||||
type: "proxmox"
|
||||
url: "https://10.1.1.200:8006"
|
||||
username: "root@pam!homepage"
|
||||
password: "${PROXMOX_PASSWORD}"
|
||||
- TrueNAS:
|
||||
icon: "/images/truenas-scale.png"
|
||||
href: "https://truenas.ssankur.com"
|
||||
ping: "10.1.1.201"
|
||||
widget:
|
||||
type: "truenas"
|
||||
url: "https://10.1.1.201"
|
||||
username: "admin"
|
||||
password: "${TRUENAS_PASSWORD}"
|
||||
enablePools: "true"
|
||||
|
||||
- Various:
|
||||
- Adminer:
|
||||
icon: "/images/adminer.png"
|
||||
href: "https://adminer.ssankur.com"
|
||||
server: "LAN-Server"
|
||||
container: "adminer"
|
||||
- Ente Auth:
|
||||
icon: "/images/ente-auth.png"
|
||||
href: "https://ente-auth.ssankur.com"
|
||||
server: "LAN-Server"
|
||||
container: "ente-web"
|
||||
- Gitea:
|
||||
icon: "/images/gitea.png"
|
||||
href: "https://gitea.ssankur.com"
|
||||
server: "DMZ-Server"
|
||||
container: "gitea"
|
||||
- LibreSpeed:
|
||||
icon: "/images/librespeed.png"
|
||||
href: "https://speedtest.ssankur.com"
|
||||
server: "DMZ-Server"
|
||||
container: "librespeed"
|
||||
- MiroTalk:
|
||||
icon: "/images/mirotalk.png"
|
||||
href: "https://mirotalk.ssankur.com"
|
||||
server: "DMZ-Server"
|
||||
container: "mirotalk"
|
||||
- OpenSpeedTest:
|
||||
icon: "/images/openspeedtest.png"
|
||||
href: "https://openspeedtest.ssankur.com"
|
||||
server: "DMZ-Server"
|
||||
container: "openspeedtest"
|
||||
- Radicale:
|
||||
icon: "/images/radicale.png"
|
||||
href: "https://radicale.ssankur.com"
|
||||
server: "LAN-Server"
|
||||
container: "radicale"
|
||||
- SSAnkur's File Server:
|
||||
icon: "/images/server.png"
|
||||
href: "https://files.ssankur.com"
|
||||
server: "DMZ-Server"
|
||||
container: "pingvin-share"
|
||||
- Vaultwarden:
|
||||
icon: "/images/vaultwarden.png"
|
||||
href: "https://vaultwarden.ssankur.com"
|
||||
server: "LAN-Server"
|
||||
container: "vaultwarden"
|
||||
|
||||
settings:
|
||||
content: |
|
||||
background:
|
||||
image: "/images/background.jpg"
|
||||
blur: "sm"
|
||||
brightness: "50"
|
||||
opacity: "50"
|
||||
color: "slate"
|
||||
disableCollapse: "true"
|
||||
hideVersion: "true"
|
||||
layout:
|
||||
Home Automation:
|
||||
style: "row"
|
||||
columns: "4"
|
||||
Media:
|
||||
style: "row"
|
||||
columns: "4"
|
||||
Monitoring & Tracking:
|
||||
style: "row"
|
||||
columns: "4"
|
||||
Networking:
|
||||
style: "row"
|
||||
columns: "4"
|
||||
Servers & NAS:
|
||||
style: "row"
|
||||
columns: "4"
|
||||
Various:
|
||||
style: "row"
|
||||
columns: "4"
|
||||
target: "_self"
|
||||
theme: "dark"
|
||||
title: "Homelab Dashboard"
|
||||
|
||||
widgets:
|
||||
content: |
|
||||
- search:
|
||||
provider: "google"
|
||||
target: "_self"
|
||||
- datetime:
|
||||
text_size: "md"
|
||||
format:
|
||||
dateStyle: "long"
|
||||
timeStyle: "short"
|
||||
@@ -0,0 +1,65 @@
|
||||
networks:
|
||||
ssankur:
|
||||
external: "true"
|
||||
|
||||
volumes:
|
||||
TrueNAS:
|
||||
external: "true"
|
||||
|
||||
services:
|
||||
immich:
|
||||
container_name: "immich"
|
||||
depends_on:
|
||||
immich-postgres:
|
||||
condition: "service_healthy"
|
||||
immich-valkey:
|
||||
condition: "service_healthy"
|
||||
environment:
|
||||
- "DB_DATABASE_NAME=immich"
|
||||
- "DB_HOSTNAME=immich-postgres"
|
||||
- "DB_PASSWORD=${DB_PASSWORD}"
|
||||
- "DB_USERNAME=immich"
|
||||
- "REDIS_HOSTNAME=immich-valkey"
|
||||
- "TZ=Asia/Dhaka"
|
||||
image: "ghcr.io/immich-app/immich-server:release"
|
||||
networks:
|
||||
- "ssankur"
|
||||
restart: "on-failure"
|
||||
volumes:
|
||||
- "./mounts/data:/data"
|
||||
- "TrueNAS:/mnt/TrueNAS"
|
||||
|
||||
immich-machine-learning:
|
||||
container_name: "immich-machine-learning"
|
||||
image: "ghcr.io/immich-app/immich-machine-learning:release"
|
||||
networks:
|
||||
- "ssankur"
|
||||
restart: "on-failure"
|
||||
volumes:
|
||||
- "./mounts/cache:/cache"
|
||||
|
||||
immich-postgres:
|
||||
container_name: "immich-postgres"
|
||||
image: "ghcr.io/immich-app/postgres:17-vectorchord0.4.3"
|
||||
environment:
|
||||
- "POSTGRES_DB=immich"
|
||||
- "POSTGRES_INITDB_ARGS=--data-checksums"
|
||||
- "POSTGRES_PASSWORD=${DB_PASSWORD}"
|
||||
- "POSTGRES_USER=immich"
|
||||
networks:
|
||||
- "ssankur"
|
||||
restart: "on-failure"
|
||||
shm_size: "128mb"
|
||||
volumes:
|
||||
- "./mounts/postgres:/var/lib/postgresql/data"
|
||||
|
||||
immich-valkey:
|
||||
container_name: "immich-valkey"
|
||||
healthcheck:
|
||||
test: "redis-cli ping || exit 1"
|
||||
image: "valkey/valkey:8"
|
||||
networks:
|
||||
- "ssankur"
|
||||
restart: "on-failure"
|
||||
volumes:
|
||||
- "./mounts/valkey:/data"
|
||||
@@ -0,0 +1,18 @@
|
||||
networks:
|
||||
ssankur:
|
||||
external: "true"
|
||||
|
||||
services:
|
||||
ledfx:
|
||||
command:
|
||||
- "--clear-effects"
|
||||
- "--offline"
|
||||
container_name: "ledfx"
|
||||
environment:
|
||||
- "TZ=Asia/Dhaka"
|
||||
image: "ghcr.io/ledfx/ledfx:2.1.9"
|
||||
networks:
|
||||
- "ssankur"
|
||||
restart: "on-failure"
|
||||
volumes:
|
||||
- "./mounts/config:/home/ledfx/ledfx-config"
|
||||
@@ -0,0 +1,39 @@
|
||||
networks:
|
||||
ssankur:
|
||||
external: "true"
|
||||
|
||||
services:
|
||||
mosquitto:
|
||||
configs:
|
||||
- source: "mosquitto"
|
||||
target: "/mosquitto/config/mosquitto.conf"
|
||||
uid: "1883"
|
||||
gid: "1883"
|
||||
mode: 0400
|
||||
- source: "passwd"
|
||||
target: "/mosquitto/config/passwd"
|
||||
uid: "1883"
|
||||
gid: "1883"
|
||||
mode: 0400
|
||||
container_name: "mosquitto"
|
||||
environment:
|
||||
- "TZ=Asia/Dhaka"
|
||||
image: "eclipse-mosquitto:latest"
|
||||
networks:
|
||||
- "ssankur"
|
||||
ports:
|
||||
- "10.1.1.253:1883:1883/tcp"
|
||||
restart: "on-failure"
|
||||
volumes:
|
||||
- "./mounts/data:/mosquitto/data"
|
||||
- "./mounts/log:/mosquitto/log"
|
||||
|
||||
configs:
|
||||
mosquitto:
|
||||
content: |
|
||||
listener 1883
|
||||
allow_anonymous false
|
||||
password_file /mosquitto/config/passwd
|
||||
passwd:
|
||||
content: |
|
||||
${PASSWD}
|
||||
@@ -0,0 +1,18 @@
|
||||
networks:
|
||||
ssankur:
|
||||
external: "true"
|
||||
|
||||
services:
|
||||
music-assistant:
|
||||
container_name: "music-assistant"
|
||||
environment:
|
||||
- "TZ=Asia/Dhaka"
|
||||
image: "ghcr.io/music-assistant/server:latest"
|
||||
networks:
|
||||
- "ssankur"
|
||||
ports:
|
||||
- "10.1.1.253:7406:7406/tcp"
|
||||
- "10.1.1.253:6001-6010:6001-6010/udp"
|
||||
restart: "on-failure"
|
||||
volumes:
|
||||
- "./mounts/data:/data"
|
||||
@@ -0,0 +1,18 @@
|
||||
networks:
|
||||
ssankur:
|
||||
external: "true"
|
||||
|
||||
services:
|
||||
piper:
|
||||
container_name: "piper"
|
||||
environment:
|
||||
- "PIPER_VOICE=en_US-hfc_male-medium"
|
||||
- "PGID=1000"
|
||||
- "PUID=1000"
|
||||
- "TZ=Asia/Dhaka"
|
||||
image: "lscr.io/linuxserver/piper:latest"
|
||||
networks:
|
||||
- "ssankur"
|
||||
restart: "on-failure"
|
||||
volumes:
|
||||
- "./mounts/config:/config"
|
||||
@@ -0,0 +1,17 @@
|
||||
networks:
|
||||
ssankur:
|
||||
external: "true"
|
||||
|
||||
services:
|
||||
prowlarr:
|
||||
container_name: "prowlarr"
|
||||
environment:
|
||||
- "PGID=1000"
|
||||
- "PUID=1000"
|
||||
- "TZ=Asia/Dhaka"
|
||||
image: "lscr.io/linuxserver/prowlarr:latest"
|
||||
networks:
|
||||
- "ssankur"
|
||||
restart: "on-failure"
|
||||
volumes:
|
||||
- "./mounts/config:/config"
|
||||
@@ -0,0 +1,22 @@
|
||||
networks:
|
||||
ssankur:
|
||||
external: "true"
|
||||
|
||||
volumes:
|
||||
TrueNAS:
|
||||
external: "true"
|
||||
|
||||
services:
|
||||
radarr:
|
||||
container_name: "radarr"
|
||||
environment:
|
||||
- "PGID=1000"
|
||||
- "PUID=1000"
|
||||
- "TZ=Asia/Dhaka"
|
||||
image: "lscr.io/linuxserver/radarr:latest"
|
||||
networks:
|
||||
- "ssankur"
|
||||
restart: "on-failure"
|
||||
volumes:
|
||||
- "./mounts/config:/config"
|
||||
- "TrueNAS:/mnt/TrueNAS"
|
||||
@@ -0,0 +1,5 @@
|
||||
FROM python:alpine
|
||||
RUN pip install --no-cache-dir Radicale[bcrypt]
|
||||
EXPOSE 5232/tcp
|
||||
VOLUME /var/lib/radicale
|
||||
ENTRYPOINT ["radicale", "-H", "0.0.0.0:5232"]
|
||||
@@ -0,0 +1,17 @@
|
||||
networks:
|
||||
ssankur:
|
||||
external: "true"
|
||||
|
||||
services:
|
||||
radicale:
|
||||
container_name: "radicale"
|
||||
environment:
|
||||
- "RADICALE_CONFIG=/config/radicale.conf"
|
||||
- "TZ=Asia/Dhaka"
|
||||
image: "ssankur/radicale:latest"
|
||||
networks:
|
||||
- "ssankur"
|
||||
restart: "on-failure"
|
||||
volumes:
|
||||
- "./mounts/config:/config"
|
||||
- "./mounts/radicale:/var/lib/radicale"
|
||||
@@ -0,0 +1,22 @@
|
||||
networks:
|
||||
ssankur:
|
||||
external: "true"
|
||||
|
||||
volumes:
|
||||
TrueNAS:
|
||||
external: "true"
|
||||
|
||||
services:
|
||||
sonarr:
|
||||
container_name: "sonarr"
|
||||
environment:
|
||||
- "PGID=1000"
|
||||
- "PUID=1000"
|
||||
- "TZ=Asia/Dhaka"
|
||||
image: "lscr.io/linuxserver/sonarr:latest"
|
||||
networks:
|
||||
- "ssankur"
|
||||
restart: "on-failure"
|
||||
volumes:
|
||||
- "./mounts/config:/config"
|
||||
- "TrueNAS:/mnt/TrueNAS"
|
||||
@@ -0,0 +1,287 @@
|
||||
networks:
|
||||
ssankur:
|
||||
external: "true"
|
||||
|
||||
services:
|
||||
traefik:
|
||||
configs:
|
||||
- source: "config"
|
||||
target: "/etc/traefik/config.yaml"
|
||||
- source: "traefik"
|
||||
target: "/etc/traefik/traefik.yaml"
|
||||
container_name: "traefik"
|
||||
environment:
|
||||
- "CF_DNS_API_TOKEN=${CF_DNS_API_TOKEN}"
|
||||
- "TZ=Asia/Dhaka"
|
||||
image: "traefik:latest"
|
||||
networks:
|
||||
- "ssankur"
|
||||
ports:
|
||||
- "10.1.1.253:80:80/tcp"
|
||||
- "10.1.1.253:443:443/tcp"
|
||||
restart: "on-failure"
|
||||
volumes:
|
||||
- "./mounts/letsencrypt:/etc/letsencrypt"
|
||||
|
||||
configs:
|
||||
config:
|
||||
content: |
|
||||
http:
|
||||
routers:
|
||||
adguard:
|
||||
rule: "Host(`adguard.ssankur.com`)"
|
||||
service: "adguard"
|
||||
adminer:
|
||||
rule: "Host(`adminer.ssankur.com`)"
|
||||
service: "adminer"
|
||||
bazarr:
|
||||
rule: "Host(`bazarr.ssankur.com`)"
|
||||
service: "bazarr"
|
||||
dockhand:
|
||||
rule: "Host(`dockhand.ssankur.com`)"
|
||||
service: "dockhand"
|
||||
dozzle:
|
||||
rule: "Host(`dozzle.ssankur.com`)"
|
||||
service: "dozzle"
|
||||
ente-auth:
|
||||
rule: "Host(`ente-auth.ssankur.com`)"
|
||||
service: "ente-auth"
|
||||
ente-server:
|
||||
rule: "Host(`ente-server.ssankur.com`)"
|
||||
service: "ente-server"
|
||||
esphome:
|
||||
rule: "Host(`esphome.ssankur.com`)"
|
||||
service: "esphome"
|
||||
gatus:
|
||||
rule: "Host(`gatus.ssankur.com`)"
|
||||
service: "gatus"
|
||||
gitea:
|
||||
rule: "Host(`gitea.ssankur.com`)"
|
||||
service: "gitea"
|
||||
grocy:
|
||||
rule: "Host(`grocy.ssankur.com`)"
|
||||
service: "grocy"
|
||||
home-assistant:
|
||||
rule: "Host(`home-assistant.ssankur.com`)"
|
||||
service: "home-assistant"
|
||||
homepage:
|
||||
rule: "Host(`homepage.ssankur.com`)"
|
||||
service: "homepage"
|
||||
immich:
|
||||
rule: "Host(`immich.ssankur.com`)"
|
||||
service: "immich"
|
||||
ledfx:
|
||||
rule: "Host(`ledfx.ssankur.com`)"
|
||||
service: "ledfx"
|
||||
music-assistant:
|
||||
rule: "Host(`music-assistant.ssankur.com`)"
|
||||
service: "music-assistant"
|
||||
openwrt:
|
||||
rule: "Host(`openwrt.ssankur.com`)"
|
||||
service: "openwrt"
|
||||
pfsense:
|
||||
rule: "Host(`pfsense.ssankur.com`)"
|
||||
service: "pfsense"
|
||||
prowlarr:
|
||||
rule: "Host(`prowlarr.ssankur.com`)"
|
||||
service: "prowlarr"
|
||||
proxmox:
|
||||
rule: "Host(`proxmox.ssankur.com`)"
|
||||
service: "proxmox"
|
||||
qbittorrent:
|
||||
rule: "Host(`qbittorrent.ssankur.com`)"
|
||||
service: "qbittorrent"
|
||||
qbittorrent-vpn:
|
||||
rule: "Host(`qbittorrent-vpn.ssankur.com`)"
|
||||
service: "qbittorrent-vpn"
|
||||
radarr:
|
||||
rule: "Host(`radarr.ssankur.com`)"
|
||||
service: "radarr"
|
||||
radicale:
|
||||
rule: "Host(`radicale.ssankur.com`)"
|
||||
service: "radicale"
|
||||
scrutiny:
|
||||
rule: "Host(`scrutiny.ssankur.com`)"
|
||||
service: "scrutiny"
|
||||
sonarr:
|
||||
rule: "Host(`sonarr.ssankur.com`)"
|
||||
service: "sonarr"
|
||||
traefik:
|
||||
rule: "Host(`traefik.ssankur.com`)"
|
||||
service: "traefik"
|
||||
traefik-dmz:
|
||||
rule: "Host(`traefik-dmz.ssankur.com`)"
|
||||
service: "traefik-dmz"
|
||||
truenas:
|
||||
rule: "Host(`truenas.ssankur.com`)"
|
||||
service: "truenas"
|
||||
vaultwarden:
|
||||
rule: "Host(`vaultwarden.ssankur.com`)"
|
||||
service: "vaultwarden"
|
||||
|
||||
services:
|
||||
adguard:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://adguard-home:3000"
|
||||
adminer:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://adminer:8080"
|
||||
bazarr:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://bazarr:6767"
|
||||
dockhand:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://dockhand:3000"
|
||||
dozzle:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://dozzle:8080"
|
||||
ente-auth:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://ente-web:3003"
|
||||
ente-server:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://ente-server:8080"
|
||||
esphome:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://esphome:6052"
|
||||
gatus:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://gatus:8080"
|
||||
gitea:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://gitea:3000"
|
||||
grocy:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://grocy"
|
||||
home-assistant:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://home-assistant"
|
||||
homepage:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://homepage:3000"
|
||||
immich:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://immich:2283"
|
||||
ledfx:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://ledfx:8888"
|
||||
music-assistant:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://music-assistant:8095"
|
||||
openwrt:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "https://10.1.1.254"
|
||||
pfsense:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "https://10.1.1.1"
|
||||
prowlarr:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://prowlarr:9696"
|
||||
proxmox:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "https://10.1.1.200:8006"
|
||||
qbittorrent:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://10.1.4.2:8080"
|
||||
qbittorrent-vpn:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://10.1.4.2:8082"
|
||||
radarr:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://radarr:7878"
|
||||
radicale:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://radicale:5232"
|
||||
scrutiny:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://10.1.1.201:8080"
|
||||
sonarr:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://sonarr:8989"
|
||||
traefik:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://traefik:8080"
|
||||
traefik-dmz:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://10.1.4.2:8081"
|
||||
truenas:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "https://10.1.1.201"
|
||||
vaultwarden:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://vaultwarden"
|
||||
|
||||
traefik:
|
||||
content: |
|
||||
api:
|
||||
disableDashboardAd: "true"
|
||||
insecure: "true"
|
||||
|
||||
certificatesResolvers:
|
||||
letsencrypt:
|
||||
acme:
|
||||
dnsChallenge:
|
||||
propagation:
|
||||
delayBeforeChecks: "300"
|
||||
disableANSChecks: "true"
|
||||
disableChecks: "true"
|
||||
provider: "cloudflare"
|
||||
email: "ankur7914@gmail.com"
|
||||
storage: "/etc/letsencrypt/acme.json"
|
||||
|
||||
entryPoints:
|
||||
http:
|
||||
address: ":80"
|
||||
http:
|
||||
redirections:
|
||||
entryPoint:
|
||||
to: "https"
|
||||
https:
|
||||
address: ":443"
|
||||
asDefault: "true"
|
||||
http:
|
||||
tls:
|
||||
certResolver: "letsencrypt"
|
||||
domains:
|
||||
- main: "ssankur.com"
|
||||
sans:
|
||||
- "*.ssankur.com"
|
||||
log:
|
||||
level: "INFO"
|
||||
|
||||
providers:
|
||||
file:
|
||||
filename: "/etc/traefik/config.yaml"
|
||||
|
||||
serversTransport:
|
||||
insecureSkipVerify: "true"
|
||||
@@ -0,0 +1,15 @@
|
||||
networks:
|
||||
ssankur:
|
||||
external: "true"
|
||||
|
||||
services:
|
||||
vaultwarden:
|
||||
container_name: "vaultwarden"
|
||||
environment:
|
||||
- "DOMAIN=https://vaultwarden.ssankur.com"
|
||||
image: "vaultwarden/server:latest"
|
||||
networks:
|
||||
- "ssankur"
|
||||
restart: "on-failure"
|
||||
volumes:
|
||||
- "./mounts/data:/data"
|
||||
@@ -0,0 +1,26 @@
|
||||
networks:
|
||||
ssankur:
|
||||
external: "true"
|
||||
|
||||
services:
|
||||
wyoming-vosk:
|
||||
command:
|
||||
- "--data-dir"
|
||||
- "/data"
|
||||
- "--sentences-dir"
|
||||
- "/sentences"
|
||||
- "--correct-sentences"
|
||||
- "--limit-sentences"
|
||||
- "--debug"
|
||||
container_name: "wyoming-vosk"
|
||||
environment:
|
||||
- "PGID=1000"
|
||||
- "PUID=1000"
|
||||
- "TZ=Asia/Dhaka"
|
||||
image: "rhasspy/wyoming-vosk:latest"
|
||||
networks:
|
||||
- "ssankur"
|
||||
restart: "on-failure"
|
||||
volumes:
|
||||
- "./mounts/data:/data"
|
||||
- "./mounts/sentences:/sentences"
|
||||
Reference in new issue
Block a user