eSlider
717348db6c
feat(dovecot): incubator owner eslider@gmail.com (G-10.3 #100 )
2026-09-02 19:22:21 +01:00
eSlider
d2724ec727
chore(dovecot): drop deleted wheregroup@produktor.io A1 pilot box from owner lists ( #252 )
2026-09-02 13:50:54 +01:00
eSlider
6cdd704aef
feat(dovecot): historical-account andriy.oblivantsev@wheregroup.com for wheregroup incubator ( #252 )
2026-09-02 13:42:58 +01:00
eSlider
a4ab96d025
feat(dovecot): incubator owner wheregroup@ + info@ delete access ( #251 )
2026-09-02 12:10:51 +01:00
eSlider
2bb6ed310e
feat(dovecot): shared mailboxes — info@ reads all accounts ( #79 )
...
Dovecot ACL + shared namespace (shared/%%u/), acl_shared_dict in mail-state,
idempotent user-patches.sh grants info@ read-only (lookup read) on every
mailbox of ano@, andriy.oblivantsev@, postmaster@ and pre-subscribes the
shared folders so Roundcube's subscribed folder list shows them. Delivery and
passwords untouched; other accounts see no shared folders.
2026-09-01 16:02:52 +01:00
eSlider
05540c2a8d
fix(fail2ban): ignoreip real docker subnet /20 ( #113 )
2026-08-25 19:58:57 +01:00
eSlider
7d874c5117
TLS: letsencrypt DNS-01 via Dynadot hook; fail2ban ignoreip guard ( #114 )
...
- scripts/dynadot-dns.sh: DNS-01 hook (snapshot -> append TXT -> restore);
set_dns2 wants lowercase record types, ResponseCode checks on deploy/clean
- compose: SSL_TYPE=letsencrypt, mount tls/letsencrypt/<domain> ->
/etc/letsencrypt/live/<domain>; drop-in jail.d/ignoreip.local so the
postfix jail can't ban the docker bridge gateway (host self-DoS)
- cert issued for mail.produktor.io (Let's Encrypt, ECDSA); renewal via
acme.sh cron + reloadcmd (postfix/dovecot reload)
2026-08-22 22:46:24 +01:00