fix(stalwart): wire recovery admin + point portal tile at admin UI

- docker-compose: add STALWART_RECOVERY_ADMIN env so the env-file password
  works as a permanent recovery login. Without this, Stalwart prints a
  one-time bootstrap password to the logs and discards it after first setup
- portal: mail tile now links to /admin/ (the real Stalwart admin SPA),
  not /login (which is the OAuth client authorization UI for IMAP/SMTP
  clients like Thunderbird — confusing and unrelated)

The persistent admin (admin@dezky.local) was created via Stalwart's setup
wizard at /admin/init and lives in the stalwart_data volume. Recovery admin
in env is the "I lost the wizard credentials" escape hatch.
This commit is contained in:
Ronni Baslund
2026-05-23 22:51:25 +02:00
parent e0808bf13e
commit 4bf6a85517
2 changed files with 5 additions and 1 deletions
+1 -1
View File
@@ -31,7 +31,7 @@ const { user, logout } = useOidcAuth()
<span class="tile-name">Files</span> <span class="tile-name">Files</span>
<span class="tile-meta">OCIS · S3-backed storage</span> <span class="tile-meta">OCIS · S3-backed storage</span>
</a> </a>
<a href="https://mail.dezky.local" target="_blank" class="tile"> <a href="https://mail.dezky.local/admin/" target="_blank" class="tile">
<span class="tile-name">Mail</span> <span class="tile-name">Mail</span>
<span class="tile-meta">Stalwart · JMAP/IMAP/SMTP</span> <span class="tile-meta">Stalwart · JMAP/IMAP/SMTP</span>
</a> </a>
@@ -203,6 +203,10 @@ services:
- "4190:4190" # ManageSieve - "4190:4190" # ManageSieve
environment: environment:
STALWART_FQDN: mail.dezky.local STALWART_FQDN: mail.dezky.local
# Pin the recovery admin so it survives restarts. Without this, Stalwart
# generates a one-time-shown password at first boot and discards it after
# initial setup.
STALWART_RECOVERY_ADMIN: admin:${STALWART_ADMIN_PASSWORD}
volumes: volumes:
- stalwart_data:/opt/stalwart - stalwart_data:/opt/stalwart
- ./configs/stalwart/config.toml:/opt/stalwart/etc/config.toml:ro - ./configs/stalwart/config.toml:/opt/stalwart/etc/config.toml:ro