🌟 推荐 Claude、OpenAI 稳定 API 网关:nbility.ai ,支持 claude-fable-5、gpt-6-astra 等主流 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 作为国际化支持
查看开发者手把手部署教程文档。
部署前请先配置环境变量。修改容器运行时环境变量后,需要重建容器才会生效。
部署前设置 DATABASE_URL、AUTH_URL 和随机的 AUTH_SECRET(使用 openssl rand -base64 32 生成)。如果没有可用管理员,还须设置 BOOTSTRAP_ADMIN_EMAIL 和 BOOTSTRAP_ADMIN_PASSWORD;构建时会自动初始化管理员。密码至少 16 位,含至少 8 种不同字符。
官方镜像发布在 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 installpnpm postinstall
pnpm db:push
pnpm bootstrap-admin# 在 localhost:3000 上运行
pnpm dev管理员使用 .env 中的 BOOTSTRAP_ADMIN_EMAIL 和 BOOTSTRAP_ADMIN_PASSWORD 初始化。AUTH_SECRET 必须是至少 32 字节的随机值。
查看 开发者文档.
本项目配置了与上游仓库 oiov/wr.do 的同步工作流,支持:
- 🔄 手动触发同步 - 默认关闭自动同步,完全控制同步时机
- 💬 同步后自动评论 - 在相关 commit 上添加详细的同步信息
- 🚨 智能错误处理 - 同步失败时自动创建详细的 Issue
- 🧹 自动清理通知 - 自动关闭之前的同步失败 Issue
前往如何手动触发同步查看详细文档。
- Discord: https://uv.do/disc
- 微信群:
- Nbility Gen - AI 生图/视频媒体站
- AttachReady - 支持API与MCP调用的图片、PDF转换与处理工具集
- KeepVideo - YouTube、Instagram 等平台桌面视频下载器





