Show HN: ResolveHQ – 基于 Cloudflare Workers, D1, R2 和 Queues 构建的客服系统
Show HN: ResolveHQ – A Helpdesk Built on Cloudflare Workers, D1, R2 and Queues

原始链接: https://github.com/mirza-rizvi/ResolveHQ

ResolveHQ 是一款专为小型支持团队设计的云原生(Cloudflare-native)、可自托管的服务台工具。它提供了一套全面的功能,包括共享收件箱、工单管理、内部备注、AI 辅助草拟以及公共知识库。该平台完全运行在您自己的 Cloudflare 账户内,利用 D1 进行存储、R2 处理附件,并使用 Queues 实现可靠的邮件处理,从而确保数据主权和隐私。 核心功能包括强大的邮件会话管理、基于角色的访问控制、自动分类以及内置报表。它提供了现代化的响应式界面,支持明暗模式和快捷键操作,同时通过可配置的工单保留策略和持久化数据删除流程,确保合规性。 该平台通过“部署到 Cloudflare”按钮简化了部署流程,仅需一个 Cloudflare 域名和一个用于发送邮件的 Resend 账户即可完成。ResolveHQ 针对效率进行了优化,能够在 Cloudflare 的免费层级上为小型部署运行。它兼顾了功能与简洁性,为团队提供了一个可扩展、安全且可定制的支持基础设施,并保持了对敏感客户通信和内部数据的完全掌控。

``` Hacker News 最新 | 过往 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 Show HN: ResolveHQ – 一个基于 Cloudflare Workers, D1, R2 和 Queues 构建的客服系统 (github.com/mirza-rizvi) 4 分 | mirza_rizvi | 44 分钟前 | 隐藏 | 过往 | 收藏 | 讨论帮助 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索: ```
相关文章

原文

ResolveHQ is a Cloudflare-native, self-hostable helpdesk for small support teams.

Deploy to Cloudflare

  • Run a shared inbox with tenant-isolated customers, tickets, assignment, status, priority, tags, and full-text search.
  • Sign up as owner, invite teammates, and manage Owner/Admin/Agent roles with a workspace switcher across organizations.
  • Thread email correctly per RFC 5322, resistant to subject-line spoofing across tickets.
  • Receive mail through Cloudflare Email Routing and send it through Resend, with delivery status, retries, and idempotent webhooks. Outbound replies carry their linked attachments, and dead-letter queues drain to durable, recoverable records.
  • Attach files to tickets through validated, authorized R2 uploads.
  • Reply faster with saved replies, internal notes, AI-drafted responses (opt-in), and a responsive three-pane inbox with optimistic-version conflict handling.
  • Reset passwords and accept invitations through system email sent via the same provider seam as ticket mail.
  • Publish a public help center from knowledge-base articles, with drafts kept private to your team.
  • Track volume and response speed in Reports, export any window to CSV, and automate triage with rule-based Automations.
  • Notify agents of assignments and customer replies in-app, and work comfortably in light or dark mode.
  • Export everything stored about a customer as JSON, or erase it with a durable, resumable workflow that cancels queued mail.
  • Recover automatically: a five-minute cron job retries stalled mail jobs and cleans up staging and orphaned data.
  • Control AI assistance per workspace: it stays off until an admin enables it in Settings, and only then are ticket conversations sent to OpenAI.
  • Set TICKET_RETENTION_DAYS (for example 365) to have the scheduled sweep permanently delete resolved and closed tickets older than that window, including attachments.

The workspace uses a Slack-inspired aubergine sidebar, self-hosted Lato typography, Lucide icons, and Radix UI primitives. Theme-aware controls and status colors support light and dark workspaces. On mobile, bottom navigation and a keyboard-accessible workspace drawer keep all destinations available; ticket columns adapt to preserve subject readability.

Use Cmd/Ctrl+K to jump between pages. The sidebar dock contains notifications, theme switching, and account actions.

ResolveHQ runs as a single Cloudflare Worker in your own account. Hono serves both the REST API and the built React application. Cloudflare D1 holds tickets and customers, Cloudflare R2 holds attachments, and Cloudflare Queues carry inbound and outbound mail jobs. Cloudflare Email Routing delivers incoming mail to the Worker, and Resend sends outgoing mail. Tickets and attachments are stored in your Cloudflare account; outbound email content passes through Resend.

ResolveHQ can run on Cloudflare’s Free plan for small deployments, provided usage stays within the current limits for Workers, D1, R2, Queues, Cron Triggers, and Email Routing. CPU-intensive authentication or mail parsing may require Workers Paid; benchmark your deployment. Queues are available on Workers Free. R2 requires account activation and billing setup separately. Resend handles outbound email under its own limits. See the Free-plan audit.

The easiest way to get started is with the Deploy to Cloudflare button above. You will need:

  • A Cloudflare account; Workers Free supports Queues. Activate R2 separately.
  • A domain on Cloudflare, so you can set up Email Routing.
  • Optionally, a Resend account with a verified sending domain, to send outgoing mail.

After deployment, open your ResolveHQ URL and sign up as the owner, giving an optional support email that becomes your default inbox. In the Cloudflare dashboard, add an Email Routing rule sending that address to the deployed Worker, then send a test email to confirm it arrives in the inbox.

See the deployment guide for what the deploy flow provisions, required configuration, first-run setup, and manual deployment.

npm install
cp .dev.vars.local.example .dev.vars
npm run db:migrate:local
npm run db:seed:local
npm run dev

The Vite application runs on http://localhost:5173 and proxies /api to Wrangler on http://localhost:8787.

  • AI assistance: set OPENAI_API_KEY (and optionally OPENAI_MODEL, default gpt-4o-mini) as Worker secrets to make AI available. Each workspace still opts in through Settings; without a key the feature stays hidden and no AI calls are made.
  • Retention: set TICKET_RETENTION_DAYS as a Worker variable to automatically delete resolved and closed tickets (with attachments) after that many days. Unset means nothing is deleted automatically.
  • Multi-language interface and notifications outside the app (email digests).

See LICENSE.

联系我们 contact @ memedata.com