-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose.yaml
More file actions
125 lines (118 loc) · 5.26 KB
/
docker-compose.yaml
File metadata and controls
125 lines (118 loc) · 5.26 KB
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
include:
- compose/actualbudget/actualbudget.yaml
# - compose/duckdns.yaml
- compose/freshrss/freshrss.yaml
- compose/invoiceninja/invoiceninja.yaml
- compose/hoarder/hoarder.yaml
- compose/homepage/homepage.yaml
- compose/manyfold/manyfold.yaml
- compose/mealie/mealie.yaml
- compose/n8n/n8n.yaml
- compose/newt.yaml
- compose/pinchflat/pinchflat.yaml
- compose/redlib/redlib.yaml
- compose/sablier/sablier.yaml
- compose/searxng/searxng.yaml
- compose/silverbullet/silverbullet.yaml
- compose/syncthing/syncthing.yaml
- compose/ttrss/ttrss.yaml
- compose/vikunja/vikunja.yaml
- compose/watchtower.yaml
services:
traefik:
image: traefik:v3.5
container_name: traefik
env_file: .env
command:
- --log.level=INFO
- --api=true
- --api.dashboard=true
- --providers.docker
- --providers.docker.exposedbydefault=false
- --providers.docker.network=${NETWORK_NAME}
- --providers.file.directory=/etc/traefik/dynamic
- --providers.file.watch=true
- --entryPoints.webSecure.address=:443
- --entryPoints.actualbudget.address=:${PORT_ACTUALBUDGET}
- --entryPoints.freshrss.address=:${PORT_FRESHRSS}
- --entryPoints.hoarder.address=:${PORT_HOARDER}
- --entryPoints.homepage.address=:${PORT_HOMEPAGE}
- --entryPoints.invoiceninja.address=:${PORT_INVOICENINJA}
- --entryPoints.manyfold.address=:${PORT_MANYFOLD}
- --entryPoints.mealie.address=:${PORT_MEALIE}
- --entryPoints.n8n.address=:${PORT_N8N}
- --entryPoints.redlib.address=:${PORT_REDLIB}
- --entryPoints.searxng.address=:${PORT_SEARXNG}
- --entryPoints.silverbullet.address=:${PORT_SILVERBULLET}
- --entryPoints.syncthing.address=:${PORT_SYNCTHING}
- --entryPoints.traefik.address=:${PORT_DASHBOARD}
- --entryPoints.ttrss.address=:${PORT_TTRSS}
- --entryPoints.ttrss.forwardedHeaders.insecure
- --entryPoints.vikunja.address=:${PORT_VIKUNJA}
- --entryPoints.pinchflat.address=:${PORT_PINCHFLAT}
- --experimental.plugins.sablier.modulename=github.com/sablierapp/sablier
- --experimental.plugins.sablier.version=v1.10.1
- --certificatesResolvers.letsencrypt.acme.email=${ACME_EMAIL}
- --certificatesResolvers.letsencrypt.acme.storage=/letsencrypt/acme.json
- --certificatesResolvers.letsencrypt.acme.dnsChallenge.provider=porkbun
- --certificatesResolvers.letsencrypt.acme.dnsChallenge.resolvers=1.1.1.1:53,8.8.8.8:53
ports:
# The Web UI
- "${PORT_DASHBOARD}:${PORT_DASHBOARD}"
# For certificates renewal
- "443:443"
- "${PORT_ACTUALBUDGET}:${PORT_ACTUALBUDGET}"
- "${PORT_FRESHRSS}:${PORT_FRESHRSS}"
- "${PORT_HOARDER}:${PORT_HOARDER}"
- "${PORT_HOMEPAGE}:${PORT_HOMEPAGE}"
- "${PORT_INVOICENINJA}:${PORT_INVOICENINJA}"
- "${PORT_MANYFOLD}:${PORT_MANYFOLD}"
- "${PORT_MEALIE}:${PORT_MEALIE}"
- "${PORT_N8N}:${PORT_N8N}"
- "${PORT_REDLIB}:${PORT_REDLIB}"
- "${PORT_SEARXNG}:${PORT_SEARXNG}"
- "${PORT_SILVERBULLET}:${PORT_SILVERBULLET}"
- "${PORT_SYNCTHING}:${PORT_SYNCTHING}"
- "${PORT_TTRSS}:${PORT_TTRSS}"
- "${PORT_VIKUNJA}:${PORT_VIKUNJA}"
- "${PORT_PINCHFLAT}:${PORT_PINCHFLAT}"
volumes:
# So that Traefik can listen to the Docker events
- /var/run/docker.sock:/var/run/docker.sock
- ./compose/actualbudget/dynamic.yaml:/etc/traefik/dynamic/actualbudget.yaml
- ./compose/freshrss/dynamic.yaml:/etc/traefik/dynamic/freshrss.yaml
- ./compose/hoarder/dynamic.yaml:/etc/traefik/dynamic/hoarder.yaml
- ./compose/homepage/dynamic.yaml:/etc/traefik/dynamic/homepage.yaml
- ./compose/invoiceninja/dynamic.yaml:/etc/traefik/dynamic/invoiceninja.yaml
- ./compose/manyfold/dynamic.yaml:/etc/traefik/dynamic/manyfold.yaml
- ./compose/mealie/dynamic.yaml:/etc/traefik/dynamic/mealie.yaml
- ./compose/n8n/dynamic.yaml:/etc/traefik/dynamic/n8n.yaml
- ./compose/pinchflat/dynamic.yaml:/etc/traefik/dynamic/pinchflat.yaml
- ./compose/redlib/dynamic.yaml:/etc/traefik/dynamic/redlib.yaml
- ./compose/sablier/dynamic.yaml:/etc/traefik/dynamic/sablier.yaml
- ./compose/searxng/dynamic.yaml:/etc/traefik/dynamic/searxng.yaml
- ./compose/silverbullet/dynamic.yaml:/etc/traefik/dynamic/silverbullet.yaml
- ./compose/syncthing/dynamic.yaml:/etc/traefik/dynamic/syncthing.yaml
- ./compose/ttrss/dynamic.yaml:/etc/traefik/dynamic/ttrss.yaml
- ./compose/vikunja/dynamic.yaml:/etc/traefik/dynamic/vikunja.yaml
- ~/volumes/letsencrypt:/letsencrypt
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}"
- homepage.group=Admin
- homepage.name=Traefik Dashboard
- homepage.icon=traefik.svg
- homepage.href=http://${IP_ADDRESS}:${PORT_DASHBOARD}
- homepage.description=Traefik admin dashboard.
networks:
- frontend
restart: unless-stopped
networks:
frontend:
driver: bridge
backend:
driver: bridge