Getting started / Self-hostingMenu

Self-hosting

Run Work Inbox on your own Cloudflare account, with every feature and no fee to us.

Updated · Markdown · Ask Claude · Ask ChatGPT

Work Inbox is open source. Self-hosted, it runs for one company on its own Cloudflare account: mail, attachments and notes stay there, and you pay Cloudflare for what you use. Every feature is on; there are no plans or billing.

What you need

  • A Cloudflare account on the Workers Paid plan (queues and password hashing need it).
  • Your mail domain on Cloudflare, or the ability to set its MX and TXT records.
  • Node 22.18 or newer and pnpm.

1. Get the code

git clone https://github.com/workinbox-io/inbox.git workinbox
cd workinbox
pnpm install

2. Create the Cloudflare resources

pnpm setup

Choose “create resources”: it creates the D1 database, the R2 bucket and the queues and writes their ids to wrangler.jsonc. Then, in wrangler.jsonc vars, set DEPLOY_MODE to "self": it turns billing off and every feature on (the repository ships with "cloud", the hosted workinbox.io).

3. Secrets and settings

wrangler secret put BETTER_AUTH_SECRET

In wrangler.jsonc vars, set PUBLIC_APP_URL to the address you’ll use (for example https://mail.yourcompany.com) and ADMIN_EMAILS to your own address. Optional: GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET for Google sign-in.

4. Sending mail

Onboard each mail domain in Cloudflare Email Service so Work Inbox can send from it, and set EMAIL_FROM_ADDRESS for the app’s own messages (sign-in links, password resets).

5. Deploy

pnpm deploy

It builds the app, applies the database migrations and deploys the Worker. Add your custom domain to the Worker in the Cloudflare dashboard.

6. Receiving mail

For each mail domain, turn on Email Routing and add a catch-all rule with the action Send to a Worker, pointing at your Work Inbox Worker. Then sign up in your Work Inbox, add the domain in Settings → Mail and click Check DNS. The Quickstart covers the rest.

Updating

Pull the latest code and run pnpm deploy again; migrations are applied as part of it.