CForum — Cloudflareで動くモダンなサーバーレスフォーラム
概要
CForumは、Cloudflareのエッジサービス群(Pages、Workers)、組み込みSQLite互換のD1、オブジェクトストレージR2を組み合わせたサーバーレスフォーラム実装です。フロントエンドは静的ファイルをPagesで配信し、APIはWorkersで処理する「単一ドメイン+スマートゲートウェイ」構成を採ることで、静的配信の無料帯域を活かしつつWorker実行コストを大幅に削減します。主要機能として投稿管理、スレッドコメント、画像アップロード、2要素認証(2FA)をサポート。TypeScriptで実装され、シンプルで拡張しやすいアーキテクチャが特徴です。(約300字)
リポジトリの統計情報
- スター数: 127
- フォーク数: 126
- ウォッチャー数: 127
- コミット数: 14
- ファイル数: 19
- メインの言語: TypeScript
主な特徴
- Pages + Worker のハイブリッド配置で静的配信をPagesへ集約し、Workerの実行回数とコストを削減
- D1(Cloudflareの組み込みデータベース)を用いたサーバーレスDB設計で低レイテンシなデータアクセスを実現
- R2を利用した画像アップロード/ホスティング機能と、スレッド化されたコメント機能を備える
- 2要素認証(2FA)を含む認証機能により、ユーザーセキュリティを強化
技術的なポイント
CForumはCloudflareのエコシステム最適化が中心設計で、Pages(静的コンテンツ)とWorkers(API/ビジネスロジック)を明確に分離することで、リクエストごとのWorker実行を最小化します。Pages Functionsが入り口でルーティング判定を行い、/api/* へ振られたリクエストのみWorkerへ転送しJSONを返す一方、静的リソースやシングルページアプリのエントリはPagesが直接返すことで帯域コストと呼び出し回数を抑制します。データ層はD1を採用しており、スキーマは投稿・コメント・ユーザ・メタ情報などのテーブル構成が想定されます。D1はSQLite互換のエンジンのため、軽量なクエリとローカル的なトランザクション管理が可能で、Workersからの直接アクセスで高速に動作します。
メディアはCloudflare R2に格納され、アップロード時にWorker側で受け取ったバイナリをR2へ保存し、公開はR2のオブジェクトURL(あるいは署名付きURL)で配信します。画像処理やリサイズはエッジで行う実装も想定可能で、費用対効果やレスポンスの観点から重要な拡張ポイントです。認証は2FAをサポートしており、トークンベース(TOTP)やワンタイムコード生成、あるいはメール/SMS連携と組み合わせることで不正ログイン対策を強化します。TypeScriptでフロント・バック双方が書かれているため型安全が高く、開発者体験(DX)も良好です。
運用面ではPagesのCDNキャッシュ、Workerでのキャッシュヘッダ制御、R2のオブジェクト配置方針がパフォーマンスに直結します。単一ドメインで運用するためにDNS・TLSはCloudflare側で一元管理され、CORSやセッション管理、CookieのSameSite設定などフロントとAPIの連携周りを適切に設計する必要があります。将来的な拡張としては、全文検索やリアルタイム通知、画像変換のエッジ処理、モデレーションワークフローの導入などが考えられます。(約1200字)
プロジェクトの構成
主要なファイルとディレクトリ:
- .editorconfig: file
- .github: dir
- .gitignore: file
- .prettierrc: file
- LICENSE: file
…他 14 ファイル
(※リポジトリ全体はTypeScript中心で、Pages向けの静的ファイルとWorker用コード、D1/R2連携の設定や環境設定ファイルが含まれている想定です。)
まとめ
Cloudflareのサーバーレス技術を活かし、コスト効率とスケーラビリティを両立した実践的なフォーラム実装です。(約50字)
リポジトリ情報:
- 名前: CForum
- 説明: CForum — A modern, serverless forum built on Cloudflare Workers + Pages + D1 + R2, featuring posts, threaded comments, image uploads, 2FA authentication, and a hybrid deployment architecture optimized through smart edge routing.
- スター数: 127
- 言語: TypeScript
- URL: https://github.com/adysec/CForum
- オーナー: adysec
- アバター: https://avatars.githubusercontent.com/u/133128400?v=4
READMEの抜粋:
CForum
一个基于 Cloudflare Workers + Pages + D1 + R2 的论坛,支持帖子、评论、图片上传、2FA 等。
💡 性能优化:采用 Pages + Worker 混合部署,静态资源免费无限请求,节省 ~90% Worker 成本!
🏗️ 架构设计
单域名 + 智能网关方案
用户访问:forum.adysec.com
↓
Cloudflare Pages(Edge 网络)
↓
┌─ Pages Functions 判断路由
│
├─ /api/* ?
│ ├─ YES → 转发给 Worker(处理业务逻辑 + 数据库)
│ │ 返回 JSON
│ │
│ └─ NO → 返回静态文件或 index.html
│ 前端 React Router 接管
│
└─ 用户看到页面
✨ 功能特性
- ✅ 帖子管理 - 发布、编辑、删除、置顶、分类
- …