-
Notifications
You must be signed in to change notification settings - Fork 0
/
compose.yaml
104 lines (102 loc) · 3.15 KB
/
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
volumes:
www-volume:
listmonk-data:
redis-volume:
x-db-credentials: &listmonk-db-credentials
POSTGRES_USER: &listmonk-db-user listmonk
POSTGRES_PASSWORD: &listmonk-db-password listmonk
POSTGRES_DB: &listmonk-db-name listmonk
services:
mail-handler:
build: .
hostname: mail-handler
volumes:
- www-volume:/usr/src/www
- "./ssg:/usr/src/ssg"
- "./wip:/usr/src/wip"
environment:
- WIP_BATCH_DIR=/usr/src/wip
- OUT_DIR=/usr/src/ssg/content/connections
- ZOLA_ROOT=/usr/src/ssg
- WWW_OUT_DIR=/usr/src/www/build
- ROCKET_ADDRESS=0.0.0.0
- ROCKET_PORT=8000
- LISTMONK_ADDR=http://listmonk:9000
env_file: "mail-handler.env"
depends_on:
- redis
oauth2-proxy:
image: quay.io/oauth2-proxy/oauth2-proxy:v7.7.1
ports: []
hostname: oauth2-proxy
container_name: oauth2-proxy
command: --config /oauth2-proxy.cfg
env_file: "oauth2-proxy.env"
volumes:
- "./oauth2-proxy.cfg:/oauth2-proxy.cfg"
- "./oauth2-proxy-templates:/oauth2-proxy-templates"
redis:
image: redis:alpine
restart: unless-stopped
hostname: redis
ports:
- "6379:6379"
command: redis-server /usr/local/etc/redis/redis.conf
volumes:
- redis-volume:/root/redis
- "./redis.conf:/usr/local/etc/redis/redis.conf"
nginx:
depends_on:
- oauth2-proxy
container_name: nginx
image: docker.io/library/nginx:latest
restart: unless-stopped
ports:
- "5111:80/tcp"
hostname: nginx
volumes:
- "./nginx.conf:/etc/nginx/conf.d/default.conf"
- www-volume:/var/www/html
listmonk:
image: listmonk/listmonk:latest
container_name: listmonk_app
restart: unless-stopped
ports:
- "9000:9000"
hostname: listmonk
depends_on:
- listmonk-db
command: [sh, -c, "./listmonk --install --idempotent --yes --config '' && ./listmonk --upgrade --yes --config '' && ./listmonk --config ''"]
environment:
LISTMONK_app__address: 0.0.0.0:9000
LISTMONK_db__user: *listmonk-db-user
LISTMONK_db__password: *listmonk-db-password
LISTMONK_db__database: *listmonk-db-name
LISTMONK_db__host: listmonk_db
LISTMONK_db__port: 5432
LISTMONK_db__ssl_mode: disable
LISTMONK_db__max_open: 25
LISTMONK_db__max_idle: 25
LISTMONK_db__max_lifetime: 300s
TZ: Etc/UTC
LISTMONK_ADMIN_USER: ${LISTMONK_ADMIN_USER:-} # If these (optional) are set during the first `docker compose up`, then the Super Admin user is automatically created.
LISTMONK_ADMIN_PASSWORD: ${LISTMONK_ADMIN_PASSWORD:-} # Otherwise, the user can be setup on the web app after the first visit to http://localhost:9000
volumes:
- ./uploads:/listmonk/uploads:rw
listmonk-db:
image: postgres:17-alpine
container_name: listmonk_db
restart: unless-stopped
ports:
- "5432:5432"
environment:
<<: *listmonk-db-credentials
healthcheck:
test: [ "CMD-SHELL", "pg_isready -U listmonk" ]
interval: 10s
timeout: 5s
retries: 6
volumes:
- type: volume
source: listmonk-data
target: /var/lib/postgresql/data