Restructured Documentation
This commit is contained in:
111
Containers/Docker/Docker Compose/Traefik.md
Normal file
111
Containers/Docker/Docker Compose/Traefik.md
Normal file
@ -0,0 +1,111 @@
|
||||
**Purpose**: Deploy a Traefik Reverse Proxy
|
||||
|
||||
```jsx title="docker-compose.yml"
|
||||
version: "3.3"
|
||||
services:
|
||||
traefik:
|
||||
image: "traefik:latest"
|
||||
restart: always
|
||||
container_name: "traefik"
|
||||
ulimits:
|
||||
nofile:
|
||||
soft: 65536
|
||||
hard: 65536
|
||||
labels:
|
||||
- "traefik.http.routers.traefik-proxy.middlewares=my-buffering"
|
||||
- "traefik.http.middlewares.my-buffering.buffering.maxRequestBodyBytes=104857600"
|
||||
- "traefik.http.middlewares.my-buffering.buffering.maxResponseBodyBytes=104857600"
|
||||
- "traefik.http.middlewares.my-buffering.buffering.memRequestBodyBytes=2097152"
|
||||
- "traefik.http.middlewares.my-buffering.buffering.memResponseBodyBytes=2097152"
|
||||
- "traefik.http.middlewares.my-buffering.buffering.retryExpression=IsNetworkError() && Attempts() <= 2"
|
||||
command:
|
||||
# Globals
|
||||
- "--log.level=ERROR"
|
||||
- "--api.insecure=true"
|
||||
- "--global.sendAnonymousUsage=false"
|
||||
# Docker
|
||||
# - "--providers.docker=true"
|
||||
# - "--providers.docker.exposedbydefault=false"
|
||||
# File Provider
|
||||
- "--providers.file.directory=/etc/traefik/dynamic"
|
||||
- "--providers.file.watch=true"
|
||||
# Entrypoints
|
||||
- "--entrypoints.web.address=:80"
|
||||
- "--entrypoints.websecure.address=:443"
|
||||
- "--entrypoints.web.http.redirections.entrypoint.to=websecure" #Redirect HTTP to HTTPS
|
||||
- "--entrypoints.web.http.redirections.entrypoint.scheme=https" #Redirect HTTP to HTTPS
|
||||
- "--entrypoints.web.http.redirections.entrypoint.permanent=true" #Redirect HTTP to HTTPS
|
||||
# LetsEncrypt
|
||||
# - "--certificatesresolvers.myresolver.acme.tlschallenge=true"
|
||||
- "--certificatesresolvers.myresolver.acme.dnschallenge=true" #TEMPORARY CHANGE
|
||||
- "--certificatesresolvers.myresolver.acme.dnschallenge.provider=cloudflare" #TEMPORARY CHANGE
|
||||
- "--certificatesresolvers.myresolver.acme.email=cyberstrawberry101@gmail.com"
|
||||
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
|
||||
# labels:
|
||||
# # API
|
||||
# - "traefik.enable=true"
|
||||
# # Global http --> https
|
||||
# - "traefik.http.routers.http-catchall.rule=hostregexp(`{host:[a-z-.]+}`)"
|
||||
# - "traefik.http.routers.http-catchall.entrypoints=web"
|
||||
# - "traefik.http.routers.http-catchall.middlewares=redirect-to-https"
|
||||
# - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
- "8080:8080"
|
||||
volumes:
|
||||
- "/srv/containers/traefik/letsencrypt:/letsencrypt"
|
||||
- "/srv/containers/traefik/config:/etc/traefik"
|
||||
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
||||
- "/srv/containers/traefik/cloudflare:/cloudflare"
|
||||
networks:
|
||||
docker_network:
|
||||
ipv4_address: 192.168.5.29
|
||||
environment:
|
||||
- CF_API_EMAIL=cyberstrawberry101@gmail.com
|
||||
- CF_API_KEY=REDACTED
|
||||
extra_hosts:
|
||||
- "flask.cyberstrawberry.local:192.168.3.21"
|
||||
- "searx.cyberstrawberry.local:192.168.3.21"
|
||||
- "heimdall.cyberstrawberry.local:192.168.3.21"
|
||||
- "status.cyberstrawberry.local:192.168.3.21"
|
||||
- "rancher.cyberstrawberry.local:192.168.3.21"
|
||||
- "trilium.blockaderunners.local:192.168.3.21"
|
||||
- "pw.cyberstrawberry.local:192.168.3.22"
|
||||
- "remote.cyberstrawberry.local:192.168.5.43"
|
||||
- "cluster-cloud.cyberstrawberry.local:192.168.3.22"
|
||||
- "searx.blockaderunners.local:192.168.3.22"
|
||||
- "searx.deeptree-labs.local:192.168.3.22"
|
||||
- "cyberstrawberry.local:192.168.3.22"
|
||||
- "storage.cyberstrawberry.local:192.168.3.22"
|
||||
- "cloud.cyberstrawberry.local:192.168.5.146"
|
||||
- "cloud.blockaderunners.local:192.168.5.90"
|
||||
- "docs.blockaderunners.local:192.168.5.212"
|
||||
- "status.blockaderunners.local:192.168.5.13"
|
||||
- "blockaderunners.local:192.168.5.219"
|
||||
- "office.cyberstrawberry.local:192.168.5.143"
|
||||
- "git.deeptree.local:192.168.5.166"
|
||||
- "pw.deeptree.local:192.168.5.170"
|
||||
- "status.deeptree.local:192.168.5.211"
|
||||
- "temp.cyberstrawberry.local:192.168.5.197"
|
||||
- "drop.cyberstrawberry.local:192.168.5.14"
|
||||
- "vault.cyberstrawberry.local:192.168.3.22"
|
||||
- "bitwarden.cyberstrawberry.local:192.168.5.141"
|
||||
- "chat.cyberstrawberry.local:192.168.3.22"
|
||||
- "trilium.cyberstrawberry.local:192.168.3.22"
|
||||
- "node-red.cyberstrawberry.local:192.168.3.21"
|
||||
- "homelab.cyberstrawberry.local:192.168.3.22"
|
||||
- "awx.cyberstrawberry.local:192.168.3.21"
|
||||
- "git.cyberstrawberry.local:192.168.3.21"
|
||||
- "lab.cyberstrawberry.local:192.168.5.44"
|
||||
networks:
|
||||
default:
|
||||
external:
|
||||
name: docker_network
|
||||
docker_network:
|
||||
external: true
|
||||
```
|
||||
|
||||
```jsx title=".env"
|
||||
Not Applicable
|
||||
```
|
Reference in New Issue
Block a user