Skip to content

自助部署 PWA

Fork 模板,部署你自己的 DAO Message 实例。所有平台均免费。无论部署在哪里,消息始终端到端加密。

选哪个平台?

平台免费额度中国访问一键部署
Cloudflare Pages不限带宽,500 次构建/月🟢 最佳(330+ 节点)
GitHub Pages不限(公开仓库)🔴 不稳定✅(内置 workflow)
Vercel100 GB/月🟡 尚可
Netlify100 GB/月🟡 尚可

Cloudflare Pages ⭐

两种方式二选一。

方式 A · CF Dashboard Git 集成(推荐,零代码)

⚠️ 不要deploy.workers.cloudflare.com/?url=... 那种 Deploy Button — 它走 Worker 创建流程,会误把 PWA 当成 Worker 部署失败。

第一步:Fork 模板

打开 github.com/daomessage/securechat-pwa → 右上角 Fork → fork 到你的 GitHub

第二步:打开 CF Pages 新建页

dash.cloudflare.comCreatePages tab(不是 Workers tab)→ Connect to Git

第三步:授权 GitHub(做过一次就跳到第四步)

Connect GitHub → 弹窗授权 → Only select repositories → 勾选你 fork 的 securechat-pwaInstall & Authorize

第四步:创建项目

选你 fork 的仓库 → Begin setup → 配置:

字段
项目名改成你想要的名字(这就是 <名称>.pages.dev
Framework presetVite
Build commandnpm run build
Build output directorydist
环境变量 NODE_VERSION22

第五步:Save and Deploy → 等 ~90 秒 → 打开 <名称>.pages.dev

之后每次 push 到 main 自动重新部署,PR 自动生成预览 URL。


方式 B · GitHub Actions + Wrangler

适合需要在 CI 里看部署日志、或者在部署前加测试步骤的场景。

第一步:Fork 模板(同上)

第二步:在 CF 创建空项目

CF Dashboard → Workers & Pages → Create → Pages → Direct Upload → 起个项目名 → Create project → 跳过上传

第三步:添加 GitHub Secrets

你 fork 的仓库 → Settings → Secrets and variables → Actions → New repository secret

Secret 名取值
CF_ACCOUNT_IDCF Dashboard 右侧栏 Account ID
CF_API_TOKENAPI Tokens → 用 "Cloudflare Pages: Edit" 模板生成

第四步:触发部署

模板已内置 .github/workflows/deploy-cloudflare-pages.yml,推 main 自动触发,或手动: Actions tab → Deploy to Cloudflare Pages → Run workflow → 等 ~2 分钟

如果你已经用了方式 A(CF Dashboard Git 集成),两者会各自独立触发,可能重复部署。二选一就好。


绑定自定义域名(两种方式通用)

CF Pages 项目 → Custom domains → Set up a custom domain → 填 chat.yourname.com

如果域名在 Cloudflare DNS 里 → 自动加 CNAME;否则手动添加:

chat  CNAME  <你的项目名>.pages.dev

5-10 分钟 SSL 自动签发。


GitHub Pages

最简单,不需要任何第三方平台账号,只用你的 GitHub。

第一步:Fork

github.com/daomessage/securechat-pwa → Fork

第二步:启用 GitHub Pages

你 fork 的仓库 → Settings → Pages → Source → "GitHub Actions"(不是 "Deploy from a branch")

第三步:触发首次部署

  • Actions tab → Deploy to GitHub Pages → Run workflow,或者推任意 commit 到 main

第四步:访问你的站

https://<你的 GitHub 用户名>.github.io/securechat-pwa/

workflow 自动处理 /<repo>/ 子路径,无需手动改代码。

中国大陆访问

github.io 在中国大陆经常被污染或缓慢。国内用户推荐用 Cloudflare Pages。


Vercel

Deploy with Vercel

第一步:点击上方按钮

跳转到 vercel.com/new/clone,Vercel 会自动帮你把模板 fork 到你的 GitHub 账号。

第二步:登录 / 注册 Vercel

用 GitHub 账号登录(推荐),Vercel 会请求 GitHub 授权。

第三步:配置项目

字段
Project Name改成你想要的名字(这就是 <名称>.vercel.app
Framework Preset自动识别为 Vite,保持不变
Build Commandnpm run build(已预填)
Output Directorydist(已预填)

无需填写任何环境变量。

第四步:点击 Deploy

等 ~60 秒。完成后跳转到项目面板,点击 <名称>.vercel.app 访问。

之后自动部署:你 GitHub 上那个 fork 仓库每次 push 到 main,Vercel 自动重新构建部署。

绑定自定义域名:项目面板 → Settings → Domains → 填入你的域名 → 按提示加 CNAME。


Netlify

Deploy to Netlify

第一步:点击上方按钮

跳转到 app.netlify.com/start/deploy,Netlify 会自动帮你把模板 fork 到你的 GitHub 账号。

第二步:登录 / 注册 Netlify

用 GitHub 账号登录(推荐),Netlify 会请求 GitHub 授权。

第三步:填写仓库名称

Netlify 会询问你想把 fork 取什么名字,默认是 securechat-pwa,可以改。

第四步:点击 Save & Deploy

等 ~90 秒。完成后跳转到站点面板,点击 <随机名>.netlify.app 访问。

构建配置(build command = npm run buildpublish directory = dist)由仓库内的 netlify.toml 自动提供,无需手填。

之后自动部署:每次 push 到 main 自动触发重新构建。PR 自动生成预览 URL。

绑定自定义域名:站点面板 → Domain settings → Add custom domain → 填入域名 → 按提示配置 DNS。


常见问题

构建失败 — "npm ci EUSAGE" 或 lock file 不匹配 同步上游:你的 fork 页面 → Sync fork → Update branch → 重新部署。

注册/登录时出现 CORS 错误 relay 的 CORS 策略已于 2026-04-21 完全开放。如仍遇到:清浏览器缓存后刷新。

刷新子路由出现 404

  • Cloudflare Pages:public/_redirects 已处理
  • GitHub Pages:workflow 自动 copy index.html → 404.html
  • Vercel / Netlify:平台内置 SPA rewrite 处理

iPhone Safari 无法收到推送通知 iOS 要求 PWA 先添加到主屏幕才能申请 Web Push 权限(Safari → 分享 → 添加到主屏幕)。App 会自动弹出安装引导。

如何更新到最新版本? 你的 fork 页面 → Sync fork → Update branch,托管平台自动重新构建部署。

最后更新于:

Zero-Knowledge E2EE Protocol — Decentralized Communication