English README · GitHub 仓库 · 项目文档 · 开源协议(GPL v3 或更高版本)
EdgeChat 是一个部署在 Cloudflare 上的聊天系统,提供账号体系、公开群组、私有群组、私信、实时消息、文件上传和管理员后台,目标是在 Cloudflare 生态中以较低运维成本实现一套可直接落地的站内 IM。
本项目采用 GPL-3.0-or-later 协议,详见 LICENSE。
| 聊天界面 | 管理后台 |
![]() |
![]() |
- 管理员创建用户,不开放自助注册
- 支持公开群组、私有群组与私信会话
- 群主管理成员,管理员可查看任意群组和私信消息
- 支持实时消息、历史消息分页、消息检索、文件发送
- 支持文件上传与头像管理
- 后台一级导航包含仪表盘、用户管理、注册邀请、信息查看、网站设置,可直接进入消息巡检功能
- 管理员可在网站设置中由浏览器直接比对源码仓库,检查当前部署是否有更新
- 现代化 Liquid Glass 风格界面,已适配移动端并支持基础无障碍能力
- 支持定时硬删除过期消息
- 前端:Vue 3、Vue Router、Vite
- 后端:Cloudflare Workers、Hono
- 实时层:Durable Objects WebSocket Hibernation
- 数据库:Cloudflare D1
- 会话:Cloudflare KV
- 文件:Cloudflare R2
- 部署:Wrangler、GitHub Actions
推荐优先使用 GitHub Actions 部署,适合长期维护和生产环境更新。
- 快速开始:https://echat.azora.top/guide/getting-started.html
- 详细教程:https://echat.azora.top/guide/actions-deploy.html
仓库内已提供 .github/workflows/deploy-worker.yml,推送到 master 或 main,或手动触发 workflow_dispatch 后即可执行自动部署。
如果你希望本地手动部署,完整步骤、资源准备和注意事项请查看文档站教程:
- 手动部署教程:https://echat.azora.top/guide/getting-started.html
- 文档首页:https://echat.azora.top/
- Docker 本地部署:DOCKER.md
npm installnpm run dev:frontendnpm run buildnpm run deploy在非交互环境下部署时,需要提前设置 CLOUDFLARE_API_TOKEN。
后台更新检查会在构建时自动记录当前 GitHub 仓库、分支和提交。为了获得准确结果,手动部署应在 Git 仓库内基于已经推送的干净提交构建;源码仓库需要保持公开,浏览器才能直接调用 GitHub Compare API,整个过程不会创建定时任务。
PowerShell 示例:
$env:CLOUDFLARE_API_TOKEN = "your-token"
npm run deployedgechat/
├─ assets/
│ └─ previews/
│ ├─ chat-home.png
│ └─ admin-dashboard.png
├─ frontend/
│ ├─ src/
│ │ ├─ api.js
│ │ ├─ router.js
│ │ ├─ store.js
│ │ ├─ ws.js
│ │ ├─ styles.css
│ │ ├─ components/ui/
│ │ └─ pages/
│ └─ vite.config.js
├─ worker/
│ ├─ schema.sql
│ ├─ migrations/
│ └─ src/
│ ├─ index.js
│ ├─ auth.js
│ ├─ db.js
│ ├─ middleware.js
│ ├─ utils.js
│ ├─ api/
│ └─ do/
├─ wrangler.toml
├─ package.json
├─ README.md
├─ README.en.md
└─ LICENSE
更多实现说明可查看 TECHNICAL.md 和文档站:https://echat.azora.top/
欢迎提交 Issue 和 Pull Request,一起完善 EdgeChat。
感谢所有为项目提供帮助的贡献者:
感谢 linux do 在推广方面为本项目做出的贡献。
本项目采用 GNU GPL v3.0 or later。
你可以使用、修改和分发本项目;如果你分发修改版本,需要继续提供对应源代码,并保持 GPL 兼容。


