通过分析缩短链接、管理电子邮件和控制子域 —— 所有这些都在一个平台上完成。

项目地址:https://github.com/oiov/wr.do

简介

WR.DO 是一个一站式网络工具平台,集成短链服务、临时邮箱、子域名管理和开放 API 接口。支持自定义链接、密码保护、访问统计;提供无限制临时邮箱收发;管理多域名 DNS 记录;内置网站截图、元数据提取等实用 API。完整的管理后台,支持用户权限控制和服务配置。

功能列表

  • :link: 短链服务
    • 支持自定义短链
    • 支持生成自定义二维码
    • 支持密码保护链接
    • 支持设置过期时间
    • 支持访问统计(实时日志、地图等多维度数据分析)
    • 支持调用 API 创建短链
  • :postbox: 临时邮箱服务
    • 支持创建自定义前缀邮箱
    • 支持过滤未读邮件列表
    • 可创建无限数量邮箱
    • 支持接收无限制邮件 (依赖 Cloudflare Email Worker)
    • 支持发送邮件(依赖 Resend)
    • 支持调用 API 创建邮箱
    • 支持调用 API 获取收件箱邮件
  • :globe_with_meridians: 子域名管理服务
    • 支持管理多 Cloudflare 账户下的多个域名的 DNS 记录
    • 支持创建多种 DNS 记录类型(CNAME、A、TXT 等)
  • :satellite_antenna: 开放接口模块
    • 获取网站元数据 API
    • 获取网站截图 API
    • 生成网站二维码 API
    • 将网站转换为 Markdown、Text
    • 支持所有类型 API 调用统计日志
    • 支持生成用户 API Key,用于第三方调用开放接口
  • :locked: 管理员模块
    • 多维度图表展示网站状态
    • 域名服务配置(动态配置各项服务是否启用,包括短链、临时邮箱(收发邮件)、子域名管理)
    • 用户列表管理(设置权限、分配使用额度、禁用用户等)
    • 短链管理(管理所有用户创建的短链)
    • 邮箱管理(管理所有用户创建的临时邮箱)
    • 子域名管理(管理所有用户创建的子域名)

截图预览

Vercel 的部署方式

:toolbox: 前置准备

  1. 一个 GitHub 账号 :backhand_index_pointing_right: https://github.com
  2. 一个 Vercel 账号 :backhand_index_pointing_right: https://vercel.com (也可以直接使用 GitHub 直接登录)
  3. .env 中的坏境变量

演示站点

:gear: 坏境变量获取

数据库 DATABASE_URL 环境变量获取

  1. 数据库环境变量,这里我使用的是 Neon
  2. 没有账号的点进去注册好账号后点击 New project 创建一个数据库

 

 

  1. 创建好后点击 Connect 就可以看见连接信息,记得把下面的眼睛打开在复制哦

 

 

配置身份验证服务

Github 获取认证方式

  1. 点击链接按照以下方式创建

 

 

 

 

GITHUB_ID = your_secret_client_id;
GITHUB_SECRET = your_secret_client;

Linux.do 获取认证方式

  1. 打开 Linux.do 后,点击我的应用接入点击申请新接入,然后保存

 

 

LinuxDo_CLIENT_ID=
LinuxDo_CLIENT_SECRET=

电子邮件验证配置

  1. 创建一个帐户
  2. 如果您没有 Resend 帐户,请在此处注册后按照他们的步骤操作。
  3. 创建好后点击 Domains 右上角的 + ADD Domain ,然后输入你打算做域名邮箱的域名,添加好后解析以下 DNS 即可

 

 

  1. 等解析成功点击左边的的 API keys 创建你的密钥即可

 

 

RESEND_API_KEY=re_your_resend_api_key;
RESEND_FROM_EMAIL="[email protected]"

添加 GITHUB_TOKEN 环境变量

  1. 通过 Sign in to GitHub · GitHub 获取您的令牌。创建好后点击就会看到 Token 了

 

 

GITHUB_TOKEN=ghp_

