1
1
services :
2
+ roundcube :
3
+ image : ghcr.io/foodcoopsat/roundcube
4
+ environment :
5
+ ROUNDCUBEMAIL_DB_TYPE : sqlite
6
+ ROUNDCUBEMAIL_DB_USER : roundcube
7
+ ROUNDCUBEMAIL_DB_HOST : mariadb
8
+ ROUNDCUBEMAIL_DB_SQLITE_PATH : /sqlite.db
9
+ ROUNDCUBEMAIL_DB_NAME : roundcube
10
+ ROUNDCUBEMAIL_DEFAULT_HOST : ssl://mail.local.at
11
+ ROUNDCUBEMAIL_DEFAULT_PORT : 993
12
+ ROUNDCUBEMAIL_SMTP_SERVER : ssl://mail.local.at
13
+ ROUNDCUBEMAIL_SMTP_PORT : 465
14
+ ROUNDCUBEMAIL_PLUGINS : archive,markasjunk,managesieve,nonce_login,zipdownload
15
+ healthcheck :
16
+ test : curl -f http://localhost/
17
+ start_interval : 10s
18
+ labels :
19
+ traefik.enable : " true"
20
+ traefik.http.middlewares.mail-admin.redirectregex.regex : ^https?://mail.local.at/admin(.*)
21
+ traefik.http.middlewares.mail-admin.redirectregex.replacement : https://app.local.at/discourse-virtmail/addresses
22
+ traefik.http.middlewares.roundcube-oauth.redirectregex.regex : ^https?://mail.local.at/index.php/login/oauth\?(.*)$$
23
+ traefik.http.middlewares.roundcube-oauth.redirectregex.replacement : https://mail.local.at/?_task=login&_action=oauth&$${1}
24
+ traefik.http.services.roundcube.loadbalancer.server.port : 80
25
+ traefik.http.routers.roundcube.entrypoints : https
26
+ traefik.http.routers.roundcube.middlewares : mail-admin,roundcube-oauth
27
+ traefik.http.routers.roundcube.rule : Host(`mail.local.at`)
28
+ traefik.http.routers.roundcube.tls : " true"
29
+ traefik.http.routers.roundcube.tls.domains[0].main : mail.local.at
30
+ volumes :
31
+ - " ./dev_config/roundcube.php/:/usr/src/roundcubemail/config/config.inc.php:ro"
32
+ - " ./dev_config/roundcube_secret:/run/secrets/roundcube_db_password"
33
+ - " ./dev_config/roundcube_secret:/run/secrets/roundcube_des_key"
34
+ - " ./dev_config/roundcube_secret:/run/secrets/roundcube_oauth_client_secret"
2
35
mkcert :
3
36
image : vishnunair/docker-mkcert
4
37
environment :
@@ -42,6 +75,7 @@ services:
42
75
build :
43
76
context : .
44
77
environment :
78
+ - RAILS_ENV=production
45
79
- DISCOURSE_HOSTNAME=forum.test.net
46
80
- DISCOURSE_DB_HOST=postgres
47
81
- DISCOURSE_REDIS_HOST=redis
@@ -55,6 +89,8 @@ services:
55
89
- ./dev_data/discourse_uploads:/home/discourse/discourse/public/uploads
56
90
- ./dev_config/discourse-multisite.yml:/home/discourse/discourse/config/multisite.yml
57
91
- ./dev_config/discourse.d/production.rb:/home/discourse/discourse/config/environments/production.rb
92
+ - ./dev_config/discourse.d/development.rb:/home/discourse/discourse/config/environments/development.rb
93
+ - ./plugins/discourse-virtmail:/home/discourse/discourse/plugins/discourse-virtmail/
58
94
depends_on :
59
95
- redis
60
96
- postgres
@@ -68,9 +104,15 @@ services:
68
104
traefik.http.routers.discourse.tls : " true"
69
105
# traefik.http.routers.discourse.tls.certresolver: myresolver
70
106
traefik.http.services.discourse.loadbalancer.server.port : 3000
107
+ # traefik.http.services.discourse.loadbalancer.server.port: 4200
71
108
command : bundle exec rails server --binding '0.0.0.0'
109
+ # manually run docker compose exec -it discourse bin/rails server --port 3000
110
+ # also disable traefik on the nginx service
111
+ # command: node /usr/bin/pnpm --dir=app/assets/javascripts/discourse ember server --proxy http://localhost:3000 --host 0.0.0.0 --port 4200
72
112
healthcheck :
73
113
test : ' curl -f -H '' Host: forum.test.net'' http://localhost:3000/'
114
+ start_period : 10s
115
+ start_interval : 1s
74
116
discourse_nginx :
75
117
<< : *discourse
76
118
command : nginx
0 commit comments