
2026/09/12 6:48
Show HN: ResolveHQ – Cloudflare Workers、D1、R2、Queues を採用したヘルプデスク
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
ResolveHQ は、外部サーバーを必要とせずに小規模なサポートチームを強化することを目的に設計された、Cloudflare エコシステム内にネイティブで構築された強力なセルフホスト可能ヘルプデスクアプリケーションです。D1 データベースをデータ管理に、R2 ストレージを添付ファイルの格納に使用することで、チケット管理機能、テナント隔離機能、および高度な自動化機能を、単一の効率的な Worker 内で提供します。この統合システムにより、Email Routing や Resend などの Cloudflare サービスを既に利用している組織は、サポート運用をシームレスに統合しながら、独立したデータベースクラスターや新規サーバーの必要性を排除することでコスト削減を実現できます。该平台は、AI 作成の返信(オプトイン)や自動タriage ルールといった複雑なワークフローを簡素化し、Hono と React を使用したモダンなスタック上で管理されます。将来の機能性は管理者設定に依存しており、
TICKET_RETENTION_DAYS などの変数を設定することで、データが定期削除されるまでの期間が決まります。最終的に、ResolveHQ はチケットライフサイクルを安全に管理し、既存の Cloudflare シークレットを活用して安全かつコスト効果の高いサポート運用を実現できる、プライベートでスケーラブルな環境を提供します。
Text to translate:
The original summary is already accurate, comprehensive, and clear. No improvement is necessary.
本文
ResolveHQ: Cloudflare ネイティブヘルプデスクソリューション
ResolveHQ は、小規模なサポートチーム向けのCloudflare ネイティブかつセルフホスト可能のヘルプデスクソリューションです。
主な機能
- 顧客管理とタスク処理
- テナントごとの顧客隔離機能を備えています。
- チケットの割り当て、ステータス管理、優先度設定、タグ付けが可能です。
- フルテキスト検索を備えた共有受信トレイを運用できます。
- チームコラボレーション
- オーナーとして登録し、同僚を招待して組織間でのワークスペースを切り替えることが可能です。
- オーナー / 管理者 / エージェントの役割を管理できます。
- アプリ内での割り当て通知や顧客返信を受け取りながら作業できます。
- メール処理と認証
- RFC 5322 に準拠したメールスレッド化に対応し、チケット間の件名の偽装に堅牢です。
- Cloudflare Email Routing を介して受信し、Resend を介して送信します。
- 配信ステータス確認、リトライ機能、冪等なウェブフックが搭載されています。
- 認証済みかつ認可された R2 アップロードを通じてチケットにファイルを添付できます。
- 高機能な受信トレイ
- レスポンスの高速化を支援するレスポンシブな 3 ペイン構造です。
- セーブされた返信、内部メモ、AI 作成の返信(オプトイン)、楽観的版本管理が可能です。
- ナレッジベース記事から公開ヘルプセンターを発行し、ドラフトはチーム内に限定して保持できます。
- チケットメールと同じプロバイダー縫い目を通じたシステムメールでパスワードリセットや招待の承認を受け付けます。
- レポートと自動化
- ボリュームと回答速度を追跡するリポート機能があります。
- 任意の期間のデータを CSV にエクスポートできます。
- ルールベースのオートメーションによるトライアージを自動化可能です。
- データ管理と保守
- 顧客情報の JSON エクスポートが可能です。
- キューされたメールをキャンセルする、永続的で再開可能なワークフローが採用されています。
- 自動回復機能: 5 分ごとの cron ジョブにより停止したメールジョブの再試行やデータ整理を行います。
- AI とセキュリティ
- ワークスペースごとに AI アシスタントを制御し、管理者設定で有効化まで無効にできます(有効化後のみ OpenAI に送信)。
(例:365)を設定することで、期間経過したチケットの恒久的な削除スケジュールを指定できます。TICKET_RETENTION_DAYS
ユーザーインターフェース (UI)
- デザイン: Slack をヒントにしたアズーゲ色のサイドバーを採用しています。
- フォントとアイコン: セルフホストされた Lato タイポグラフィおよび Lucide アイコンを使用。
- テーマ対応: テーマ感知コントロールにより、ライトモードおよびダークモードのワークスペースを快適に利用できます。
- モバイル対応:
- ボトムナビゲーションとキーボードアクセシブルなワークスペースドローアにより、すべての機能が利用可能です。
- チケットカラムは件名の可読性を保つように適応します。
- ショートカット:
キーを使用することでページ間を迅速に移動できます。Cmd/Ctrl + K
アーキテクチャと仕組み
ResolveHQ は、お客様のアカウント内の単一の Cloudflare Workerとして動作します。
- Hono: REST API と埋め込みの React アプリケーションを提供します。
- データ保存場所:
- Cloudflare D1: チケットと顧客情報の保存。
- Cloudflare R2: 添付ファイルの保存(お客様の Cloudflare アカウント内)。
- Cloudflare Queues: 受信・送信メールジョブの格納(Workers Free で利用可能)。
- メールフロー:
- 着信: Cloudflare Email Routing が Worker に配信。
- 発信: Resend が送信を担当します。
デプロイとセットアップ
必要なリソース
最も簡単な開始方法は、Cloudflare ダッシュボード上の**「Cloudflare にデプロイ」**ボタンを使用することです。
- Cloudflare アカウント: Queues をサポートする Workers Free 版が必要です(R2 は別途アクティベーションが必要)。
- ドメイン: Cloudflare のドメインが Email Routing の設定のために必要です。
- Resend アカウント(オプション): 送信済みドメインを検証した状態で、発信メールを送信するために推奨されます。
デプロイ手順概要
- ResolveHQ URL を開き、オーナーとして登録します。
- サポート用メールアドレスを入力(これがデフォルトの受信トレイになります)。
- Cloudflare ダッシュボードで、入力したアドレス宛てにメールを受け取るように Email Routing ルールを追加します。
- テストメールを送信し、受信トレイへの着信を確認します。
詳細な手順は デプロイガイド を参照してください。
ローカル開発環境の起動
以下のコマンドを実行して開発サーバーを立ち上げます。
npm install cp .dev.vars.local.example .dev.vars npm run db:migrate:local npm run db:seed:local npm run dev
- Vite アプリケーションは
で動作します。http://localhost:5173
は Wrangler (/api
) にプロキシされます。http://localhost:8787
費用と制限について
ResolveHQ は、以下の Cloudflare サービスのフリープラン制限内で使用される場合、Small Deployments 向けに無料で動作させることができます。
- 利用可能なサービス: Workers, D1, R2, Queues, Cron トリガー, Email Routing。
- 注意点:
- CPU 集約的な認証やメール解析には、必要に応じて Workers Paid が求められる可能性があります。ベンチマークを取っておきましょう。
- R2 には別途アカウントアクティベーションと課金設定が必要です。
- Resend は独自の制限内で発信メールを処理します。
詳細は フリープラン監査 を参照してください。
オプション設定例
-
AI アシスタンスの有効化 Worker シークレットとして以下を設定することで AI を利用可能です。
(必須)OPENAI_API_KEY
(オプション、デフォルト:OPENAI_MODEL
)gpt-4o-mini- 注意: 各ワークスペースは設定画面でオプトインする必要があり、キーが未設定の場合は機能は非表示になります。
-
保存ポリシーの設定 Worker 変数として
を設定することで、解決済み・閉じられたチケット(添付ファイル含む)の自動削除を有効にできます。TICKET_RETENTION_DAYS- デフォルト:未設定の場合は自動的に何も削除されません。
まだ実装されていない機能
- マルチ言語インターフェース
- アプリ外での通知(メール要約など)
ライセンス
詳細は LICENSE を参照してください。