# The delivery log lives under the persistent /data, not the ephemeral # /var/log, so the lines that resolve a "queued" send-log row outlive the # container (architecture.md ยง Log tailer). Path and ownership match # build/postfix-config.sh (maillog_file) and build/entrypoint.sh: postlogd # writes it as user postfix, the unprivileged panel reads it through the shared # selfpost group, hence create 0640 postfix selfpost rather than 0644 root root. # (logrotate 3.22.0, logrotate.8:402: "create mode owner group" makes the new log # right after the rotation; "delaycompress" leaves the previous log, .1, # uncompressed until the next cycle.) /data/log/mail.log { daily rotate 14 missingok notifempty compress delaycompress create 0640 postfix selfpost # A rotation due when the container starts runs before Postfix does # (logrotate-loop.sh runs at once, the wrapper waits for the milter # sockets): no postlogd holds the old file then, the one Postfix starts # opens the new, and a reload would only fail - "fatal: the Postfix mail # system is not running", seen at the test server's rollout of # 2026-10-16. "postfix status" exits 1 while no master runs (Postfix # 3.10.13, conf/postfix-script:297-307), reload then nothing. postrotate /usr/sbin/postfix status >/dev/null 2>&1 || exit 0 /usr/sbin/postfix reload endscript }