Initial Commit
This commit is contained in:
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"
|
||||||
@@ -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