oiov/wr.do

一站式域名服务平台,集成短链生成、无限域名邮箱、文件存储和子域名管理,带有管理员面板,支持自部署

TypeScript

2,287

600 commits

updated Oct 7, 2026

See the code

README

WR.DO

一站式域名服务平台,集成短链服务、临时邮箱、子域名管理、文件存储和开放API接口。

官方站点 · 部署文档 · 反馈讨论 · English | 简体中文

Vercel Release Release GitHub Release
contributors star GitHub forks GitHub Issues or Pull Requests
GitHub Actions Workflow Status MIT

og-banner

🌟 推荐 Claude、OpenAI 稳定 API 网关:nbility.ai ,支持 claude-fable-5、gpt-5.6-sol 等主流 AI Coding 大模型🥳

版本说明

截图预览

功能列表

🔗 短链服务 - [功能列表]
  • 支持自定义短链
  • 支持生成自定义二维码
  • 支持密码保护链接
  • 支持设置过期时间
  • 支持访问统计(实时日志、地图等多维度数据分析)
  • 支持调用 API 创建短链
📮 域名邮箱服务 - [功能列表]
  • 支持创建自定义前缀邮箱
  • 支持过滤未读邮件列表
  • 可创建无限数量邮箱
  • 支持接收无限制邮件 (依赖 Cloudflare Email Worker)
  • 支持发送邮件(依赖 Resend)
  • 支持 Catch-All 配置
  • 支持 Telegram 推送(多频道/群组)
  • 支持调用 API 创建邮箱
  • 支持调用 API 获取收件箱邮件
🌐 子域名管理服务 - [功能列表]
  • 支持管理多 Cloudflare 账户下的多个域名的 DNS 记录
  • 支持创建多种 DNS 记录类型(CNAME、A、TXT 等)
  • 支持开启申请模式(用户提交、管理员审批)
  • 支持邮件通知管理员、用户域名申请状态
📂 文件存储服务 - [功能列表]
  • 支持多渠道(S3 API)云存储平台(Cloudflare R2、AWS S3、OSS等)
  • 支持单渠道多存储桶配置
  • 动态配置文件上传大小限制
  • 支持拖拽、批量、粘贴上传文件
  • 支持批量删除文件
  • 快捷生成文件短链、二维码
  • 支持部分文件在线预览内容
📡 开放接口服务 - [功能列表]
  • 支持调用 API 获取网站元数据
  • 支持调用 API 获取网站截图
  • 支持调用 API 生成网站二维码
  • 支持调用 API 将网站转换为 Markdown、Text
  • 支持生成用户 API Key,用于第三方调用开放接口
