一世贪欢的私域

一世贪欢的私域

wr.do部署

73
2025-06-17

▶ 点击播放 配套视频(哔哩哔哩)

零、WR.DO是什么?

  1. 一个邮箱管理开源项目
  2. 一个短链接生成器
  3. 一个功能强大的API平台

一、准备的东西

  1. 一个谷歌账号
    [email protected]

    为了方便后续操作,基本都是使用Google账号一键注册登录的。

    为了后续通过谷歌一键登录后台。(Linux.do、Google、Giithub 三选三、三选二、三选一)

  2. 一个域名
    000634.xyz
    https://www.spaceship.com 购买(成本4.81元),支持支付宝付款

不多解释。
提前准备一个txt来记录所有的环境变量


  1. 一个cloudflare账号,以下简称CF
    https://www.cloudflare.com/zh-cn/

    管理域名、转发邮件、

  2. 一个GitHub账号
    https://github.com/VerifyDilation

    看代码、改代码、实现后台一键登录、更新代码后自动重新部署

  3. 一个vercel账号
    https://vercel.com/verifydilation7989gmailcoms-projects

    部署这个项目。前端、后端。

  4. 一个Neon账号
    https://console.neon.tech

    项目使用了一个PG数据库,好像Vercel也有。

  5. 一个resend账号
    https://resend.com

    发邮件

  6. 一张信用卡或(Paypal账号+银联卡)
    1234567890123456 01/32 123
    Cloudflare验证身份后才可以开启对象存储R2,用于存储邮件的附件。
  7. 一个Linuxdo账号(可选)
    https://linux.do

    后台一键注册登录的。


  1. 文档资源,方便查阅

二、整体的思路

大思路是跟着作者写的中文文档。(03)

2.1 由Cloudflare管理域名解析

网上的教程很多了,不赘述。一句话说

修改DNS服务器为CF的地址

文档资料02,直接看第一步就行,不同的域名商稍有差别。

Pasted image 20250617053049

要等一段时间,我们先干点别的。

2.2 准备数据库

登录,6号网站, https://console.neon.tech 创一个数据库

打开 03-1 文档 https://wr.do/docs/developer/quick-start-zh#%E5%9C%A8-vercel-%E4%B8%AD%E6%B7%BB%E5%8A%A0%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F 找到环境变量的名称

DATABASE_URL=


postgresql://neondb_owner:npg_2IcTY9ZugSbz@ep-royal-firefly-a8xp0brl-pooler.eastus2.azure.neon.tech/neondb?sslmode=require

Pasted image 20250617054003

2.3 准备发邮件的Token

项目文档,,文档资料03-1 https://wr.do/docs/developer/quick-start-zh#resend-%E9%82%AE%E4%BB%B6%E9%AA%8C%E8%AF%81%E9%85%8D%E7%BD%AE

https://resend.com/domains

找到,变量名称

RESEND_API_KEY

re_iFkS3Drr_KFMHBwD2USy577YCgvaedPb4

RESEND_FROM_EMAIL

这个后面配置,因为部署不成功的话,连号都注册不了。

7号网站, https://resend.com/domains 加入域名和生成一个token

Pasted image 20250617055400

Pasted image 20250617055555

2.4 配置认证服务

项目文档,,文档资料03-1 https://wr.do/docs/developer/quick-start-zh#2-%E9%85%8D%E7%BD%AE%E8%AE%A4%E8%AF%81%E6%9C%8D%E5%8A%A1

2.4.1 Github

  1. 打开, https://github.com/settings/developers

Pasted image 20250617060325

  1. 新建一个oauth app
    Pasted image 20250617060747

Pasted image 20250617060937

  1. 我们保存下来,对照官网的变量名称
GITHUB_ID = 
Ov23li5Fv41rOZTeZARA


GITHUB_SECRET = 
a84f377d9cceaaa919d8e48b60bf9a91a56babf1

2.4.2 Google

  1. 打开这个网站,然后使用谷歌登录, https://console.cloud.google.com/projectselector2/apis

首次登录的话,需要创建一个项目,然后点击Oauth 权限请求页面,点开始后,创建应用。

Pasted image 20250617061439

  1. 创建应用。

Pasted image 20250617061642

  1. 继续创建Oauth客户端

Pasted image 20250617061727

