add traefik
This commit is contained in:
3
hosts/ps09rp/traefik/.env
Normal file
3
hosts/ps09rp/traefik/.env
Normal file
@@ -0,0 +1,3 @@
|
||||
CF_API_EMAIL=alexanderlebens@gmail.com
|
||||
CF_API_KEY=""
|
||||
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
29
hosts/ps09rp/traefik/docker-compose.yml
Normal file
29
hosts/ps09rp/traefik/docker-compose.yml
Normal file
@@ -0,0 +1,29 @@
|
||||
services:
|
||||
traefik:
|
||||
command: traefik
|
||||
container_name: traefik
|
||||
env_file:
|
||||
- .env
|
||||
image: docker.io/traefik:v3.2
|
||||
labels:
|
||||
traefik.docker.network: traefik
|
||||
traefik.enable: true
|
||||
traefik.http.routers.dashboard.entrypoints: websecure
|
||||
traefik.http.routers.dashboard.rule: (Host(`traefik-ps09rp.alexlebens.net`) && (PathPrefix(`/api/`) || PathPrefix(`/dashboard/`)))
|
||||
traefik.http.routers.dashboard.service: api@internal
|
||||
traefik.http.routers.dashboard.tls: true
|
||||
traefik.http.routers.dashboard.tls.certresolver: cloudflare
|
||||
networks:
|
||||
internal: null
|
||||
ports:
|
||||
- 80:80
|
||||
- 443:443
|
||||
privileged: true
|
||||
restart: always
|
||||
volumes:
|
||||
- ./traefik_config:/etc/traefik
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
|
||||
networks:
|
||||
internal:
|
||||
name: internal
|
15
hosts/ps09rp/traefik/traefik_config/conf/iplocal.yml
Normal file
15
hosts/ps09rp/traefik/traefik_config/conf/iplocal.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
http:
|
||||
middlewares:
|
||||
ip-local:
|
||||
IPAllowList:
|
||||
sourceRange:
|
||||
- "192.168.1.1/16"
|
||||
- "172.27.0.0/16"
|
||||
|
||||
tcp:
|
||||
middlewares:
|
||||
ip-local:
|
||||
IPAllowList:
|
||||
sourceRange:
|
||||
- "192.168.1.1/16"
|
||||
- "172.27.0.0/16"
|
8
hosts/ps09rp/traefik/traefik_config/conf/metrics.yml
Normal file
8
hosts/ps09rp/traefik/traefik_config/conf/metrics.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
http:
|
||||
routers:
|
||||
prometheus:
|
||||
rule: "(Host(`traefik-ps09rp.alexlebens.net`) && Path(`/metrics`))"
|
||||
entryPoints: websecure
|
||||
service: prometheus@internal
|
||||
middlewares:
|
||||
- "ip-local@file"
|
113
hosts/ps09rp/traefik/traefik_config/traefik.yml
Normal file
113
hosts/ps09rp/traefik/traefik_config/traefik.yml
Normal file
@@ -0,0 +1,113 @@
|
||||
################################################################
|
||||
# Global
|
||||
################################################################
|
||||
|
||||
global:
|
||||
checkNewVersion: false
|
||||
sendAnonymousUsage: false
|
||||
|
||||
################################################################
|
||||
# EntryPoints
|
||||
################################################################
|
||||
|
||||
entryPoints:
|
||||
web:
|
||||
address: :80
|
||||
http:
|
||||
redirections:
|
||||
entryPoint:
|
||||
to: websecure
|
||||
scheme: https
|
||||
|
||||
websecure:
|
||||
address: :443
|
||||
forwardedHeaders:
|
||||
trustedIPs:
|
||||
- "192.168.1.1/16"
|
||||
proxyProtocol:
|
||||
trustedIPs:
|
||||
- "192.168.1.1/16"
|
||||
http:
|
||||
tls:
|
||||
options: default
|
||||
certResolver: cloudflare
|
||||
domains:
|
||||
- main: "*.alexlebens.net"
|
||||
sans:
|
||||
- "alexlebens.net"
|
||||
middlewares:
|
||||
- ip-local@file
|
||||
|
||||
################################################################
|
||||
# Certificate Resolvers
|
||||
################################################################
|
||||
|
||||
certificatesResolvers:
|
||||
cloudflare:
|
||||
acme:
|
||||
email: alexanderlebens@gmail.com
|
||||
storage: /etc/traefik/acme/acme.json
|
||||
preferredChain: "ISRG Root X1"
|
||||
dnsChallenge:
|
||||
provider: cloudflare
|
||||
delayBeforeCheck: "3"
|
||||
resolvers:
|
||||
- "1.1.1.1"
|
||||
- "1.0.0.1"
|
||||
|
||||
################################################################
|
||||
# Traefik logs
|
||||
################################################################
|
||||
|
||||
log:
|
||||
level: INFO
|
||||
|
||||
################################################################
|
||||
# Access logs
|
||||
################################################################
|
||||
|
||||
accessLog: {}
|
||||
|
||||
################################################################
|
||||
# API and Dashboard
|
||||
################################################################
|
||||
|
||||
api:
|
||||
insecure: false
|
||||
dashboard: true
|
||||
|
||||
################################################################
|
||||
# Ping
|
||||
################################################################
|
||||
|
||||
# ping:
|
||||
|
||||
################################################################
|
||||
# Metrics
|
||||
################################################################
|
||||
|
||||
metrics:
|
||||
prometheus:
|
||||
addEntryPointsLabels: true
|
||||
addRoutersLabels: true
|
||||
addServicesLabels: true
|
||||
buckets:
|
||||
- 0.1
|
||||
- 0.3
|
||||
- 1.2
|
||||
- 5.0
|
||||
entryPoint: websecure
|
||||
manualRouting: true
|
||||
|
||||
################################################################
|
||||
# Providers
|
||||
################################################################
|
||||
|
||||
providers:
|
||||
docker:
|
||||
endpoint: "unix:///var/run/docker.sock"
|
||||
exposedByDefault: false
|
||||
|
||||
file:
|
||||
directory: "/etc/traefik/conf"
|
||||
watch: true
|
Reference in New Issue
Block a user