👑 管理员模块 - [功能列表]
  • 多维度图表展示网站状态
  • 域名服务配置(动态配置各项服务是否启用,包括短链、临时邮箱(收发邮件)
  • 用户列表管理(设置权限、分配使用额度、禁用用户等)
  • 动态配置登录方式 (支持 Google, GitHub, 邮箱验证, 账户密码, LinuxDO)
  • 短链管理(管理所有用户创建的短链)
  • 邮箱管理(管理所有用户创建的临时邮箱)
  • 子域名管理(管理所有用户创建的子域名)

技术栈

  • Next.js + React + TypeScript
  • Tailwind CSS 用于样式设计
  • Prisma ORM 作为数据库工具
  • Cloudflare 作为主要的云基础设施
  • Vercel 作为推荐的部署平台
  • Resend 作为邮件服务
  • Next-Intl 作为国际化支持

快速开始

查看开发者手把手部署教程文档。

自部署教程

部署前请先配置环境变量。修改容器运行时环境变量后,需要重建容器才会生效。

使用 Vercel 部署

Deploy with Vercel

部署前设置 DATABASE_URL、AUTH_URL 和随机的 AUTH_SECRET(使用 openssl rand -base64 32 生成)。如果没有可用管理员,还须设置 BOOTSTRAP_ADMIN_EMAIL 和 BOOTSTRAP_ADMIN_PASSWORD;构建时会自动初始化管理员。密码至少 16 位,含至少 8 种不同字符。

使用 Docker Compose 部署

官方镜像发布在 GitHub Container Registry:ghcr.io/oiov/wr.do/wrdo:main(也可使用 latest)。无需在服务器上构建镜像。

Docker 镜像在构建时从 npm 自动获取 GeoLite2 City 数据库,用于补齐短链访客地理信息;无需 MaxMind 账号或手动挂载。Vercel 不需要该数据库。更新方法和代理配置见部署文档。

在服务器中创建一个文件夹,下载仓库中的 docker-compose.yml 和 .env.example,将后者重命名为 .env:

- wrdo
  | - docker-compose.yml
  | - .env

准备好 PostgreSQL 数据库,在 .env 中填写 DATABASE_URL、AUTH_URL 和其他所需配置。使用 openssl rand -base64 32 生成 AUTH_SECRET。首次部署还须设置 BOOTSTRAP_ADMIN_EMAIL(个人邮箱)和至少 16 位的 BOOTSTRAP_ADMIN_PASSWORD;已有可用管理员的实例不需要填写这两项。然后拉取并启动镜像:

docker compose pull
docker compose up -d

修改 .env 中的服务端变量后,执行 docker compose up -d --force-recreate。镜像构建时不会注入任何部署者的 GitHub Secrets;DATABASE_URL、AUTH_SECRET 等实例专属配置由容器启动时提供。

首次管理员创建成功后,从 .env 移除 BOOTSTRAP_ADMIN_PASSWORD 并重新创建容器。升级时,仍使用出厂密码的 admin@admin.com 会被停用;已修改密码的账号不受影响。如果没有其他可用管理员,升级前先配置上述两项初始化凭据。不要随意更换已有实例的 AUTH_SECRET,否则现有登录会话会失效。

注意:Next.js 会将客户端使用的 NEXT_PUBLIC_* 变量在构建时写入浏览器代码。预构建的公共镜像无法通过容器启动时的 .env 更改这些客户端值;如果部署需要自定义站点 URL、名称或其他客户端配置,需要从源码构建并在执行 pnpm run build 前提供这些变量。目前不能保证仅靠公共镜像完成这些客户端配置。

本地开发

将 .env.example 复制为 .env 并填写必要的环境变量。

git clone https://github.com/oiov/wr.do
cd wr.do
pnpm install

初始化数据库

pnpm postinstall
pnpm db:push
pnpm bootstrap-admin
# 在 localhost:3000 上运行
pnpm dev

管理员使用 .env 中的 BOOTSTRAP_ADMIN_EMAIL 和 BOOTSTRAP_ADMIN_PASSWORD 初始化。AUTH_SECRET 必须是至少 32 字节的随机值。

环境变量

查看 开发者文档.

Fork 仓库同步

本项目配置了与上游仓库 oiov/wr.do 的同步工作流,支持:

  • 🔄 手动触发同步 - 默认关闭自动同步,完全控制同步时机
  • 💬 同步后自动评论 - 在相关 commit 上添加详细的同步信息
  • 🚨 智能错误处理 - 同步失败时自动创建详细的 Issue
  • 🧹 自动清理通知 - 自动关闭之前的同步失败 Issue

前往如何手动触发同步查看详细文档。

社区群组

贡献者

Star History

Star History Chart

开源协议

MIT

all-in-one
allinone
docker
docker-compose
email-receiver
email-sender
nextjs
short-link
subdomain-managment

oiov/wr.do

一站式域名服务平台,集成短链生成、无限域名邮箱、文件存储和子域名管理,带有管理员面板,支持自部署

TypeScript

2,287

600 commits

updated Oct 7, 2026

See the code

README

WR.DO

一站式域名服务平台,集成短链服务、临时邮箱、子域名管理、文件存储和开放API接口。

官方站点 · 部署文档 · 反馈讨论 · English | 简体中文

Vercel Release Release GitHub Release
contributors star GitHub forks GitHub Issues or Pull Requests
GitHub Actions Workflow Status MIT

og-banner

🌟 推荐 Claude、OpenAI 稳定 API 网关:nbility.ai ,支持 claude-fable-5、gpt-5.6-sol 等主流 AI Coding 大模型🥳

版本说明

截图预览

功能列表

🔗 短链服务 - [功能列表]
  • 支持自定义短链
  • 支持生成自定义二维码
  • 支持密码保护链接
  • 支持设置过期时间
  • 支持访问统计(实时日志、地图等多维度数据分析)
  • 支持调用 API 创建短链
📮 域名邮箱服务 - [功能列表]
  • 支持创建自定义前缀邮箱
  • 支持过滤未读邮件列表
  • 可创建无限数量邮箱
  • 支持接收无限制邮件 (依赖 Cloudflare Email Worker)
  • 支持发送邮件(依赖 Resend)
  • 支持 Catch-All 配置
  • 支持 Telegram 推送(多频道/群组)
  • 支持调用 API 创建邮箱
  • 支持调用 API 获取收件箱邮件
🌐 子域名管理服务 - [功能列表]
  • 支持管理多 Cloudflare 账户下的多个域名的 DNS 记录
  • 支持创建多种 DNS 记录类型(CNAME、A、TXT 等)
  • 支持开启申请模式(用户提交、管理员审批)
  • 支持邮件通知管理员、用户域名申请状态
📂 文件存储服务 - [功能列表]
  • 支持多渠道(S3 API)云存储平台(Cloudflare R2、AWS S3、OSS等)
  • 支持单渠道多存储桶配置
  • 动态配置文件上传大小限制
  • 支持拖拽、批量、粘贴上传文件
  • 支持批量删除文件
  • 快捷生成文件短链、二维码
  • 支持部分文件在线预览内容
📡 开放接口服务 - [功能列表]
  • 支持调用 API 获取网站元数据
  • 支持调用 API 获取网站截图
  • 支持调用 API 生成网站二维码
  • 支持调用 API 将网站转换为 Markdown、Text
  • 支持生成用户 API Key,用于第三方调用开放接口
👑 管理员模块 - [功能列表]
  • 多维度图表展示网站状态
  • 域名服务配置(动态配置各项服务是否启用,包括短链、临时邮箱(收发邮件)
  • 用户列表管理(设置权限、分配使用额度、禁用用户等)
  • 动态配置登录方式 (支持 Google, GitHub, 邮箱验证, 账户密码, LinuxDO)
  • 短链管理(管理所有用户创建的短链)
  • 邮箱管理(管理所有用户创建的临时邮箱)
  • 子域名管理(管理所有用户创建的子域名)

技术栈

  • Next.js + React + TypeScript
  • Tailwind CSS 用于样式设计
  • Prisma ORM 作为数据库工具
  • Cloudflare 作为主要的云基础设施
  • Vercel 作为推荐的部署平台
  • Resend 作为邮件服务
  • Next-Intl 作为国际化支持

快速开始

查看开发者手把手部署教程文档。

自部署教程

部署前请先配置环境变量。修改容器运行时环境变量后,需要重建容器才会生效。

使用 Vercel 部署

Deploy with Vercel

部署前设置 DATABASE_URL、AUTH_URL 和随机的 AUTH_SECRET(使用 openssl rand -base64 32 生成)。如果没有可用管理员,还须设置 BOOTSTRAP_ADMIN_EMAIL 和 BOOTSTRAP_ADMIN_PASSWORD;构建时会自动初始化管理员。密码至少 16 位,含至少 8 种不同字符。

使用 Docker Compose 部署

官方镜像发布在 GitHub Container Registry:ghcr.io/oiov/wr.do/wrdo:main(也可使用 latest)。无需在服务器上构建镜像。

Docker 镜像在构建时从 npm 自动获取 GeoLite2 City 数据库,用于补齐短链访客地理信息;无需 MaxMind 账号或手动挂载。Vercel 不需要该数据库。更新方法和代理配置见部署文档。

在服务器中创建一个文件夹,下载仓库中的 docker-compose.yml 和 .env.example,将后者重命名为 .env:

- wrdo
  | - docker-compose.yml
  | - .env

准备好 PostgreSQL 数据库,在 .env 中填写 DATABASE_URL、AUTH_URL 和其他所需配置。使用 openssl rand -base64 32 生成 AUTH_SECRET。首次部署还须设置 BOOTSTRAP_ADMIN_EMAIL(个人邮箱)和至少 16 位的 BOOTSTRAP_ADMIN_PASSWORD;已有可用管理员的实例不需要填写这两项。然后拉取并启动镜像:

docker compose pull
docker compose up -d

修改 .env 中的服务端变量后,执行 docker compose up -d --force-recreate。镜像构建时不会注入任何部署者的 GitHub Secrets;DATABASE_URL、AUTH_SECRET 等实例专属配置由容器启动时提供。

首次管理员创建成功后,从 .env 移除 BOOTSTRAP_ADMIN_PASSWORD 并重新创建容器。升级时,仍使用出厂密码的 admin@admin.com 会被停用;已修改密码的账号不受影响。如果没有其他可用管理员,升级前先配置上述两项初始化凭据。不要随意更换已有实例的 AUTH_SECRET,否则现有登录会话会失效。

注意:Next.js 会将客户端使用的 NEXT_PUBLIC_* 变量在构建时写入浏览器代码。预构建的公共镜像无法通过容器启动时的 .env 更改这些客户端值;如果部署需要自定义站点 URL、名称或其他客户端配置,需要从源码构建并在执行 pnpm run build 前提供这些变量。目前不能保证仅靠公共镜像完成这些客户端配置。

本地开发

将 .env.example 复制为 .env 并填写必要的环境变量。

git clone https://github.com/oiov/wr.do
cd wr.do
pnpm install

初始化数据库

pnpm postinstall
pnpm db:push
pnpm bootstrap-admin
# 在 localhost:3000 上运行
pnpm dev

管理员使用 .env 中的 BOOTSTRAP_ADMIN_EMAIL 和 BOOTSTRAP_ADMIN_PASSWORD 初始化。AUTH_SECRET 必须是至少 32 字节的随机值。

环境变量

查看 开发者文档.

Fork 仓库同步

本项目配置了与上游仓库 oiov/wr.do 的同步工作流,支持:

  • 🔄 手动触发同步 - 默认关闭自动同步,完全控制同步时机
  • 💬 同步后自动评论 - 在相关 commit 上添加详细的同步信息
  • 🚨 智能错误处理 - 同步失败时自动创建详细的 Issue
  • 🧹 自动清理通知 - 自动关闭之前的同步失败 Issue

前往如何手动触发同步查看详细文档。

社区群组

贡献者

Star History

Star History Chart

开源协议

MIT

all-in-one
allinone
docker
docker-compose
email-receiver
email-sender
nextjs
short-link
subdomain-managment

Significant stargazers

0xflotus

496 followers · starred Aug 2024

yetone

9,252 followers · starred Apr 2025

Chongyi Zheng

46 followers · starred Apr 2025

samzong

204 followers · starred Jul 2025