mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-07 19:32:17 +00:00
On echoserver the import appended 23,045 messages one by one over a single IMAP session, about six per second, and the deploy waited 62 minutes for it inside the Keycloak stage, because Stalwart is a dependency of Keycloak. galaxyserver holds 157,655 messages in one mailbox, which one session would need 7 to 28 hours for, beyond the task's six-hour timeout. migrate_from_mailu.py now opens several IMAP sessions per mailbox that take messages from one queue in file name order, with the dedup set and the counters under a lock, and logs [PROGRESS] every 1000 messages. A session Stalwart refuses only lowers the parallelism; with one session the import behaves exactly as before. The number of sessions is services.stalwart.migration.workers, or one fewer than the host's vCPUs, at least 1 and at most 8. The deploy starts the import as the transient unit stalwart-mailu-import and does not wait for it; a deploy that finds the unit running leaves it alone. The unit removes the staged recovery administrator credentials when it stops, and a failed start removes them in a justified rescue before it re-raises. Progress and the closing [DONE] rc=<n> are in journalctl -u stalwart-mailu-import. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>