Skip to content

Commit c10c200

Browse files
djooberleeCopilot
andauthored
qickfix for Debian12 and new version mailcow (#727)
* qickfix for Debian12 and new version mailcow * Update mailcow/pillar.example Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent 8c6f667 commit c10c200

2 files changed

Lines changed: 54 additions & 128 deletions

File tree

mailcow/init.sls

Lines changed: 51 additions & 128 deletions
Original file line numberDiff line numberDiff line change
@@ -199,58 +199,47 @@ mailcow_docker_compose_owerride:
199199
file.managed:
200200
- name: /opt/mailcow/{{ pillar["mailcow"]["mailcow_conf"]["MAILCOW_HOSTNAME"] }}/docker-compose.override.yml
201201
- contents: |
202-
{%- if 'docker_logging' in pillar['mailcow'] %}
202+
{%- if 'docker_logging' in pillar['mailcow'] or pillar['mailcow'].get('apparmor_unconfined', False) %}
203+
x-main-config: &main-config
204+
{%- if pillar['mailcow'].get('apparmor_unconfined', False) %}
205+
security_opt:
206+
- apparmor:unconfined
207+
{%- endif %}
208+
{%- if 'docker_logging' in pillar['mailcow'] %}
209+
logging:
210+
driver: "{{ pillar['mailcow']['docker_logging']['driver'] }}"
211+
options:
212+
{%- for var_key, var_val in pillar["mailcow"]["docker_logging"]["options"].items() %}
213+
{{ var_key }}: "{{ var_val }}"
214+
{%- endfor %}
215+
{%- endif %}
203216
services:
217+
netfilter-mailcow:
218+
<<: *main-config
204219
unbound-mailcow:
205-
logging:
206-
driver: "{{ pillar['mailcow']['docker_logging']['driver'] }}"
207-
options:
208-
{%- for var_key, var_val in pillar["mailcow"]["docker_logging"]["options"].items() %}
209-
{{ var_key }}: "{{ var_val }}"
210-
{%- endfor %}
220+
<<: *main-config
211221
mysql-mailcow:
212-
logging:
213-
driver: "{{ pillar['mailcow']['docker_logging']['driver'] }}"
214-
options:
215-
{%- for var_key, var_val in pillar["mailcow"]["docker_logging"]["options"].items() %}
216-
{{ var_key }}: "{{ var_val }}"
217-
{%- endfor %}
222+
<<: *main-config
223+
{%- if pillar['mailcow'].get('postfix_tlspol_in_override', False) %}
224+
postfix-tlspol-mailcow:
225+
<<: *main-config
226+
{%- endif %}
227+
postfix-mailcow:
228+
<<: *main-config
229+
{%- if "haproxy" in pillar["mailcow"] %}
230+
ports:
231+
{#- "${SMTP_PORT_HAPROXY:-127.0.0.1:10025}:10025"#}
232+
- "${SMTPS_PORT_HAPROXY:-127.0.0.1:10465}:10465"
233+
- "${SUBMISSION_PORT_HAPROXY:-127.0.0.1:10587}:10587"
234+
{%- endif %}
218235
redis-mailcow:
219-
logging:
220-
driver: "{{ pillar['mailcow']['docker_logging']['driver'] }}"
221-
options:
222-
{%- for var_key, var_val in pillar["mailcow"]["docker_logging"]["options"].items() %}
223-
{{ var_key }}: "{{ var_val }}"
224-
{%- endfor %}
225-
clamd-mailcow:
226-
logging:
227-
driver: "{{ pillar['mailcow']['docker_logging']['driver'] }}"
228-
options:
229-
{%- for var_key, var_val in pillar["mailcow"]["docker_logging"]["options"].items() %}
230-
{{ var_key }}: "{{ var_val }}"
231-
{%- endfor %}
232-
rspamd-mailcow:
233-
logging:
234-
driver: "{{ pillar['mailcow']['docker_logging']['driver'] }}"
235-
options:
236-
{%- for var_key, var_val in pillar["mailcow"]["docker_logging"]["options"].items() %}
237-
{{ var_key }}: "{{ var_val }}"
238-
{%- endfor %}
236+
<<: *main-config
239237
php-fpm-mailcow:
240-
logging:
241-
driver: "{{ pillar['mailcow']['docker_logging']['driver'] }}"
242-
options:
243-
{%- for var_key, var_val in pillar["mailcow"]["docker_logging"]["options"].items() %}
244-
{{ var_key }}: "{{ var_val }}"
245-
{%- endfor %}
246-
sogo-mailcow:
247-
logging:
248-
driver: "{{ pillar['mailcow']['docker_logging']['driver'] }}"
249-
options:
250-
{%- for var_key, var_val in pillar["mailcow"]["docker_logging"]["options"].items() %}
251-
{{ var_key }}: "{{ var_val }}"
252-
{%- endfor %}
238+
<<: *main-config
239+
clamd-mailcow:
240+
<<: *main-config
253241
dovecot-mailcow:
242+
<<: *main-config
254243
{%- if "haproxy" in pillar["mailcow"] %}
255244
ports:
256245
- "${IMAP_PORT_HAPROXY:-127.0.0.1:10143}:10143"
@@ -259,102 +248,35 @@ mailcow_docker_compose_owerride:
259248
- "${POPS_PORT_HAPROXY:-127.0.0.1:10995}:10995"
260249
- "${SIEVE_PORT_HAPROXY:-127.0.0.1:14190}:14190"
261250
{%- endif %}
262-
logging:
263-
driver: "{{ pillar['mailcow']['docker_logging']['driver'] }}"
264-
options:
265-
{%- for var_key, var_val in pillar["mailcow"]["docker_logging"]["options"].items() %}
266-
{{ var_key }}: "{{ var_val }}"
267-
{%- endfor %}
268-
postfix-mailcow:
269-
{%- if "haproxy" in pillar["mailcow"] %}
270-
ports:
271-
{#- "${SMTP_PORT_HAPROXY:-127.0.0.1:10025}:10025"#}
272-
- "${SMTPS_PORT_HAPROXY:-127.0.0.1:10465}:10465"
273-
- "${SUBMISSION_PORT_HAPROXY:-127.0.0.1:10587}:10587"
274-
{%- endif %}
275-
logging:
276-
driver: "{{ pillar['mailcow']['docker_logging']['driver'] }}"
277-
options:
278-
{%- for var_key, var_val in pillar["mailcow"]["docker_logging"]["options"].items() %}
279-
{{ var_key }}: "{{ var_val }}"
280-
{%- endfor %}
281-
memcached-mailcow:
282-
logging:
283-
driver: "{{ pillar['mailcow']['docker_logging']['driver'] }}"
284-
options:
285-
{%- for var_key, var_val in pillar["mailcow"]["docker_logging"]["options"].items() %}
286-
{{ var_key }}: "{{ var_val }}"
287-
{%- endfor %}
251+
rspamd-mailcow:
252+
<<: *main-config
253+
sogo-mailcow:
254+
<<: *main-config
288255
nginx-mailcow:
289-
logging:
290-
driver: "{{ pillar['mailcow']['docker_logging']['driver'] }}"
291-
options:
292-
{%- for var_key, var_val in pillar["mailcow"]["docker_logging"]["options"].items() %}
293-
{{ var_key }}: "{{ var_val }}"
294-
{%- endfor %}
256+
<<: *main-config
295257
acme-mailcow:
296-
logging:
297-
driver: "{{ pillar['mailcow']['docker_logging']['driver'] }}"
298-
options:
299-
{%- for var_key, var_val in pillar["mailcow"]["docker_logging"]["options"].items() %}
300-
{{ var_key }}: "{{ var_val }}"
301-
{%- endfor %}
302-
netfilter-mailcow:
303-
logging:
304-
driver: "{{ pillar['mailcow']['docker_logging']['driver'] }}"
305-
options:
306-
{%- for var_key, var_val in pillar["mailcow"]["docker_logging"]["options"].items() %}
307-
{{ var_key }}: "{{ var_val }}"
308-
{%- endfor %}
258+
<<: *main-config
309259
watchdog-mailcow:
310-
logging:
311-
driver: "{{ pillar['mailcow']['docker_logging']['driver'] }}"
312-
options:
313-
{%- for var_key, var_val in pillar["mailcow"]["docker_logging"]["options"].items() %}
314-
{{ var_key }}: "{{ var_val }}"
315-
{%- endfor %}
260+
<<: *main-config
261+
olefy-mailcow:
262+
<<: *main-config
316263
dockerapi-mailcow:
317-
logging:
318-
driver: "{{ pillar['mailcow']['docker_logging']['driver'] }}"
319-
options:
320-
{%- for var_key, var_val in pillar["mailcow"]["docker_logging"]["options"].items() %}
321-
{{ var_key }}: "{{ var_val }}"
322-
{%- endfor %}
264+
<<: *main-config
265+
memcached-mailcow:
266+
<<: *main-config
323267
{%- if pillar["mailcow"]["solr_enable"] | default(true) %}
324268
solr-mailcow:
325-
logging:
326-
driver: "{{ pillar['mailcow']['docker_logging']['driver'] }}"
327-
options:
328-
{%- for var_key, var_val in pillar["mailcow"]["docker_logging"]["options"].items() %}
329-
{{ var_key }}: "{{ var_val }}"
330-
{%- endfor %}
269+
<<: *main-config
331270
{%- endif %}
332-
olefy-mailcow:
333-
logging:
334-
driver: "{{ pillar['mailcow']['docker_logging']['driver'] }}"
335-
options:
336-
{%- for var_key, var_val in pillar["mailcow"]["docker_logging"]["options"].items() %}
337-
{{ var_key }}: "{{ var_val }}"
338-
{%- endfor %}
339271
ofelia-mailcow:
340-
logging:
341-
driver: "{{ pillar['mailcow']['docker_logging']['driver'] }}"
342-
options:
343-
{%- for var_key, var_val in pillar["mailcow"]["docker_logging"]["options"].items() %}
344-
{{ var_key }}: "{{ var_val }}"
345-
{%- endfor %}
272+
<<: *main-config
346273
ipv6nat-mailcow:
274+
<<: *main-config
347275
{%- if not pillar['mailcow']['enable_ipv6'] | default(true) %}
348276
image: bash:latest
349277
restart: "no"
350278
entrypoint: ["echo", "ipv6nat disabled in docker-compose.override.yml"]
351279
{%- endif %}
352-
logging:
353-
driver: "{{ pillar['mailcow']['docker_logging']['driver'] }}"
354-
options:
355-
{%- for var_key, var_val in pillar["mailcow"]["docker_logging"]["options"].items() %}
356-
{{ var_key }}: "{{ var_val }}"
357-
{%- endfor %}
358280
{%- elif "haproxy" in pillar["mailcow"] %}
359281
services:
360282
dovecot-mailcow:
@@ -676,3 +598,4 @@ nginx_reload_cron:
676598
- hour: 6
677599
{% endif %}
678600
{% endif %}
601+

mailcow/pillar.example

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ mailcow:
44
driver: "json-file"
55
options:
66
tag: "{% raw -%}{{.ImageName}}|{{.Name}}|tst{%- endraw %}"
7+
apparmor_unconfined: false # set to true only if you must add security_opt: apparmor:unconfined to all containers (e.g. as a Debian 12 workaround)
8+
postfix_tlspol_in_override: true # include postfix-tlspol-mailcow container in docker-compose.override.yml (newer mailcow versions)
79
acme_account: example.com # used only when SKIP_LETS_ENCRYPT=y
810
enable_ipv6: true # DO NOT CHANGE THIS PARAMETER IF YOU ARE NOT SURE, because if you once disable ipv6 using this parameter, it will not work to turn it back on by setting the value to true
911
solr_enable: false # This option is added for backward compatibility with older versions. In newer versions this option should be set to false
@@ -56,3 +58,4 @@ mailcow:
5658
header_checks: 'regexp:/opt/postfix/conf/header_checks'
5759
header_checks: |
5860
/^Subject:/ WARN
61+

0 commit comments

Comments
 (0)