介绍
NodeCrypt 是一个真正的端到端加密聊天系统,实现完全的零知识架构。整个系统设计确保服务器、网络中间人、甚至系统管理员都无法获取任何明文消息内容。所有加密和解密操作都在客户端本地进行,服务器仅作为加密数据的盲中继。
项目github地址
https://github.com/shuaiplus/NodeCrypt
Demo
不想自己搭建的也可以用搭建好的Demo,同样端到端加密:https://nodecrypt.busy0769.workers.dev
前提准备
- cloudflare账号
- 域名,并使用cloudflare做DNS解析(可选)
操作步骤
一、Fork NodeCrypt 项目
- 访问 NodeCrypt 仓库:https://github.com/shuaiplus/NodeCrypt
- 点击右上角的 Fork 按钮(需要登录 GitHub 账户)。
- 在弹出的界面中,选择您的个人账户作为 Fork 目标,点击 Create fork。
- Fork 完成后,您的 GitHub 账户下会出现一个新仓库,例如 https://github.com/您的用户名/NodeCrypt。
二、配置 Cloudflare Workers 账户
- 登录 Cloudflare 账户(https://dash.cloudflare.com/login)。如果没有账户,注册一个(免费计划即可)。
- 进入 Compute(Workers)→ Workers & Pages 仪表板(左侧菜单)。
- 确保您有 Workers 免费计划(支持每月 100,000 次请求,足够测试使用)。
三、从 GitHub 导入到 Cloudflare Workers
- 在 Cloudflare 仪表板的 Workers & Pages 中,在“Workers”标签页下,点击“Import a repository”的“Get started”按钮。
- 选择 Connect to Git(或类似选项,界面可能随 Cloudflare 更新变化)。
- 点击 Connect GitHub,授权 Cloudflare 访问您的 GitHub 账户。如果提示,选择 Install &
Authorize,并允许访问您的 Fork 仓库(您的用户名/NodeCrypt) - 选择 Fork 的仓库(例如 您的用户名/NodeCrypt)。
配置项目
Project name:输入一个名称(如 nodecrypt)。
Branch:选择 main(默认分支)。
Build settings:Build command:npm run build(如 README 所述)。 Root directory:保持默认(通常为 /)。 Environment variables(可选):NodeCrypt 默认无需额外变量,但若有自定义需求(如端口),可在此添加。
- 点击 Create and Deploy。
- Cloudflare 将克隆您的 Fork 仓库,运行 npm run build,并部署到 Workers。
四、验证自动同步 Workflow
确保主仓库更新会自动同步到您的 Fork,并触发 Cloudflare 重新部署。
- 检查 Fork 仓库中的 .github/workflows 目录(https://github.com/您的用户名/NodeCrypt/tree/main/.github/workflows)。NodeCrypt 内置了一个同步 Workflow(如 sync.yml),用于自动拉取主仓库(shuaiplus/NodeCrypt)的更新。
- 验证 Workflow 是否启用:
2.1 进入您的 Fork 仓库,点击 Actions 标签。
2.2 确认 Workflow(如 Sync with upstream)存在且状态为绿色(运行正常)。
2.3 如果 Actions 未启用,点击 Enable workflow。
2.4 重新回到cloudflare的workers下,重新部署下即可。
2.5 NodeCrypt 的 Workflow 确保主仓库更新(如修复漏洞或新功能)自动同步到您的 Fork,Cloudflare 自动重新部署。
五、绑定域名
- 回到cloudflare的workers下,点击部署好的项目;
- 点击 Settings
- 在Domains & Routes 下点击“+Add”
- 点击 Custom domain ,输入自己想要绑定的域名地址即可(需先将域名的DNS设置为cloudflare)
使用
- 访问绑定的域名或cloudflare默认的域名;
- 输入用户名和节点名称;
- 进入聊天室后,点击右上角的三个点,把链接分享出去,别人填完用户名后,即可进入加密聊天了