wr.do部署
编辑零、WR.DO是什么?
- 一个邮箱管理开源项目
- 一个短链接生成器
- 一个功能强大的API平台
一、准备的东西
-
一个谷歌账号
[email protected]
为了方便后续操作,基本都是使用Google账号一键注册登录的。
为了后续通过谷歌一键登录后台。(Linux.do、Google、Giithub 三选三、三选二、三选一)
-
一个域名
000634.xyz
在 https://www.spaceship.com 购买(成本4.81元),支持支付宝付款
不多解释。
提前准备一个txt来记录所有的环境变量
- 一个cloudflare账号,以下简称CF
https://www.cloudflare.com/zh-cn/管理域名、转发邮件、
- 一个GitHub账号
https://github.com/VerifyDilation看代码、改代码、实现后台一键登录、更新代码后自动重新部署
- 一个vercel账号
https://vercel.com/verifydilation7989gmailcoms-projects部署这个项目。前端、后端。
- 一个Neon账号
https://console.neon.tech项目使用了一个PG数据库,好像Vercel也有。
- 一个resend账号
https://resend.com发邮件
- 一张信用卡或(Paypal账号+银联卡)
1234567890123456 01/32 123
Cloudflare验证身份后才可以开启对象存储R2,用于存储邮件的附件。 - 一个Linuxdo账号(可选)
https://linux.do后台一键注册登录的。
- 文档资源,方便查阅
- 01开源仓库地址, https://github.com/oiov/wr.do
- 02另一个临时邮箱搭建教程, https://linux.do/t/topic/316819#p-3040413-cloudflare-9
- 03项目作者写的中文文档,
- 03.1 https://wr.do/docs/developer/quick-start-zh
- 03.2 https://wr.do/docs/developer/deploy-zh
- 03.2 接收邮件的worker项目仓库, https://github.com/oiov/cf-email-forwarding-worker
二、整体的思路
大思路是跟着作者写的中文文档。(03)
2.1 由Cloudflare管理域名解析
网上的教程很多了,不赘述。一句话说
修改DNS服务器为CF的地址
文档资料02,直接看第一步就行,不同的域名商稍有差别。
要等一段时间,我们先干点别的。
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
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
找到,变量名称
RESEND_API_KEY
re_iFkS3Drr_KFMHBwD2USy577YCgvaedPb4
RESEND_FROM_EMAIL
这个后面配置,因为部署不成功的话,连号都注册不了。
7号网站, https://resend.com/domains 加入域名和生成一个token
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
- 新建一个oauth app
- 我们保存下来,对照官网的变量名称
GITHUB_ID =
Ov23li5Fv41rOZTeZARA
GITHUB_SECRET =
a84f377d9cceaaa919d8e48b60bf9a91a56babf1
2.4.2 Google
- 打开这个网站,然后使用谷歌登录, https://console.cloud.google.com/projectselector2/apis
首次登录的话,需要创建一个项目,然后点击Oauth 权限请求页面,点开始后,创建应用。
- 创建应用。
- 继续创建Oauth客户端
照葫芦画瓢,配合授权的重定向URI
https://000634.xyz/api/auth/callback/google
-
默认只有内测用户能注册使用,,要使用别的谷歌邮箱的话,可以一个个加进来。点进去刚刚创建号的客户端,复制ID、和密钥。
-
根据官方文档,收集变量名称和变量
项目文档,,文档资料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
- 申请应用接入
- 保存客户端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
保存生产的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
-
fork代码,复制一份代码,默认下一步就好
- 需要注意的是,这里需要创建一个对象存储R2的数据桶,创建数据桶前需要Paypal或信用卡验证。对应准备阶段的第九步。
- 可以创建一个名字是,
wremail
的数据桶(必须创建这个名字的数据桶!!!!!) 也可以,创建任意名称的数据桶,然后在之后的worker引入一个变量R2_BUCKET=
。(我选择了这个)
- 可以创建一个名字是,
- 需要注意的是,这里需要创建一个对象存储R2的数据桶,创建数据桶前需要Paypal或信用卡验证。对应准备阶段的第九步。
这里创建一个 wremail
的存储桶
为了方便后续使用,可以绑定一个自定义域名。并记录好这个环境变量。
NEXT_PUBLIC_EMAIL_R2_DOMAIN=
https://email-attachment.000634.xyz
-
CF上部署Worker,这里直接连接Github就好。
-
选择刚刚fork的仓库,保存并部署,
这里如果你的数据桶名称是wremail才能部署成功,否则去创建一个。
部署失败的日志,部署失败会影响下一步,所以确定部署好。
- 需要配置变量为自己的地址
APP_API_URL
https://000634.xyz/api/v1/email-catcher
2.7 开启CF的邮件转发功能
-
开启电子路由和DMARC,跳过入门指南。
-
启用电子路由,然后确定即可。
-
转发到刚刚部署的worker,
2.8 生成一个JWT密钥
https://generate-secret.vercel.app/32
记录好
AUTH_SECRET=
9866e5ad3c87b5acab9db1657e4e0e02
三、准备部署到Vercel上
这里的坑很多很多,最终还得靠作者解决。
实际情况很复杂,有的需要改代码,还有一些必须的变量,并没有列出。
每次变多环境变量后,都需要重新部署,每次就得等几分钟才能看到效果。
3.1 一键部署
- 点击项目文档,一键部署到Vercel https://wr.do/docs/developer/deploy-zh
这里也需要Vercel 连接上 Github
- 这里会授权成功后,需要手动写一个仓库名称,这里会fork原仓库。我直接使用域名作为仓库名称。
- 此时需要填入必须的变量,如果你提前记录好的话,现在直接搜索复制粘贴即可。
- 然后点击部署。肯定是不能使用的,点击部署后,先访问主页跳过。 https://vercel.com
-
绑定域名
-
展望一下这一步, 主页其实是可以访问了,但是,后台怎么也展示不出来。效果如下。
解决思路,这是忘记初始化数据库了,回到 2.2
3.2 配置后台登录
继续添加环境变量,配置好,2.4 节的认证服务后,就可以使用Google、Github、Linuxdo直接注册登录啦。
- 回到2.4 ,填写上述的环境变量到Vercel。
- 配置后,点击重新部署。
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 开始初始化。第一个注册的可以成为管理员。
3.5 域名管理,填写cf的全局API密钥、邮箱、区域ID
四、部署不仔细的问题
- 邮箱收不到,检查worker的配置,变量。查看日志解决。
- 邮件发不出去,检查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 + KV | Cloudflare Workers+ D1 | Cloudflare Workers |
🧰 特殊功能或亮点 | 动画 UI,Webhook | 支持发信+管理后+catch-all | 强大 UI、支持短链接、子域名管理 |
📜 附件支持 | ❌ | 🟡 一般 (可禁用) | 🟡 一般 |
🚀 部署难度 | 🟢 容易 | 🟢 容易 | 🟢 容易 |
🧪 活跃度(更新时间) | 🟢 活跃 | 🟢 较活跃 | 🟢 非常活跃 |
注: 附件超过1.5M会导致收不到邮件,原因是免费版的Cloudflare Worker的CPU运行时间有限制,不能处理大附件。
- 0
- 0
-
分享