Initial commit: homelab configuration and documentation
This commit is contained in:
53
services/standalone/Traefik/docker-compose.yml
Normal file
53
services/standalone/Traefik/docker-compose.yml
Normal file
@@ -0,0 +1,53 @@
|
||||
version: "3.9"
|
||||
|
||||
services:
|
||||
traefik:
|
||||
image: traefik:latest
|
||||
container_name: traefik
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
# Replace this placeholder with your DuckDNS token
|
||||
- DUCKDNS_TOKEN=03a4d8f7-695a-4f51-b66c-cc2fac555fc1
|
||||
networks:
|
||||
- web
|
||||
ports:
|
||||
- "80:80" # http
|
||||
- "443:443" # https
|
||||
- "8089:8089" # traefik dashboard (secure it if exposed)
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
- ./letsencrypt:/letsencrypt # <-- keep this directory inside WSL filesystem
|
||||
- ./traefik_dynamic.yml:/etc/traefik/traefik_dynamic.yml:ro
|
||||
command:
|
||||
|
||||
- --api.insecure=false
|
||||
- --api.dashboard=true
|
||||
- --entrypoints.web.address=:80
|
||||
- --entrypoints.websecure.address=:443
|
||||
- --entrypoints.dashboard.address=:8089
|
||||
- --providers.docker=true
|
||||
- --providers.docker.endpoint=unix:///var/run/docker.sock
|
||||
- --providers.docker.exposedbydefault=false
|
||||
- --providers.file.filename=/etc/traefik/traefik_dynamic.yml
|
||||
- --providers.file.watch=true
|
||||
- --certificatesresolvers.duckdns.acme.email=sterlenjohnson6@gmail.com
|
||||
- --certificatesresolvers.duckdns.acme.storage=/letsencrypt/acme.json
|
||||
- --certificatesresolvers.duckdns.acme.dnschallenge.provider=duckdns
|
||||
- --certificatesresolvers.duckdns.acme.dnschallenge.disablepropagationcheck=true
|
||||
|
||||
whoami:
|
||||
image: containous/whoami:latest
|
||||
container_name: whoami
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- web
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.whoami.rule=Host(`whoami.sj98.duckdns.org`)"
|
||||
- "traefik.http.routers.whoami.entrypoints=websecure"
|
||||
- "traefik.http.routers.whoami.tls=true"
|
||||
- "traefik.http.routers.whoami.tls.certresolver=duckdns"
|
||||
|
||||
networks:
|
||||
web:
|
||||
external: true
|
||||
41
services/standalone/Traefik/letsencrypt/acme.json
Normal file
41
services/standalone/Traefik/letsencrypt/acme.json
Normal file
File diff suppressed because one or more lines are too long
18
services/standalone/Traefik/traefik_dynamic.yml
Normal file
18
services/standalone/Traefik/traefik_dynamic.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
# traefik_dynamic.yml
|
||||
http:
|
||||
routers:
|
||||
traefik-dashboard:
|
||||
entryPoints:
|
||||
- dashboard
|
||||
rule: "Host(`localhost`) && (PathPrefix(`/dashboard`) || PathPrefix(`/`))"
|
||||
service: "api@internal"
|
||||
middlewares:
|
||||
- dashboard-auth
|
||||
|
||||
middlewares:
|
||||
dashboard-auth:
|
||||
basicAuth:
|
||||
# replace the example hash below with a hash you generate (see step 3)
|
||||
users:
|
||||
- "admin:$2y$05$8CZrANjYoKRm5VG6QO8kseVpumnDXnLDU2vREgfMm9F/JdsTpq.iy"
|
||||
- "Sterl:$2y$05$t8LnSDA190LOs2Wpmbt/p.7dFHzZKDT4BMLjSjqsxg0i6re5I9wlm"
|
||||
Reference in New Issue
Block a user