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