一站式域名服务平台,集成短链生成、无限域名邮箱、文件存储和子域名管理,带有管理员面板,支持自部署
See the code🌟 推荐 Claude、OpenAI 稳定 API 网关:nbility.ai ,支持 claude-fable-5、gpt-5.6-sol 等主流 AI Coding 大模型🥳
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
查看开发者手把手部署教程文档。
部署前请先配置环境变量。修改容器运行时环境变量后,需要重建容器才会生效。
部署前设置 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 install
pnpm postinstall
pnpm db:push
pnpm bootstrap-admin
# 在 localhost:3000 上运行
pnpm dev
管理员使用 .env 中的 BOOTSTRAP_ADMIN_EMAIL 和 BOOTSTRAP_ADMIN_PASSWORD 初始化。AUTH_SECRET 必须是至少 32 字节的随机值。
查看 开发者文档.
本项目配置了与上游仓库 oiov/wr.do 的同步工作流,支持:
前往如何手动触发同步查看详细文档。
496 followers · starred Aug 2024
9,252 followers · starred Apr 2025
46 followers · starred Apr 2025
204 followers · starred Jul 2025
一站式域名服务平台,集成短链生成、无限域名邮箱、文件存储和子域名管理,带有管理员面板,支持自部署
See the code🌟 推荐 Claude、OpenAI 稳定 API 网关:nbility.ai ,支持 claude-fable-5、gpt-5.6-sol 等主流 AI Coding 大模型🥳
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
查看开发者手把手部署教程文档。
部署前请先配置环境变量。修改容器运行时环境变量后,需要重建容器才会生效。
部署前设置 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 install
pnpm postinstall
pnpm db:push
pnpm bootstrap-admin
# 在 localhost:3000 上运行
pnpm dev
管理员使用 .env 中的 BOOTSTRAP_ADMIN_EMAIL 和 BOOTSTRAP_ADMIN_PASSWORD 初始化。AUTH_SECRET 必须是至少 32 字节的随机值。
查看 开发者文档.
本项目配置了与上游仓库 oiov/wr.do 的同步工作流,支持:
前往如何手动触发同步查看详细文档。
496 followers · starred Aug 2024
9,252 followers · starred Apr 2025
46 followers · starred Apr 2025
204 followers · starred Jul 2025