照葫芦画瓢,配合授权的重定向URI

https://000634.xyz/api/auth/callback/google

Pasted image 20250617083601

  1. 默认只有内测用户能注册使用,,要使用别的谷歌邮箱的话,可以一个个加进来。点进去刚刚创建号的客户端,复制ID、和密钥。
    Pasted image 20250617083455

  2. 根据官方文档,收集变量名称和变量

项目文档,,文档资料03-1 https://wr.do/docs/developer/quick-start-zh#google-%E9%85%8D%E7%BD%AE

GOOGLE_CLIENT_ID =
287647603338-964ihquj5n1s2n675p7qk301e3dctkro.apps.googleusercontent.com


GOOGLE_CLIENT_SECRET = 
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

2.4.3 Linux.do

项目文档,,文档资料03-1 https://wr.do/docs/developer/quick-start-zh#linuxdo-%E9%85%8D%E7%BD%AE

  1. 打开, https://connect.linux.do

Pasted image 20250617062717

  1. 申请应用接入

Pasted image 20250617062900

  1. 保存客户端ID和密钥
LinuxDo_CLIENT_ID=
vQ5Tca8qNy3qIHtK4aVaTF2EkbBbz7mn


LinuxDo_CLIENT_SECRET=
EB2475XUW70cskxDbZq0PEHDGUHLfGWh

2.4.4 Resend (后面部署成功的话,再看这个)

同 2.3

2.5 Github的访问token

vercel 拉取更新

访问, https://github.com/settings/tokens

Pasted image 20250617063622

保存生产的token

GITHUB_TOKEN=

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

2.6 配置转发邮件的worker

项目文档,,文档资料03-1 https://wr.do/docs/developer/quick-start-zh#3-%E9%82%AE%E4%BB%B6-worker-%E9%85%8D%E7%BD%AE%E6%8E%A5%E6%94%B6%E9%82%AE%E4%BB%B6

这里在CF部署的Worker 用来处理接收的邮件,R2对象存储负责存放附件。

