97 lines
4.1 KiB
Django/Jinja
97 lines
4.1 KiB
Django/Jinja
version: '3.4'
|
|
|
|
networks:
|
|
web_net:
|
|
external: false
|
|
name: web_net
|
|
|
|
volumes:
|
|
traefik-acme:
|
|
name: traefik-acme
|
|
nexus-data:
|
|
name: nexus-data
|
|
|
|
services:
|
|
traefik:
|
|
image: "{{TRAEFIK_IMAGE }}:{{TRAEFIK_VERSION}}"
|
|
restart: always
|
|
container_name: traefik
|
|
command:
|
|
- "--log.level=INFO"
|
|
- "--log.filepath=/log-file.log"
|
|
- "--log.format=json"
|
|
- "--api=true"
|
|
- "--ping=true"
|
|
- "--accesslog=true"
|
|
- "--accesslog.bufferingsize=100"
|
|
- "--api.insecure=true"
|
|
- "--providers.docker.endpoint=unix:///var/run/docker.sock"
|
|
- "--providers.docker.exposedbydefault=false"
|
|
- "--providers.docker.network=web_net"
|
|
- "--entrypoints.http.address=:80"
|
|
- "--entrypoints.https.address=:443"
|
|
- "--metrics.prometheus=true"
|
|
- "--entryPoints.metrics.address=:8082"
|
|
- "--metrics.prometheus.entryPoint=metrics"
|
|
- "--certificatesresolvers.mycert.acme.email={{ TRAEFIK_ACME_EMAIL }}"
|
|
- "--certificatesresolvers.mycert.acme.storage=/acme/acme.json"
|
|
- "--certificatesresolvers.mycert.acme.tlschallenge=true"
|
|
- "--providers.file.filename=/traefik/config.yml"
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
- ./traefik:/traefik
|
|
- traefik-acme:/acme
|
|
networks:
|
|
- web_net
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.docker.network=web_net"
|
|
- "traefik.http.routers.traefik.entrypoints=http"
|
|
- "traefik.http.routers.traefik.rule=Host(`{{ TRAEFIK_SUB_DOMAIN }}.{{ DOMAIN_NAME }}`)"
|
|
- "traefik.http.routers.traefik.middlewares=https-redirect"
|
|
- "traefik.http.middlewares.https-redirect.redirectscheme.scheme=https"
|
|
- "traefik.http.middlewares.web-auth.basicauth.users={{ WEB_AUTH_USER }}:{{ WEB_AUTH_PASS }}"
|
|
- "traefik.http.routers.traefik-secure.middlewares=web-auth,security@file,hsts@file"
|
|
- "traefik.http.routers.traefik-secure.entrypoints=https"
|
|
- "traefik.http.routers.traefik-secure.rule=Host(`{{ TRAEFIK_SUB_DOMAIN }}.{{ DOMAIN_NAME }}`)"
|
|
- "traefik.http.routers.traefik-secure.tls=true"
|
|
- "traefik.http.routers.traefik-secure.tls.options=default"
|
|
- "traefik.http.routers.traefik-secure.tls.certresolver=mycert"
|
|
- "traefik.http.services.traefik.loadbalancer.server.port=8080"
|
|
|
|
nexus:
|
|
image: "{{ NEXUS_IMAGE }}:{{ NEXUS_VERSION }}"
|
|
container_name: nexus
|
|
restart: always
|
|
volumes:
|
|
- "nexus-data:/nexus-data"
|
|
networks:
|
|
- web_net
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.docker.network=web_net"
|
|
- "traefik.http.routers.repo.entrypoints=http"
|
|
- "traefik.http.routers.repo.rule=Host(`{{NEXUS_SUB_DOMAIN}}.{{ DOMAIN_NAME }}`)"
|
|
- "traefik.http.routers.repo.service=repo-secure"
|
|
- "traefik.http.routers.repo.middlewares=https-redirect"
|
|
- "traefik.http.routers.repo-secure.entrypoints=https"
|
|
- "traefik.http.routers.repo-secure.rule=Host(`{{NEXUS_SUB_DOMAIN}}.{{ DOMAIN_NAME }}`)"
|
|
- "traefik.http.routers.repo-secure.tls=true"
|
|
- "traefik.http.routers.repo-secure.tls.options=default"
|
|
- "traefik.http.routers.repo-secure.service=repo-secure"
|
|
- "traefik.http.routers.repo-secure.tls.certresolver=mycert"
|
|
- "traefik.http.services.repo-secure.loadbalancer.server.port=8081"
|
|
- "traefik.http.routers.hubdocker.entrypoints=http"
|
|
- "traefik.http.routers.hubdocker.rule=Host(`{{HUB_SUB_DOMAIN}}.{{ DOMAIN_NAME }}`)"
|
|
- "traefik.http.routers.hubdocker.middlewares=https-redirect"
|
|
- "traefik.http.routers.hubdocker-secure.entrypoints=https"
|
|
- "traefik.http.routers.hubdocker.service=hubdocker-secure"
|
|
- "traefik.http.routers.hubdocker-secure.rule=Host(`{{HUB_SUB_DOMAIN}}.{{ DOMAIN_NAME }}`)"
|
|
- "traefik.http.routers.hubdocker-secure.tls=true"
|
|
- "traefik.http.routers.hubdocker-secure.tls.options=default"
|
|
- "traefik.http.routers.hubdocker-secure.service=hubdocker-secure"
|
|
- "traefik.http.routers.hubdocker-secure.tls.certresolver=mycert"
|
|
- "traefik.http.services.hubdocker-secure.loadbalancer.server.port=8090" |