OmniDock GitHub

$ man omnidock/concepts

OmniDock Concepts

Understand the OmniDock architecture: Worker email handlers, D1 metadata, R2 raw mail and attachments, Email Sending, external IMAP/SMTP profiles, and logs.

Cloudflare primitives

OmniDock is intentionally Cloudflare-native. Workers handle HTTP APIs and inbound email. D1 stores operational metadata. R2 stores raw MIME, attachments, manual files, and preview/search assets. Worker secrets hold admin and provider credentials. Cron triggers continue long-running external sync jobs.

LayerUsed for
WorkerHTTP API routes, dashboard assets, inbound email() handler, scheduled jobs.
D1Messages, threads, contacts, signatures, sync jobs, logs, sessions, setup state.
R2Raw messages, attachments, manual files, previews, and bucket-managed objects.
Email RoutingInbound domain mail delivered to the Worker.
Email SendingOutbound mail from verified Cloudflare-managed addresses.

Inbound flow

  1. Cloudflare Email Routing sends a message to the Worker email() handler.
  2. The Worker parses the raw MIME body.
  3. Thread and message metadata are written to D1.
  4. Raw MIME and attachments are written to R2.
  5. The dashboard reads D1/R2 state and shows the new thread.

External accounts

Gmail, Outlook, Yahoo, iCloud, or custom IMAP/SMTP accounts are represented as metadata plus a secret reference. OmniDock does not ask for the credential value in the UI and does not write it to D1. The actual password, app password, or OAuth material belongs in Worker secrets.