Auth Inbox is an open-source, self-hosted email verification code platform built on Cloudflare's free serverless services. It automatically processes incoming emails, filters out promotional mail before hitting the AI, extracts verification codes or links, and stores them in a database. A modern React dashboard lets administrators review extracted codes, inspect raw emails, and render HTML email previews โ all protected by Basic Auth.
Don't want ads and spam in your main inbox? Need a bunch of alternative addresses for signups? Try this secure, serverless, lightweight service!
flowchart LR
A([Your Inboxes]) --> B[Email Worker]
B --> C{Promotional?}
C -->|Yes| D[Discard]
C -->|No| E[AI Extraction]
E --> F[(D1 Database)]
F --> G[React Dashboard]
F --> H([Bark iOS Push])
- Promotional Filter: Detects and skips bulk/marketing emails via headers (
List-Unsubscribe,Precedence: bulk, etc.) before calling the AI โ saves tokens. - AI Code Extraction: Uses Google Gemini (with OpenAI as fallback) to extract verification codes, links, and organization names.
- Modern Dashboard: React 18 + shadcn/ui interface with mail list, detail panel, and three tabs โ Extracted, Raw Email, Rendered HTML preview.
- Safe HTML Preview: Email HTML is sanitized with DOMPurify and rendered in a sandboxed iframe.
- One-click Copy: Verification codes and links have copy buttons with toast confirmation.
- Real-Time Notifications: Optionally sends Bark push notifications when new codes arrive.
- Database: Stores all raw emails and AI-extracted results in Cloudflare D1.
- Cloudflare Workers โ Serverless runtime for email handling and API.
- Cloudflare D1 โ SQLite-compatible serverless database.
- Cloudflare Email Routing โ Routes incoming emails to the Worker.
- React 18 + Vite + Tailwind CSS + shadcn/ui โ Frontend dashboard.
- Any OpenAI-compatible / Anthropic AI provider โ Configurable via env vars; Gemini, OpenAI, DeepSeek, Groq, Anthropic, and more.
- Bark API โ Optional iOS push notifications.
- TypeScript โ End-to-end type safety.
- A Google AI Studio API key
- A domain bound to your Cloudflare account
- Cloudflare Account ID and API Token from here
- (Optional) Bark App for iOS push notifications
-
Create D1 Database
Go to Cloudflare Dashboard โ
Workers & PagesโD1 SQL DatabaseโCreate. Name itinbox-d1.Open the database โ
Console, paste and run the contents ofdb/schema.sql.Copy the
database_idfor the next step. -
Fork & Deploy
In your forked repository, go to
SettingsโSecrets and variablesโActionsand add:CLOUDFLARE_ACCOUNT_IDCLOUDFLARE_API_TOKENTOMLโ use the comment-free template to avoid parse errors.
Then go to
ActionsโDeploy Auth Inbox to Cloudflare WorkersโRun workflow.After success, delete the workflow logs to avoid leaking your config.
-
Jump to Set Email Forwarding.
-
Clone and install
git clone https://github.com/TooonyChen/AuthInbox.git cd AuthInbox pnpm install -
Create D1 database
pnpm wrangler d1 create inbox-d1 pnpm wrangler d1 execute inbox-d1 --remote --file=./db/schema.sql
Copy the
database_idfrom the output. -
Configure
cp wrangler.toml.example wrangler.toml
Edit
wrangler.tomlโ at minimum fill in:[vars] FrontEndAdminID = "your-username" FrontEndAdminPassword = "your-password" UseBark = "false" # AI provider โ choose any compatible service AI_BASE_URL = "https://generativelanguage.googleapis.com/v1beta/openai" AI_API_KEY = "your-api-key" AI_API_FORMAT = "openai" AI_MODEL = "gemini-2.0-flash" [[d1_databases]] binding = "DB" database_name = "inbox-d1" database_id = "<your-database-id>"
AI_API_FORMAToptions:Value Endpoint Compatible providers openai/v1/chat/completionsOpenAI, Gemini (OpenAI-compat), DeepSeek, Groq, Mistral, โฆ responses/v1/responsesOpenAI Responses API anthropic/v1/messagesAnthropic Claude Common
AI_BASE_URLvalues:OpenAI: https://api.openai.com Gemini (OAI-compat): https://generativelanguage.googleapis.com/v1beta/openai Anthropic: https://api.anthropic.com DeepSeek: https://api.deepseek.com Groq: https://api.groq.com/openaiOptional fallback provider (triggered if primary fails after 3 retries):
# AI_FALLBACK_BASE_URL = "https://api.openai.com" # AI_FALLBACK_API_KEY = "your-fallback-key" # AI_FALLBACK_API_FORMAT = "openai" # AI_FALLBACK_MODEL = "gpt-4o-mini"
Optional Bark vars:
barkTokens,barkUrl. -
Build and deploy
pnpm run deploy
Output:
https://auth-inbox.<your-subdomain>.workers.dev
Go to Cloudflare Dashboard โ Websites โ <your-domain> โ Email โ Email Routing โ Routing Rules.
Catch-all (forwards all addresses to the Worker):

Custom address (forwards a specific address):

Visit your Worker URL, log in with the credentials you set, and start receiving verification emails.
- Cloudflare Workers for the serverless platform.
- Google Gemini AI for intelligent email extraction.
- Bark for real-time notifications.
- shadcn/ui for the component library.
- Open Source Community for the inspiration.
- GitHub Actions deployment
- OpenAI fallback support
- React dashboard with shadcn/ui
- Promotional email filter (skip ads before LLM)
- Raw email viewer + sandboxed HTML preview
- Regex-based extraction as an AI-free option
- Multi-user support
- More notification methods (Slack, webhook, etc.)
- Sending email support


