云原生时代,任何折腾都离不开域名、邮件和对象云存储。尤其是当 NAS + docker 把云原生场景从线上搬到每个人的家里后,人人都可以在满足自身存储需求的基础上,扩展出更多的用途。
曾经有粉丝问我有没有集成度比较高的网络工具,可以一站式的解决域名、邮件、存储的管理功能,并且提供可视化面板和数据分析。
最近,我找到了在 github 上有 1.9k stars 的一款域名集成工具—— WR.DO。它具有带有分析功能的短链接、临时电子邮件服务、子域管理、用于屏幕截图和元数据提取的开放 API,以及全面的管理仪表板。
项目特征:
🔗 短链接服务
- 自定义短链接生成
- 自定义二维码
- 受密码保护的链接
- 过期时间控制
- 访问分析(实时日志、地图和多维数据分析)
📮 电子邮件服务
- 创建自定义前缀电子邮件
- 无限创建邮箱
- 接收无限封电子邮件(由 Cloudflare Email Worker 提供支持)
- 发送电子邮件(由 Ressend 提供支持)
- 支持包罗万象的电子邮件
- 支持推送到电报群
🌐 子域名管理服务
- 管理多个 Cloudflare 帐户和域中的
- DNS 记录
- 创建各种
- DNS 记录类型(CNAME、A、TXT 等)
💳 云存储服务
- 连接到多个通道 (S3 API)
- 云存储平台(Cloudflare R2、AWS S3)
📡 开放 API 模块
⭐部署机
本次部署,我们使用绿联 DXP4800 Plus 为部署设备。绿联 DXP4800 Plus 采用 Intel 8505 处理器,拥有 5 核 6 线程的处理能力,无论是 CPU 还是核显性能,都比 N100 等处理器要强上不少。
最关键的是 DXP4800 Plus 拥有一个万兆网口,对于家用万兆局域网来说提升巨大,可以说是想要一劳永逸解决 NAS 使用用户的首选型号。
一、绿联部署 wr.do 教程
在绿联 UGOS 中,无论多复杂的 docker 应用,我们都可以通过 docker compose 一键部署。
选择 docker—项目,输入名字后,UGOS Pro 系统会自动帮你生成对应的 docker 应用文件目录,并且创建对应的标准环境变量,确保容器内外用户权限的一致性。
我们需要做的,就是将下面的 compose.yaml 代码复制进入部署。
services:
app:
image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/oiov/wr.do/wrdo:main
container_name: wrdo
ports:
- "3000:3000"
environment:
# App 配置
NODE_ENV: production
NEXT_PUBLIC_APP_URL: http://你的域名:3000
NEXT_PUBLIC_APP_NAME: WR.DO
# 数据库配置
DATABASE_URL: postgres://wrdo:wrdo@postgres:5432/wrdo
# 认证配置
AUTH_SECRET: 03bc31554492693bf4b559b59f4a5989
AUTH_URL: http://你的域名:3000
# 其他服务配置
SCREENSHOTONE_BASE_URL: https://shot.wr.do
GITHUB_TOKEN:
SKIP_DB_CHECK: false
SKIP_DB_MIGRATION: false
networks:
- wrdo-network
restart: unless-stopped
depends_on:
- postgres
postgres:
image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/postgres:latest
container_name: wrdo-postgres
environment:
POSTGRES_USER: wrdo
POSTGRES_PASSWORD: wrdo
POSTGRES_DB: wrdo
volumes:
- ./postgres-data:/var/lib/postgresql/data
networks:
- wrdo-network
restart: unless-stopped
networks:
wrdo-network:
driver: bridge
如果之前没有用过 docker,或者没有设置过代理无法下载镜像的。8 月更新后的 UGOS Pro 支持内置镜像加速推荐,可以自动推荐低延迟、高速度的镜像下载加速器,入口在:镜像-设置-加速器配置中。
点击添加,会自动推荐毫秒级加速镜像库,无论新手或者老手,都能最快速的解决 docker 镜像下载的困难。
🔻compose.yaml 代码
二、wr.do 配置教程
项目部署完成以后,在绿联云的 Docker 页面,我们可以通过快捷访问功能来打开 wr.do 的 web 页面。绿联私有云的快捷访问功能,支持将 docker 端口转发为绿联官方的三级域名,让我们快捷、方便的使用。
系统的默认管理员账号密码是 admin@admin.com/123456。接下来,我们继续完成 cloudfalre 和 resend 的设置。
1、Cloudflare 端
首先注册一个 Cloudflare 的账号,然后注册域名并且增加 DNS 解析,绑定到绿联私有云里。这一点操作和 DDNS 是一样的,这里就不赘述了。
后续所有的服务,都需要基于将 NAS 的公网 IP 域名绑定到 Cloudflare 为基础。
接着,我们需要获取 Cloudflare 里的区域 ID、API 密钥和账号,用于后续的子域名管理。下图提供了很详细的参数获取方法。
也可以参照我这份图标,进入具体的域名内,右侧可以看到区域 ID。
点击下方的 API 令牌,可以转跳到用户 API 令牌页面,选择下方的 Global API Key。
2、Resend 端
Resend 主要的作用就是发送邮件,具体的实现原理我在之前的 post.io 项目中有过详细的介绍。
同样的,我们需要先在 Domains 标签下,增加刚才添加到 Cloudflare 的域名,选择节点后,将邮件 DNS 解析自动添加到 Cloudflare 里。
Resend 会弹出 Cloudflare 的校验,输入账号密码后授权自动添加,十分简单无脑。
配置成功以后,回到 Resend 页面可以看到所有的解析都是绿色的完成状态。
最后,选择左侧的 API Keys,新建一个 API key 备用。
3、校验服务配置
回到 wr.do 的管理员标签页下,我们在这里可以配置主域名、云存储桶(R2、COS),可以设置邮件和子域名的配置。免费版本,最多添加 2 个主域名。
添加域名的时候,一般填写无前缀的二级域名,然后按需开启服务功能。比较核心的是下方的 Cloudflare、Resend 配置,分别填入前面介绍的几个部分就行了。
完成后,我们可以进行验证配置,全部提示已就绪说明配置无误。
三、wr.do 功能简介及邮件收发教程
1、短链功能
短链功能,指的是将一个复杂的、长度较多的域名,以小尾巴的形式压缩成特殊字符串,然后通过个人域名进行分享。
比如,我将绿联私有云官方的地址,做成了域名下的短链,仅占用 5、6 个字符。并且短链转发支持用户密码鉴权、有效期等,和好兄弟分享内容的时候就不怕被人发现了
通过短链接访问的数据流量,在 wr.do 中都会有展示,甚至可以看到实时的网络访问流量,对于统计分类帮助很大。
2、子域名管理
子域名管理和 DNS 服务商标准服务是一样的,支持 A、CNAME、TXT 三种最常见的解析方式,支持开启 CF 小云朵。
在 wr.do 中,子域名管理的主要优势就是**集中**。此外,如果解析一直失败,超过 3 天后系统会自动删除解析记录,大大降低了我们的运维压力。
3、云存储
云存储和子域名类似,也是 wr.do 提供的一个集中管理功能。目前支持 Cloudflare R2、腾讯云 COS 两种对象存储服务,配置完成后,就可以直接在 wr.do 访问和管理。
4、邮件箱
邮件箱包含了接收、发送邮件的服务,支持我们创建自定义的邮箱,很适合不想暴露个人邮箱,又不得不使用邮件收发的用户。
在具体实现方法上:1.发送邮件使用的是 Resend 转发。2.接受邮件使用的是 Cloudflare 的 worders 接受邮件,用电子邮件路由转发,用 R2 存储邮件附件。
下面,具体介绍如何通过 Cloudflare 接受邮件,首先激活免费的 R2 对象存储桶(需要信用卡认证)。
接着,创建一个存储桶,存储桶名字为 nasmail。当然,也可以自定义修改,不过对应的要修改代码。
接着访问 coracoo/cf-email-forwarding-worker 这个项目,fork 到自己的账号下。
然后回到 Cf 的 workers 页面,创建一个新的 workers 工作。
选择从 git 导入存储库,并且完成 GitHub 授权。
仓库就是这个 cf-email-forwarding-worker 仓库。
最下方,增加一个变量 APP_API_URL,值就是 wr.do 的公网地址,格式为 https://绿联 NAS 的域名:端口/api/v1/email-catcher。
等待 workers 部署完成,我们切回到 cloudflare 的域名下,选择电子邮件—路由规则,在 Catch-all 地址下,新建一个自定义路由指向 workers。
同时,建议大家打开 DMARC 管理,可以降低被列为垃圾邮件的风险。
全部配置完成以后,我们来做一个邮件体验一下。我使用 wr.do 创建了一个自定义的邮件,然后发邮件到 QQ 邮箱,可以看到发件人信息是 wr.do 里配置的邮件,下方显示为 resend 代发。在 QQ 邮箱里,并没有被列入垃圾邮件,展示完成。
接着使用 QQ 邮箱进行回复,在 wr.do 中可以正常查收,并且可以打开附件。
所有的邮件服务,我们都是保存在了 Cloudflare R2 的存储桶里,注意一个邮件附件不能超过 15Mb,否则无法保存。之后我们将存储桶挂载到 wr.do 里就行了,这样就可以实现集中管理。
5、API 功能
除了应用功能外,wr.do 还有如网站截图、二维码转换、生成 markdown、元数据抓取等互联网 API 应用,主要是面向开发人员或者站长使用的。
总结
wr.do 项目本身的用途,基本囊括了互联网场景下最需要的 DNS、邮件、短链三大功能,白嫖 Cloudfalre 和 Resend 服务,结合 NAS 7*24 小时开机的特性,可以更方便的帮助我们扩展 NAS 作为个人家用服务器的应用场景。
绿联 UGOS Pro 本身,和 Cloudflare 也有很不错的交互。比如在 DDNS 解析功能下,可以将 NAS 本身的 ip 地址解析到 Cloudflare 中,大大提高我们 wr.do 对应的 API 服务