1
1
services :
2
+ traefik :
3
+ image : traefik:v3.1
4
+ command :
5
+ - " --providers.docker"
6
+ - " --providers.docker.exposedbydefault=false"
7
+ - " --entryPoints.websecure.address=:443"
8
+ - " --certificatesresolvers.myresolver.acme.tlschallenge=true"
9
+ - " --certificatesresolvers.myresolver.acme.email=elliott@zenful.site"
10
+ - " --certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
11
+ - " --entrypoints.web.address=:80"
12
+ - " --entrypoints.web.http.redirections.entrypoint.to=websecure"
13
+ - " --entrypoints.web.http.redirections.entrypoint.scheme=https"
14
+ ports :
15
+ - mode : host
16
+ protocol : tcp
17
+ published : 80
18
+ target : 80
19
+ - mode : host
20
+ protocol : tcp
21
+ published : 443
22
+ target : 443
23
+ volumes :
24
+ - letsencrypt:/letsencrypt
25
+ - /var/run/docker.sock:/var/run/docker.sock
2
26
3
27
web :
4
- image : ghcr.io/dreamsofcode-io/zenstats:cc5d97c1d8abc3c63862ca699156cca8ab062c29
28
+ image : ghcr.io/dreamsofcode-io/zenstats:baaf221054f44ec2b6d85f60e94b70a0619665be
29
+ labels :
30
+ - " traefik.enable=true"
31
+ - " traefik.http.services.web.loadbalancer.server.port=8080"
32
+ - " traefik.http.routers.web.rule=Host(`zenful.site`)"
33
+ - " traefik.http.routers.web.entrypoints=websecure"
34
+ - " traefik.http.routers.web.tls.certresolver=myresolver"
35
+ secrets :
36
+ - db-password
5
37
environment :
6
38
- POSTGRES_HOST=db
7
- - POSTGRES_PASSWORD=mysecretpassword
39
+ - POSTGRES_PASSWORD_FILE=/run/secrets/db-password
8
40
- POSTGRES_USER=postgres
9
41
- POSTGRES_DB=app
10
42
- POSTGRES_PORT=5432
11
43
- POSTGRES_SSLMODE=disable
12
- ports :
13
- - mode : " host"
14
- protocol : " tcp"
15
- published : 80
16
- target : 8080
44
+ deploy :
45
+ update_config :
46
+ order : start-first
17
47
depends_on :
18
48
- db
19
49
@@ -22,9 +52,11 @@ services:
22
52
user : postgres
23
53
volumes :
24
54
- db-data:/var/lib/postgresql/data
55
+ secrets :
56
+ - db-password
25
57
environment :
26
58
- POSTGRES_DB=app
27
- - POSTGRES_PASSWORD=mysecretpassword
59
+ - POSTGRES_PASSWORD_FILE=/run/secrets/db-password
28
60
healthcheck :
29
61
test : [ "CMD", "pg_isready" ]
30
62
interval : 10s
@@ -34,3 +66,7 @@ services:
34
66
volumes :
35
67
db-data :
36
68
letsencrypt :
69
+
70
+ secrets :
71
+ db-password :
72
+ external : true
0 commit comments