Skip to content

Latest commit

ย 

History

History
230 lines (158 loc) ยท 7.69 KB

File metadata and controls

230 lines (158 loc) ยท 7.69 KB

Auth Inbox ๐Ÿ“ฌ

English | ็ฎ€ไฝ“ไธญๆ–‡

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!

Deploy to Cloudflare Workers

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])
Loading

Table of Contents ๐Ÿ“‘


Features โœจ

  • 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.

Technologies Used ๐Ÿ› ๏ธ

  • 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.

Installation โš™๏ธ

Prerequisites


Option 1 โ€” Deploy via GitHub Actions

  1. Create D1 Database

    Go to Cloudflare Dashboard โ†’ Workers & Pages โ†’ D1 SQL Database โ†’ Create. Name it inbox-d1.

    Open the database โ†’ Console, paste and run the contents of db/schema.sql.

    Copy the database_id for the next step.

  2. Fork & Deploy

    Deploy to Cloudflare Workers

    In your forked repository, go to Settings โ†’ Secrets and variables โ†’ Actions and add:

    • CLOUDFLARE_ACCOUNT_ID
    • CLOUDFLARE_API_TOKEN
    • TOML โ€” 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.

  3. Jump to Set Email Forwarding.


Option 2 โ€” Deploy via CLI

  1. Clone and install

    git clone https://github.com/TooonyChen/AuthInbox.git
    cd AuthInbox
    pnpm install
  2. Create D1 database

    pnpm wrangler d1 create inbox-d1
    pnpm wrangler d1 execute inbox-d1 --remote --file=./db/schema.sql

    Copy the database_id from the output.

  3. 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_FORMAT options:

    Value Endpoint Compatible providers
    openai /v1/chat/completions OpenAI, Gemini (OpenAI-compat), DeepSeek, Groq, Mistral, โ€ฆ
    responses /v1/responses OpenAI Responses API
    anthropic /v1/messages Anthropic Claude

    Common AI_BASE_URL values:

    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/openai
    

    Optional 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.

  4. Build and deploy

    pnpm run deploy

    Output: https://auth-inbox.<your-subdomain>.workers.dev


3. Set Email Forwarding โœ‰๏ธ

Go to Cloudflare Dashboard โ†’ Websites โ†’ <your-domain> โ†’ Email โ†’ Email Routing โ†’ Routing Rules.

Catch-all (forwards all addresses to the Worker): image

Custom address (forwards a specific address): image

4. Done! ๐ŸŽ‰

Visit your Worker URL, log in with the credentials you set, and start receiving verification emails.


License ๐Ÿ“œ

MIT License


Screenshots ๐Ÿ“ธ

Mail list and extracted code

Mail detail with verification code

Rendered HTML email preview


Acknowledgements ๐Ÿ™

  • 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.

TODO ๐Ÿ“

  • 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