112 lines
4.3 KiB
YAML
112 lines
4.3 KiB
YAML
|
############################################################################
|
||
|
Docker compose file for the site in question
|
||
|
############################################################################
|
||
|
version: "3.7"
|
||
|
|
||
|
services:
|
||
|
nginx:
|
||
|
image: "nginx:1.21.4"
|
||
|
ports:
|
||
|
- target: 80
|
||
|
- target: 443
|
||
|
published: ${goodPort}
|
||
|
protocol: tcp
|
||
|
mode: ingress
|
||
|
volumes:
|
||
|
- ./htdocs:/usr/share/nginx/html
|
||
|
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
|
||
|
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
|
||
|
|
||
|
|
||
|
|
||
|
############################################################################
|
||
|
Traefik config file that is with the website
|
||
|
############################################################################
|
||
|
version: "3.7"
|
||
|
|
||
|
services:
|
||
|
nginx:
|
||
|
networks:
|
||
|
- traefik
|
||
|
# ports: - target: 80 published: ${goodPort} protocol: tcp mode: ingress
|
||
|
deploy:
|
||
|
labels:
|
||
|
- "traefik.enable=true"
|
||
|
- "traefik.docker.network=traefik_proxy_net"
|
||
|
- "traefik.http.routers.${SiteName}_router.rule=Host(`${DOMAIN}`)"
|
||
|
- "traefik.http.services.${SiteName}_service.loadbalancer.server.port=80"
|
||
|
- "traefik.port=80"
|
||
|
- "traefik.site.port=80"
|
||
|
- "traefik.http.routers.${SiteName}_webserver.entrypoints=web"
|
||
|
- "traefik.http.routers.${SiteName}_webserver.middlewares=redirect"
|
||
|
- "traefik.http.middlewares.redirect.redirectscheme.scheme=https"
|
||
|
- "traefik.http.routers.${SiteName}_webserver2.tls=true"
|
||
|
- "traefik.http.routers.${SiteName}_webserver2.rule=Host(`${DOMAIN}`)"
|
||
|
- "traefik.http.routers.${SiteName}_webserver2.entrypoints=websecure"
|
||
|
- "traefik.http.routers.${SiteName}_webserver2.tls.certresolver=le"
|
||
|
|
||
|
networks:
|
||
|
traefik:
|
||
|
name: traefik_proxy_net
|
||
|
external: true
|
||
|
|
||
|
|
||
|
############################################################################
|
||
|
Traefik config
|
||
|
############################################################################
|
||
|
|
||
|
version: "3.3"
|
||
|
|
||
|
services:
|
||
|
|
||
|
traefik:
|
||
|
image: "traefik:v2.10"
|
||
|
networks:
|
||
|
- proxy_net
|
||
|
command:
|
||
|
- "--log.level=TRACE"
|
||
|
- "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
|
||
|
#- "--log.level=DEBUG"
|
||
|
- "--api.insecure=true"
|
||
|
- "--api.dashboard=true"
|
||
|
- "--providers.docker=true"
|
||
|
# - "--providers.docker.swarmMode=true"
|
||
|
- "--providers.docker.exposedbydefault=false"
|
||
|
- "--entrypoints.web.address=:80"
|
||
|
- "--entrypoints.websecure.address=:443"
|
||
|
- "--certificatesresolvers.myresolver.acme.httpchallenge=true"
|
||
|
- "--certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web"
|
||
|
#- "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
|
||
|
- "--certificatesresolvers.myresolver.acme.email=testswarm@gmail.com"
|
||
|
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
|
||
|
ports:
|
||
|
- "80:80"
|
||
|
- "443:443"
|
||
|
volumes:
|
||
|
- "./letsencrypt:/letsencrypt"
|
||
|
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
||
|
labels:
|
||
|
- "traefik.enable=true"
|
||
|
- "traefik.http.routers.traefik.rule=Host(`traefik.local.coulter.info`)"
|
||
|
- "traefik.http.routers.traefik.entrypoints=websecure"
|
||
|
- "traefik.http.routers.traefik.middlewares=localonly"
|
||
|
- "traefik.http.routers.traefik.service=api@internal"
|
||
|
- "traefik.http.routers.traefik.tls=true"
|
||
|
- "traefik.http.middlewares.localonly.ipwhitelist.sourcerange=10.0.0.0/8"
|
||
|
whoami:
|
||
|
image: "traefik/whoami"
|
||
|
networks:
|
||
|
- proxy_net
|
||
|
labels:
|
||
|
- "traefik.enable=true"
|
||
|
- "traefik.http.routers.whoami.rule=Host(`swarmtest.glycam.com`)"
|
||
|
- "traefik.http.routers.whoami.entrypoints=websecure"
|
||
|
- "traefik.http.routers.whoami.tls.certresolver=myresolver"
|
||
|
- "traefik.http.routers.whoami.tls=true"
|
||
|
- "traefik.http.services.whoami.loadbalancer.server.port=80"
|
||
|
- "traefik.docker.network=proxy_net"
|
||
|
|
||
|
networks:
|
||
|
proxy_net:
|
||
|
|