项目仓库 https://github.com/oiov/cf-email-forwarding-worker

  1. fork代码,复制一份代码,默认下一步就好

    Pasted image 20250617064621

    1. 需要注意的是,这里需要创建一个对象存储R2的数据桶,创建数据桶前需要Paypal或信用卡验证。对应准备阶段的第九步。
      • 可以创建一个名字是,wremail 的数据桶(必须创建这个名字的数据桶!!!!!
      • 也可以,创建任意名称的数据桶,然后在之后的worker引入一个变量R2_BUCKET=。(我选择了这个)

这里创建一个 wremail 的存储桶
Pasted image 20250617071459

为了方便后续使用,可以绑定一个自定义域名。并记录好这个环境变量。

NEXT_PUBLIC_EMAIL_R2_DOMAIN=

https://email-attachment.000634.xyz

Pasted image 20250617072414

  1. CF上部署Worker,这里直接连接Github就好。
    Pasted image 20250617064803

  2. 选择刚刚fork的仓库,保存并部署,
    这里如果你的数据桶名称是wremail才能部署成功,否则去创建一个。
    部署失败的日志,部署失败会影响下一步,所以确定部署好。

Pasted image 20250617071655

  1. 需要配置变量为自己的地址
APP_API_URL

https://000634.xyz/api/v1/email-catcher

2.7 开启CF的邮件转发功能

  1. 开启电子路由和DMARC,跳过入门指南。
    Pasted image 20250617070523

  2. 启用电子路由,然后确定即可。
    Pasted image 20250617070612

  3. 转发到刚刚部署的worker,
    Pasted image 20250617072100

2.8 生成一个JWT密钥

https://generate-secret.vercel.app/32

记录好

AUTH_SECRET=

9866e5ad3c87b5acab9db1657e4e0e02

三、准备部署到Vercel上

这里的坑很多很多,最终还得靠作者解决。
实际情况很复杂,有的需要改代码,还有一些必须的变量,并没有列出。
每次变多环境变量后,都需要重新部署,每次就得等几分钟才能看到效果。

3.1 一键部署

  1. 点击项目文档,一键部署到Vercel https://wr.do/docs/developer/deploy-zh

这里也需要Vercel 连接上 Github

Pasted image 20250617072919

  1. 这里会授权成功后,需要手动写一个仓库名称,这里会fork原仓库。我直接使用域名作为仓库名称。

Pasted image 20250617073131

  1. 此时需要填入必须的变量,如果你提前记录好的话,现在直接搜索复制粘贴即可。

Pasted image 20250617073245

  1. 然后点击部署。肯定是不能使用的,点击部署后,先访问主页跳过。 https://vercel.com

Pasted image 20250617073507

  1. 绑定域名

    Pasted image 20250617074026

  2. 展望一下这一步, 主页其实是可以访问了,但是,后台怎么也展示不出来。效果如下。
    解决思路,这是忘记初始化数据库了,回到 2.2

Pasted image 20250617074426

3.2 配置后台登录

继续添加环境变量,配置好,2.4 节的认证服务后,就可以使用Google、Github、Linuxdo直接注册登录啦。

  1. 回到2.4 ,填写上述的环境变量到Vercel。

Pasted image 20250617074753

  1. 配置后,点击重新部署。
    Pasted image 20250617074958

3.3 设置环境变量

之前的各种问题,发现是因为没有设置这两个环境变量。(不设置会导致,域名、短链接添加不成功)

不要跳过数据库检测

SKIP_DB_CHECK: "false"
SKIP_DB_MIGRATION: "false"

Vercel部署,发现不设置以下这两个变量的话,URL短链会跳转到http://127.0.0.1:3000

NEXT_PUBLIC_EMAIL_R2_DOMAIN=https://email-attachment.0g0.cc

NEXT_PUBLIC_APP_URL=https://0g0.cc
AUTH_URL=https://0g0.cc

3.4 注册后初始化

访问 https://000634.xyz/setup 开始初始化。第一个注册的可以成为管理员。

Pasted image 20250617082909

3.5 域名管理,填写cf的全局API密钥、邮箱、区域ID

Pasted image 20250617084700

四、部署不仔细的问题

  1. 邮箱收不到,检查worker的配置,变量。查看日志解决。
  2. 邮件发不出去,检查resend的API、resend域名添加情况。

五、所需要的所有变量

1. 数据库环境变量

DATABASE_URL

2. 发送邮件的Token

RESEND_API_KEY

RESEND_FROM_EMAIL

3. 单点登录

3.1 Github

GITHUB_ID

GITHUB_SECRET

/api/auth/callback/github

3.2 Google

GOOGLE_CLIENT_ID

GOOGLE_CLIENT_SECRET

/api/auth/callback/google

3.3 Linuxdo

LinuxDo_CLIENT_ID

LinuxDo_CLIENT_SECRET

/api/auth/callback/linuxdo

4. Github Token

GITHUB_TOKEN

5. 附件数据桶的域名(可选)

NEXT_PUBLIC_EMAIL_R2_DOMAIN

6. worker发送地址变量

APP_API_URL

https://你的域名/api/v1/email-catcher

7. JWT密钥

AUTH_SECRET=

8. 跳过数据库检测

SKIP_DB_CHECK
false

SKIP_DB_MIGRATION
false

9. URL跳转链接

NEXT_PUBLIC_EMAIL_R2_DOMAIN

NEXT_PUBLIC_APP_URL

AUTH_URL

10. Cloudflare 相关密钥

全局API密钥、邮箱、区域ID

六、竞品分析

不客观。

功能/项目名称🐰 moemail🌩️ cloudflare_temp_email🐶 wr.do
✅ 支持接收邮件
✉️ 支持发送邮件
👥 多用户支持
🔐 管理用户
📱 单点登录支持
📨 catch-all 邮箱支持
🔔 Webhook 推送支持
🎨 界面美观程度🟢 较好🟡 一般🟢 极佳(仿 Vercel 风格)
🔧 技术栈Cloudflare Workers + KVCloudflare Workers+ D1Cloudflare Workers
🧰 特殊功能或亮点动画 UI,Webhook支持发信+管理后+catch-all强大 UI、支持短链接、子域名管理
📜 附件支持🟡 一般 (可禁用)🟡 一般
🚀 部署难度🟢 容易🟢 容易🟢 容易
🧪 活跃度(更新时间)🟢 活跃🟢 较活跃🟢 非常活跃

: 附件超过1.5M会导致收不到邮件,原因是免费版的Cloudflare Worker的CPU运行时间有限制,不能处理大附件。