65 lines
1.9 KiB
YAML
65 lines
1.9 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
|
|
#traefik (80, 443, 8080)
|
|
traefik:
|
|
image: 'traefik:latest'
|
|
container_name: traefik
|
|
volumes:
|
|
- ./letsencrypt:/letsencrypt
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- ./dynamic.yaml:/dynamic.yaml
|
|
networks:
|
|
## Traefik is sat on every network to allow exposure ##
|
|
- traefik
|
|
- frontend
|
|
- development
|
|
- backend
|
|
- bitwarden
|
|
- services
|
|
ports:
|
|
## These ports are in format <host-port>:<container-port> ##
|
|
- '80:80' # Public HTTP Port
|
|
- '443:443' # Public HTTPS Port
|
|
- '8080:8080' # Dashboard Port
|
|
command:
|
|
## General Settings ##
|
|
- --api.insecure=true
|
|
- --api.dashboard=true
|
|
- --api.debug=true
|
|
## Log Settings ##
|
|
- --log.level=DEBUG # <== Setting the level of the logs from traefik
|
|
## Provider Settings ##
|
|
- --providers.docker=true
|
|
- --providers.docker.exposedbydefault=false
|
|
- --providers.file.filename=/dynamic.yaml
|
|
## Entrypoints Settings ##
|
|
- --entrypoints.http.address=:80
|
|
- --entrypoints.https.address=:443
|
|
## Certificate Settings ##
|
|
- --certificatesresolvers.mytlschallenge.acme.tlschallenge=true
|
|
- --certificatesresolvers.mytlschallenge.acme.email=contact@luke-else.co.uk
|
|
- --certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json
|
|
labels:
|
|
## Exposing API Dashboard Service ##
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.api.rule=Host(traefik.luke-else.co.uk)"
|
|
- "traefik.http.routers.api.service=api@internal"
|
|
restart: unless-stopped
|
|
|
|
|
|
## All Networks for child containers - All containers depend on this container being spun up ##
|
|
networks:
|
|
traefik:
|
|
name: traefik
|
|
frontend:
|
|
name: frontend
|
|
development:
|
|
name: development
|
|
backend:
|
|
name: backend
|
|
bitwarden:
|
|
name: bitwarden
|
|
services:
|
|
name: services |