Mailbox
IMAP/SMTP only. Full inbox UI, attachments, aliases, in-app calendar, tasks, Assigned.
Connect IMAP
Workspace settings → Inbox. Pick a provider with IMAP (or Custom IMAP) and save credentials. They are encrypted with `AUTH_SECRET`.
No Gmail OAuth
Cloud can connect Gmail over OAuth. Self-Host is IMAP/SMTP only — including Gmail via app password if the host allows it.
Idle worker
Self-Host works with IMAP IDLE. Set `IMAP_IDLE_ENABLED=true` and reuse the dashboard `DATABASE_URL` and `AUTH_SECRET`.
Local
pnpm --filter @humaner/dashboard imap:idle
# production
pnpm --filter @humaner/dashboard imap:idle:prodDocker Compose already runs the `imap-idle` service. On Railway, add a **second service** from the same repo: root `/`, config file `/apps/dashboard/railway.imap-idle.toml`, replicas **1**, env `IMAP_IDLE_ENABLED=true` plus the same database URL and `AUTH_SECRET` as the web service.
Workspace
- Inbox UI — threads, aliases, attachments.
- Calendar & tasks — in-app only. No Google / Outlook / Calendly connect.
- Assigned — assignee fields stay. There is no Team dock, members, or invites.
- Resources — files and URLs for your agent. No Hybrid RAG indexing.
- Extra workspaces — create them from the switcher. Identity + Inbox settings live there.