CFR2 变量获取前提你已开通 R2,开通后按照以下步骤获取

  1. 点击 CF 网站左边的 R2 对象存储,概述,然后创建存储桶

 

 

  1. 点击设置常规下面的自定义域

 

 

NEXT_PUBLIC_EMAIL_R2_DOMAIN = 你添加的自定义域名

.env 文件

环境变量 描述
NEXT_PUBLIC_APP_URL 你的网站 URL The URL of the Next.js application.
AUTH_SECRET 222222 The secret used to encrypt tokens and email verification hashes.
AUTH_URL http://localhost:3000 NextAuth.js callback URL。
DATABASE_URL postgres://username:password@host:port/database The path to the database.
GOOGLE_CLIENT_ID 222222 The ID of the Google OAuth client.
GOOGLE_CLIENT_SECRET 222222 The secret of the Google OAuth client.
GITHUB_ID 222222 The ID of the GitHub OAuth client.
GITHUB_SECRET 222222 The secret of the GitHub OAuth client.
RESEND_API_KEY re_ The API key for Resend.
RESEND_FROM_EMAIL "[email protected]" The email address to send emails from.
NEXT_PUBLIC_OPEN_SIGNUP 1 Open signup.
NEXT_PUBLIC_ENABLE_SUBDOMAIN_APPLY 0 Enable subdomain apply.
SCREENSHOTONE_BASE_URL https://api.example.com pending

:rocket: 一键部署到 Vercel(推荐)

Deploy with Vercel

 

 

你也可以直接去仓库 Fork ,这样更新方便

Fork 后填写以下变量

DATABASE_URL = 数据库URL
NEXT_PUBLIC_APP_URL = 主网站URL
GITHUB_ID = 前面获取的
GITHUB_SECRET = 前面获取的
GITHUB_TOKEN = 前面获取的
AUTH_SECRET = 主网站URL
RESEND_API_KEY = 邮件API keys
NEXT_PUBLIC_EMAIL_R2_DOMAIN = CFR2域名或者R2存储桶自定义域名
NEXT_PUBLIC_OPEN_SIGNUP = 1
SKIP_DB_CHECK = false
SKIP_DB_MIGRATION = alse

进入网站设置

  1. 设置系统
  2. 创建第一个帐户并将帐户角色更改为 ADMIN
  3. 请按照以下步骤操作:

 

 

 

 

添加一个域开始使用短链接、电子邮件或子域管理功能

 

 

  1. 点击网站左边 ADMIN 下的 Domains 点击右边的 + Add Domain
  2. Zone ID 获取,打开 Cloudflare 官网进入你的域名下,右边的 API 下面的区域 ID 就是你的 Zone ID

 

 

  1. API Token 获取
  • 点击右上方的配置文件,点击左边的 API 令牌,查看你的 API 密钥

 

 

  1. Account Email 就是你注册 Cloudflare 的邮箱 ,可以在 API 令牌上面的设置中看到

这样我们的配置就完成了。需要开启接收邮件我们还需要部署一个 Worker 。


Worker 配置的方式。

  1. 打开 GitHub 链接 Fork 到你的 Github 下面
  2. 回到 Cloudflare 官网点击 Worker 和pages 点击 创建导入存储库的方式选择 Fork 的电子邮件项目,点击保存和部署

也可以不用 pnpm install 这个构建命令,直接加好变量部署即可。

 

 

 

 

  1. 在你的域名下面找到电子邮件启用电子邮件路由,点击跳过指南。点击启动电子邮件路由然后点击下面的添加记录并启用
  2. 找到路由规则点击后面的启用,打开编辑设置

 

 

  1. 这是我们搭建好的收到邮件的界面

 

 

  1. 如遇收不到邮件的问题可以在 Vercel 添加一个别的域名,比如 mi.231110.xyz,记得把 Worker 的 URL 也改成你这个。

这样邮件设置就完成了

本教程只适用于本版本的搭建和部署,至于后面升级部署的方式请自行探索。谢谢

THE END