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"