traefik services setup
This commit is contained in:
24
docker-compose.yaml
Normal file
24
docker-compose.yaml
Normal file
@@ -0,0 +1,24 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
traefik:
|
||||
image: traefik:v3.0
|
||||
container_name: traefik
|
||||
restart: unless-stopped
|
||||
command:
|
||||
- "--configFile=/etc/traefik/traefik.yaml"
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
- "8080:8080" # Traefik dashboard
|
||||
volumes:
|
||||
- "./traefik.yaml:/etc/traefik/traefik.yaml:ro"
|
||||
- "./dynamic:/etc/traefik/dynamic:ro"
|
||||
- "./letsencrypt:/letsencrypt"
|
||||
- "/auth:/auth:ro" # Basic auth folder
|
||||
networks:
|
||||
- backend
|
||||
|
||||
networks:
|
||||
backend:
|
||||
driver: bridge
|
||||
190
dynamic/services.yaml
Normal file
190
dynamic/services.yaml
Normal file
@@ -0,0 +1,190 @@
|
||||
http:
|
||||
middlewares:
|
||||
basic-auth:
|
||||
basicAuth:
|
||||
usersFile: /auth/htpasswd
|
||||
|
||||
websocket-headers:
|
||||
headers:
|
||||
customRequestHeaders:
|
||||
Connection: "Upgrade"
|
||||
Upgrade: "websocket"
|
||||
|
||||
dcr-cors:
|
||||
headers:
|
||||
accessControlAllowOrigin: "http://registry.aetoskia.com"
|
||||
accessControlAllowMethods: "GET, POST, PUT, DELETE, OPTIONS"
|
||||
accessControlAllowHeaders: "Authorization, Content-Type"
|
||||
accessControlMaxAge: 1728000
|
||||
|
||||
routers:
|
||||
# Dashboard
|
||||
traefik-dashboard:
|
||||
rule: "Host(`traefik.aetoskia.com`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: traefik-svc
|
||||
tls:
|
||||
certResolver: aetoskia
|
||||
middlewares:
|
||||
- basic-auth
|
||||
|
||||
# Media Services
|
||||
plex:
|
||||
rule: "Host(`plex.aetoskia.com`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: plex-svc
|
||||
tls:
|
||||
certResolver: aetoskia
|
||||
|
||||
sonarr:
|
||||
rule: "Host(`sonarr.aetoskia.com`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: sonarr-svc
|
||||
tls:
|
||||
certResolver: aetoskia
|
||||
|
||||
radarr:
|
||||
rule: "Host(`radarr.aetoskia.com`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: radarr-svc
|
||||
tls:
|
||||
certResolver: aetoskia
|
||||
|
||||
jellyseerr:
|
||||
rule: "Host(`jellyseerr.aetoskia.com`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: jellyseerr-svc
|
||||
tls:
|
||||
certResolver: aetoskia
|
||||
|
||||
ombi:
|
||||
rule: "Host(`ombi.aetoskia.com`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: ombi-svc
|
||||
tls:
|
||||
certResolver: aetoskia
|
||||
|
||||
qbit:
|
||||
rule: "Host(`qbit.aetoskia.com`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: qbit-svc
|
||||
tls:
|
||||
certResolver: aetoskia
|
||||
middlewares:
|
||||
- websocket-headers
|
||||
|
||||
# Codebase Services
|
||||
gitea:
|
||||
rule: "Host(`gitea.aetoskia.com`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: gitea-svc
|
||||
tls:
|
||||
certResolver: aetoskia
|
||||
middlewares:
|
||||
- websocket-headers
|
||||
|
||||
drone:
|
||||
rule: "Host(`drone.aetoskia.com`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: drone-svc
|
||||
tls:
|
||||
certResolver: aetoskia
|
||||
middlewares:
|
||||
- websocket-headers
|
||||
|
||||
dcr:
|
||||
rule: "Host(`dcr.aetoskia.com`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: dcr-svc
|
||||
tls:
|
||||
certResolver: aetoskia
|
||||
middlewares:
|
||||
- dcr-cors
|
||||
|
||||
registry:
|
||||
rule: "Host(`registry.aetoskia.com`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: registry-svc
|
||||
tls:
|
||||
certResolver: aetoskia
|
||||
# middlewares:
|
||||
# - basic-auth
|
||||
|
||||
# Monitoring
|
||||
portainer:
|
||||
rule: "Host(`portainer.aetoskia.com`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: portainer-svc
|
||||
tls:
|
||||
certResolver: aetoskia
|
||||
|
||||
services:
|
||||
# Media
|
||||
plex-svc:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://server-pi:32400"
|
||||
|
||||
sonarr-svc:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://server-pi:8989"
|
||||
|
||||
radarr-svc:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://server-pi:7878"
|
||||
|
||||
jellyseerr-svc:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://server-pi:5055"
|
||||
|
||||
ombi-svc:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://server-pi:3579"
|
||||
|
||||
qbit-svc:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://server-pi:8080"
|
||||
|
||||
# Codebase
|
||||
gitea-svc:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://private-pi:6002"
|
||||
|
||||
drone-svc:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://private-pi:6003"
|
||||
|
||||
dcr-svc:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://private-pi:6005"
|
||||
|
||||
registry-svc:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://private-pi:6001"
|
||||
|
||||
# Monitoring
|
||||
portainer-svc:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://private-pi:7002"
|
||||
24
traefik.yaml
Normal file
24
traefik.yaml
Normal file
@@ -0,0 +1,24 @@
|
||||
entryPoints:
|
||||
web:
|
||||
address: ":80"
|
||||
websecure:
|
||||
address: ":443"
|
||||
|
||||
providers:
|
||||
file:
|
||||
directory: /etc/traefik/dynamic
|
||||
watch: true
|
||||
|
||||
api:
|
||||
dashboard: true
|
||||
|
||||
log:
|
||||
level: INFO
|
||||
|
||||
certificatesResolvers:
|
||||
aetoskia:
|
||||
acme:
|
||||
email: aetoskia@gmail.com
|
||||
storage: /letsencrypt/acme.json
|
||||
httpChallenge:
|
||||
entryPoint: web
|
||||
Reference in New Issue
Block a user