-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdocker-compose.yaml
89 lines (86 loc) · 3.43 KB
/
docker-compose.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
version: "3"
include:
- compose/changedetection.yaml
- compose/duckdns.yaml
- compose/freshrss.yaml
- compose/hoarder/hoarder.yaml
- compose/mealie.yaml
- compose/reactive-resume/reactive-resume.yaml
- compose/redlib/redlib.yaml
# - compose/ryot.yaml
- compose/ttrss.yaml
- compose/vikunja/vikunja.yaml
- compose/watchtower.yaml
services:
traefik:
image: traefik:v2.0
container_name: traefik
command:
# - --log.level=DEBUG
- --api=true
- --api.dashboard=true
- --providers.docker
- --providers.file.filename=/config/dynamic.yml
- --entryPoints.webSecure.address=:443
- --entryPoints.ttrss.address=:${PORT_TTRSS}
- --entryPoints.freshrss.address=:${PORT_FRESHRSS}
- --entryPoints.ryot.address=:${PORT_RYOT}
- --entryPoints.hoarder.address=:${PORT_HOARDER}
- --entryPoints.mealie.address=:${PORT_MEALIE}
- --entryPoints.changedetection.address=:${PORT_CHANGEDETECTION}
- --entryPoints.redlib.address=:${PORT_REDLIB}
- --entryPoints.rx-resume.address=:${PORT_RX_RES}
- --entryPoints.rx-res-chrome.address=:${PORT_RX_RES_CHROME}
- --entryPoints.rx-res-minio.address=:${PORT_RX_RES_MINIO}
- --entryPoints.traefik.address=:${PORT_DASHBOARD}
- --entryPoints.vikunja.address=:${PORT_VIKUNJA}
- --entryPoints.homeassistant.address=:${PORT_HOMEASSISTANT}
- --providers.docker.exposedbydefault=false
- --providers.docker.network=${NETWORK_NAME}
- --certificatesResolvers.le.acme.email=kwbmm@${URL}
- --certificatesResolvers.le.acme.tlsChallenge=true
- --certificatesResolvers.le.acme.dnsChallenge=true
- --certificatesResolvers.le.acme.dnsChallenge.provider=duckdns
# Staging server, test purposes only
# - --certificatesResolvers.le.acme.caServer=https://acme-staging-v02.api.letsencrypt.org/directory
- --certificatesResolvers.le.acme.caServer=https://acme-v02.api.letsencrypt.org/directory
- --certificatesResolvers.le.acme.storage=/letsencrypt/acme.json
environment:
- DUCKDNS_TOKEN=${DDNS_TOKEN}
ports:
# The Web UI
- "${PORT_DASHBOARD}:${PORT_DASHBOARD}"
# For certificates renewal
- "443:443"
- "${PORT_TTRSS}:${PORT_TTRSS}"
- "${PORT_FRESHRSS}:${PORT_FRESHRSS}"
- "${PORT_RYOT}:${PORT_RYOT}"
- "${PORT_CHANGEDETECTION}:${PORT_CHANGEDETECTION}"
- "${PORT_MEALIE}:${PORT_MEALIE}"
- "${PORT_REDLIB}:${PORT_REDLIB}"
- "${PORT_RX_RES}:${PORT_RX_RES}"
- "${PORT_RX_RES_MINIO}:${PORT_RX_RES_MINIO}"
- "${PORT_RX_RES_CHROME}:${PORT_RX_RES_CHROME}"
- "${PORT_VIKUNJA}:${PORT_VIKUNJA}"
- "${PORT_HOMEASSISTANT}:${PORT_HOMEASSISTANT}"
- "${PORT_HOARDER}:${PORT_HOARDER}"
volumes:
# So that Traefik can listen to the Docker events
- /var/run/docker.sock:/var/run/docker.sock
- ~/volumes/traefik-letsencrypt:/letsencrypt
- ~/volumes/traefik/dynamic.yml:/config/dynamic.yml
labels:
- "traefik.enable=true"
- "traefik.http.routers.api.rule=Host(`${IP_ADDRESS}`)"
- "traefik.http.routers.api.service=api@internal"
- "traefik.http.routers.api.entrypoints=traefik"
- "traefik.http.routers.api.middlewares=traefik-auth"
- "traefik.http.middlewares.traefik-auth.basicauth.users=${BASIC_AUTH_USR}:${BASIC_AUTH_PSW}"
networks:
- frontend
restart: unless-stopped
networks:
frontend:
driver: bridge
backend:
driver: bridge