From 9621184bd85270d733ac56fb65ef8e9632aa46d5 Mon Sep 17 00:00:00 2001 From: CroneKorkN Date: Sun, 10 Aug 2025 11:09:37 +0200 Subject: [PATCH 1/4] htz.mails debian 13 --- bundles/dovecot/files/dovecot-sql.conf | 17 --- bundles/dovecot/files/dovecot.conf | 180 +++++++++++++++++-------- bundles/dovecot/items.py | 31 ++--- bundles/dovecot/metadata.py | 2 +- bundles/redis/items.py | 1 + bundles/roundcube/files/config.inc.php | 12 +- bundles/roundcube/items.py | 1 + bundles/systemd-swap/metadata.py | 2 +- nodes/htz.mails.py | 10 +- 9 files changed, 153 insertions(+), 103 deletions(-) delete mode 100644 bundles/dovecot/files/dovecot-sql.conf diff --git a/bundles/dovecot/files/dovecot-sql.conf b/bundles/dovecot/files/dovecot-sql.conf deleted file mode 100644 index 8f26825..0000000 --- a/bundles/dovecot/files/dovecot-sql.conf +++ /dev/null @@ -1,17 +0,0 @@ -connect = host=${host} dbname=${name} user=${user} password=${password} -driver = pgsql -default_pass_scheme = ARGON2ID - -user_query = SELECT '/var/vmail/%u' AS home, 'vmail' AS uid, 'vmail' AS gid - -iterate_query = SELECT CONCAT(users.name, '@', domains.name) AS user \ - FROM users \ - LEFT JOIN domains ON users.domain_id = domains.id \ - WHERE redirect IS NULL - -password_query = SELECT CONCAT(users.name, '@', domains.name) AS user, password \ - FROM users \ - LEFT JOIN domains ON users.domain_id = domains.id \ - WHERE redirect IS NULL \ - AND users.name = SPLIT_PART('%u', '@', 1) \ - AND domains.name = SPLIT_PART('%u', '@', 2) diff --git a/bundles/dovecot/files/dovecot.conf b/bundles/dovecot/files/dovecot.conf index 2051535..bfcfb74 100644 --- a/bundles/dovecot/files/dovecot.conf +++ b/bundles/dovecot/files/dovecot.conf @@ -1,13 +1,17 @@ +dovecot_config_version = ${config_version} +dovecot_storage_version = ${storage_version} + protocols = imap lmtp sieve auth_mechanisms = plain login -mail_privileged_group = mail ssl = required -ssl_cert = array( - 'verify_peer' => false, - 'verify_peer_name' => false, - ), -); diff --git a/bundles/roundcube/items.py b/bundles/roundcube/items.py index cbe8487..8a8e1cc 100644 --- a/bundles/roundcube/items.py +++ b/bundles/roundcube/items.py @@ -61,6 +61,7 @@ files['/opt/roundcube/config/config.inc.php'] = { 'des_key': node.metadata.get('roundcube/des_key'), 'database': node.metadata.get('roundcube/database'), 'plugins': node.metadata.get('roundcube/plugins'), + 'imap_host': node.metadata.get('mailserver/hostname'), }, 'needs': [ 'action:chown_roundcube', diff --git a/bundles/systemd-swap/metadata.py b/bundles/systemd-swap/metadata.py index 0a2b735..286fdde 100644 --- a/bundles/systemd-swap/metadata.py +++ b/bundles/systemd-swap/metadata.py @@ -1,5 +1,5 @@ defaults = { - 'systemd-swap': 2*10**9, + 'systemd-swap': 2*(2**30), # 2GiB 'systemd': { 'units': { 'swapfile.swap': { diff --git a/nodes/htz.mails.py b/nodes/htz.mails.py index a00a874..cbbda44 100644 --- a/nodes/htz.mails.py +++ b/nodes/htz.mails.py @@ -2,7 +2,7 @@ 'hostname': '49.12.184.229', 'groups': [ 'backup', - 'debian-12', + 'debian-13', 'hetzner-cloud', 'mailserver', 'monitored', @@ -18,6 +18,7 @@ #'nginx-rtmps', 'wireguard', 'zfs', + 'systemd-swap', ], 'metadata': { 'id': 'ea29bdf0-0b47-4bf4-8346-67d60c9dc4ae', @@ -34,6 +35,7 @@ 'gateway6': 'fe80::1', } }, + 'systemd-swap': 4*2**30, # clamav alleine braucht 1,3G 'bind': { 'hostname': 'resolver.name', 'acme_zone': 'acme.sublimity.de', @@ -108,6 +110,10 @@ 'elimu-kwanza.de', }, }, + 'dovecot': { + 'config_version': '2.4.1', + 'storage_version': '2.4.1', + }, 'rspamd': { 'hostname': 'rspamd.sublimity.de', }, @@ -162,7 +168,7 @@ }, 'roundcube': { 'product_name': 'Sublimity Mail', - 'version': '1.6.7', + 'version': '1.6.11', 'installer': False, }, 'vm': { From 9b3f856eb0c554bc6adec140ec160868fa669de7 Mon Sep 17 00:00:00 2001 From: CroneKorkN Date: Sun, 10 Aug 2025 15:33:21 +0200 Subject: [PATCH 2/4] mailserver zfs params --- bundles/mailserver/metadata.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bundles/mailserver/metadata.py b/bundles/mailserver/metadata.py index e32c492..af643d1 100644 --- a/bundles/mailserver/metadata.py +++ b/bundles/mailserver/metadata.py @@ -32,10 +32,13 @@ defaults = { 'tank/vmail': { 'mountpoint': '/var/vmail', 'compression': 'on', + 'atime': 'off', }, 'tank/vmail/index': { 'mountpoint': '/var/vmail/index', 'compression': 'on', + 'atime': 'off', + 'recordsize': '4K', 'com.sun:auto-snapshot': 'false', 'backup': False, }, From 9161a2501cb4dae07803f0e2d44ca25b06f86178 Mon Sep 17 00:00:00 2001 From: CroneKorkN Date: Sun, 10 Aug 2025 15:34:41 +0200 Subject: [PATCH 3/4] vmail set recordsize --- bundles/mailserver/metadata.py | 1 + 1 file changed, 1 insertion(+) diff --git a/bundles/mailserver/metadata.py b/bundles/mailserver/metadata.py index af643d1..950e7dc 100644 --- a/bundles/mailserver/metadata.py +++ b/bundles/mailserver/metadata.py @@ -33,6 +33,7 @@ defaults = { 'mountpoint': '/var/vmail', 'compression': 'on', 'atime': 'off', + 'recordsize': '16K', }, 'tank/vmail/index': { 'mountpoint': '/var/vmail/index', From 725d5292b2fd562ef312e9af0f622b53c6cac979 Mon Sep 17 00:00:00 2001 From: CroneKorkN Date: Sun, 10 Aug 2025 15:39:45 +0200 Subject: [PATCH 4/4] must set number to not screw bw comparison --- bundles/mailserver/metadata.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bundles/mailserver/metadata.py b/bundles/mailserver/metadata.py index 950e7dc..bc82537 100644 --- a/bundles/mailserver/metadata.py +++ b/bundles/mailserver/metadata.py @@ -33,13 +33,13 @@ defaults = { 'mountpoint': '/var/vmail', 'compression': 'on', 'atime': 'off', - 'recordsize': '16K', + 'recordsize': '16384', }, 'tank/vmail/index': { 'mountpoint': '/var/vmail/index', 'compression': 'on', 'atime': 'off', - 'recordsize': '4K', + 'recordsize': '4096', 'com.sun:auto-snapshot': 'false', 'backup': False, },