Initial Commit

This commit is contained in:
SSAnkur committed 2026-10-22 22:33:51 +06:00
commit dc40d19393
39 files changed
+2000

No files matched your search

@@ -0,0 +1,20 @@
networks:
ssankur:
external: "true"
services:
gitea:
container_name: "gitea"
environment:
- "GITEA__repository__DEFAULT_PUSH_CREATE_PRIVATE=false"
- "GITEA__repository__ENABLE_PUSH_CREATE_ORG=true"
- "GITEA__repository__ENABLE_PUSH_CREATE_USER=true"
- "TZ=Asia/Dhaka"
- "USER_GID=1000"
- "USER_UID=1000"
image: "docker.gitea.com/gitea:latest"
networks:
- "ssankur"
restart: "on-failure"
volumes:
- "./mounts/data:/data"
@@ -0,0 +1,15 @@
networks:
ssankur:
external: "true"
services:
gotify:
container_name: "gotify"
environment:
- "TZ=Asia/Dhaka"
image: "gotify/server:latest"
networks:
- "ssankur"
restart: "on-failure"
volumes:
- "./mounts/data:/app/data"
@@ -0,0 +1,27 @@
networks:
ssankur:
external: "true"
volumes:
TrueNAS-RO-Movies:
external: "true"
TrueNAS-RO-Shows:
external: "true"
services:
jellyfin:
container_name: "jellyfin"
devices:
- "/dev/dri:/dev/dri"
environment:
- "PGID=1000"
- "PUID=1000"
- "TZ=Asia/Dhaka"
image: "lscr.io/linuxserver/jellyfin:latest"
networks:
- "ssankur"
restart: "on-failure"
volumes:
- "./mounts/config:/config"
- "TrueNAS-RO-Movies:/mnt/TrueNAS/Movies:ro"
- "TrueNAS-RO-Shows:/mnt/TrueNAS/Shows:ro"
@@ -0,0 +1,20 @@
networks:
ssankur:
external: "true"
services:
librespeed:
container_name: "librespeed"
environment:
- "DOCKER_MODS=ghcr.io/themepark-dev/theme.park:librespeed"
- "PASSWORD=${PASSWORD}"
- "PGID=1000"
- "PUID=1000"
- "TP_THEME=dracula"
- "TZ=Asia/Dhaka"
image: "lscr.io/linuxserver/librespeed:latest"
networks:
- "ssankur"
restart: "on-failure"
volumes:
- "./mounts/config:/config"
@@ -0,0 +1,39 @@
networks:
ssankur:
external: "true"
services:
mailrise:
configs:
- source: "mailrise"
target: "/etc/mailrise.conf"
container_name: "mailrise"
image: "yoryan/mailrise:latest"
networks:
- "ssankur"
ports:
- "10.1.4.2:25:25/tcp"
restart: "on-failure"
configs:
mailrise:
content: |
configs:
fileserver@mailrise.ssankur.com:
urls:
- "gotify://gotify/${GOTIFY_TOKEN_FILE_SERVER}"
mirotalk@mailrise.ssankur.com:
urls:
- "gotify://gotify/${GOTIFY_TOKEN_MIROTALK}"
pfsense@mailrise.ssankur.com:
urls:
- "gotify://gotify/${GOTIFY_TOKEN_PFSENSE}"
truenas@mailrise.ssankur.com:
urls:
- "gotify://gotify/${GOTIFY_TOKEN_TRUENAS}"
listen:
port: "25"
smtp:
auth:
basic:
SSAnkur: "${SMTP_PASSWORD}"
@@ -0,0 +1,27 @@
networks:
ssankur:
external: "true"
services:
mirotalk:
container_name: "mirotalk"
environment:
- "EMAIL_ALERTS_ENABLED=true"
- "EMAIL_FROM=ankur7914@gmail.com"
- "EMAIL_HOST=mailrise"
- "EMAIL_PASSWORD=${EMAIL_PASSWORD}"
- "EMAIL_PORT=25"
- "EMAIL_SEND_TO=mirotalk@mailrise.ssankur.com"
- "EMAIL_USERNAME=SSAnkur"
- "JWT_SECRET=${JWT_SECRET}"
- "PRESENTER_JOIN_FIRST=false"
- "PRESENTERS=Ankur"
- "SFU_SERVER=true"
- "SFU_ANNOUNCED_IP=mirotalk.ssankur.com"
image: "mirotalk/sfu:latest"
networks:
- "ssankur"
ports:
- "10.1.4.2:40000-40004:40000-40004/tcp"
- "10.1.4.2:40000-40004:40000-40004/udp"
restart: "on-failure"
@@ -0,0 +1,17 @@
networks:
ssankur:
external: "true"
services:
nginx:
container_name: "nginx"
environment:
- "PGID=1000"
- "PUID=1000"
- "TZ=Asia/Dhaka"
image: "lscr.io/linuxserver/nginx:latest"
networks:
- "ssankur"
restart: "on-failure"
volumes:
- "./mounts/config:/config"
@@ -0,0 +1,16 @@
networks:
ssankur:
external: "true"
services:
openspeedtest:
container_name: "openspeedtest"
environment:
- "SET_USER=1000"
- "TZ=Asia/Dhaka"
image: "openspeedtest/latest:latest"
networks:
- "ssankur"
restart: "on-failure"
volumes:
- "./mounts/letsencrypt:/var/log/letsencrypt"
@@ -0,0 +1,18 @@
networks:
ssankur:
external: "true"
services:
pingvin-share:
container_name: "pingvin-share"
environment:
- "PGID=1000"
- "PUID=1000"
- "TZ=Asia/Dhaka"
image: "stonith404/pingvin-share:latest"
networks:
- "ssankur"
restart: "on-failure"
volumes:
- "./mounts/data:/opt/app/backend/data"
- "./mounts/img:/opt/app/frontend/public/img"
@@ -0,0 +1,49 @@
networks:
ssankur:
external: "true"
volumes:
Vault:
external: "true"
services:
qbittorrent-vpn:
cap_add:
- "NET_ADMIN"
configs:
- source: "wg0"
target: "/config/wireguard/wg0.conf"
container_name: "qbittorrent-vpn"
environment:
- "PGID=1000"
- "PUID=1000"
- "TZ=Asia/Dhaka"
- "VPN_ENABLED=true"
- "VPN_LAN_NETWORK=10.1.1.0/24,10.5.5.1"
- "VPN_NAMESERVERS=1.1.1.1@853#cloudflare-dns.com"
- "WEBUI_PORTS=8082/tcp"
image: "ghcr.io/hotio/qbittorrent:latest"
networks:
- "ssankur"
ports:
- "10.1.4.2:8082:8082/tcp"
restart: "on-failure"
sysctls:
- "net.ipv4.conf.all.src_valid_mark=1"
- "net.ipv6.conf.all.disable_ipv6=1"
volumes:
- "./mounts/config:/config"
- "Vault:/mnt/Vault"
configs:
wg0:
content: |
[Interface]
Address = 10.9.9.3/32
DNS = 1.1.1.1
PrivateKey = ${PRIVATE_KEY}
[Peer]
AllowedIPs = 0.0.0.0/0
Endpoint = ${VPN_SERVER_IP}:51820
PublicKey = ${PUBLIC_KEY}
@@ -0,0 +1,44 @@
networks:
ssankur:
external: "true"
volumes:
TrueNAS-RW-Downloads:
external: "true"
TrueNAS-RO-Games-Setup:
external: "true"
TrueNAS-RO-Movies:
external: "true"
TrueNAS-RO-Shows:
external: "true"
TrueNAS-RO-Softwares-Operating-Systems:
external: "true"
TrueNAS-RO-Videos:
external: "true"
Vault:
external: "true"
services:
qbittorrent:
container_name: "qbittorrent"
environment:
- "PGID=1000"
- "PUID=1000"
- "TZ=Asia/Dhaka"
image: "lscr.io/linuxserver/qbittorrent:latest"
networks:
- "ssankur"
ports:
- "10.1.4.2:6881:6881/tcp"
- "10.1.4.2:6881:6881/udp"
- "10.1.4.2:8080:8080/tcp"
restart: "on-failure"
volumes:
- "./mounts/config:/config"
- "TrueNAS-RW-Downloads:/mnt/TrueNAS/Downloads"
- "TrueNAS-RO-Games-Setup:/mnt/TrueNAS/Games/Setup:ro"
- "TrueNAS-RO-Movies:/mnt/TrueNAS/Movies:ro"
- "TrueNAS-RO-Shows:/mnt/TrueNAS/Shows:ro"
- "TrueNAS-RO-Softwares-Operating-Systems:/mnt/TrueNAS/Softwares/Operating Systems:ro"
- "TrueNAS-RO-Videos:/mnt/TrueNAS/Videos:ro"
- "Vault:/mnt/Vault"
@@ -0,0 +1,52 @@
networks:
ssankur:
external: "true"
services:
socket-proxy:
container_name: "socket-proxy"
environment:
- "ALLOW_ARCHIVE=1"
- "ALLOW_CHANGES=1"
- "ALLOW_EXPORT=1"
- "ALLOW_LOGS=1"
- "ALLOW_PAUSE=1"
- "ALLOW_RESTARTS=1"
- "ALLOW_STOP=1"
- "ALLOW_START=1"
- "ALLOW_TOP=1"
- "ALLOW_UNPAUSE=1"
- "AUTH=1"
- "BUILD=1"
- "COMMIT=1"
- "CONFIGS=1"
- "CONTAINERS=1"
- "DISTRIBUTION=1"
- "EVENTS=1"
- "EXEC=1"
- "IMAGES=1"
- "INFO=1"
- "NETWORKS=1"
- "NODES=1"
- "PING=1"
- "PLUGINS=1"
- "POST=1"
- "SECRETS=1"
- "SERVICES=1"
- "SESSION=1"
- "SWARM=1"
- "SYSTEM=1"
- "TASKS=1"
- "TZ=Asia/Dhaka"
- "VERSION=1"
- "VOLUMES=1"
image: "lscr.io/linuxserver/socket-proxy:latest"
networks:
- "ssankur"
ports:
- "10.1.4.2:2375:2375/tcp"
restart: "on-failure"
tmpfs:
- "/run"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
@@ -0,0 +1,137 @@
networks:
ssankur:
external: "true"
services:
traefik-dmz:
configs:
- source: "config"
target: "/etc/traefik/config.yaml"
- source: "traefik"
target: "/etc/traefik/traefik.yaml"
container_name: "traefik-dmz"
environment:
- "CF_DNS_API_TOKEN=${CF_DNS_API_TOKEN}"
- "TZ=Asia/Dhaka"
image: "traefik:latest"
networks:
- "ssankur"
ports:
- "10.1.4.2:80:80/tcp"
- "10.1.4.2:443:443/tcp"
- "10.1.4.2:8081:8080/tcp"
restart: "on-failure"
volumes:
- "./mounts/letsencrypt:/etc/letsencrypt"
configs:
config:
content: |
http:
routers:
files:
rule: "Host(`files.ssankur.com`)"
service: "files"
gitea:
rule: "Host(`gitea.ssankur.com`)"
service: "gitea"
gotify:
rule: "Host(`gotify.ssankur.com`)"
service: "gotify"
hunt:
rule: "Host(`hunt.ssankur.com`)"
service: "hunt"
jellyfin:
rule: "Host(`jellyfin.ssankur.com`)"
service: "jellyfin"
mirotalk:
rule: "Host(`mirotalk.ssankur.com`)"
service: "mirotalk"
openspeedtest:
rule: "Host(`openspeedtest.ssankur.com`)"
service: "openspeedtest"
speedtest:
rule: "Host(`speedtest.ssankur.com`)"
service: "speedtest"
services:
files:
loadBalancer:
servers:
- url: "http://pingvin-share:3000"
gitea:
loadBalancer:
servers:
- url: "http://gitea:3000"
gotify:
loadBalancer:
servers:
- url: "http://gotify:80"
hunt:
loadBalancer:
servers:
- url: "http://nginx:80"
jellyfin:
loadBalancer:
servers:
- url: "http://jellyfin:8096"
mirotalk:
loadBalancer:
servers:
- url: "https://mirotalk:3010"
openspeedtest:
loadBalancer:
servers:
- url: "https://openspeedtest:3001"
speedtest:
loadBalancer:
servers:
- url: "https://librespeed:443"
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"
forwardedHeaders:
trustedIPs:
- "172.18.0.0/16"
http:
tls:
certResolver: "letsencrypt"
domains:
- main: "ssankur.com"
sans:
- "*.ssankur.com"
log:
level: "INFO"
providers:
file:
filename: "/etc/traefik/config.yaml"
serversTransport:
insecureSkipVerify: "true"
+14
View File
@@ -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"
+375
View File
@@ -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"
+5
View File
@@ -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"