安装
Linux & macOS
curl -fsSL gomodvanityurls.com/install.sh | bash
也可以从 最新版本 下载二进制文件。
Windows
根据你的 shell 环境选择安装方式:
方式 A — Git Bash / MSYS2 / Cygwin(推荐):
打开你的 shell 终端,然后运行:
curl -fsSL gomodvanityurls.com/install.sh | bash
脚本会自动检测 Windows 环境并下载正确的 .exe 二进制文件。
方式 B — WSL/WSL2:
打开 WSL 终端,然后运行:
curl -fsSL gomodvanityurls.com/install.sh | bash
方式 C — Scoop(PowerShell / CMD):
scoop bucket add gomodvanityurls https://github.com/gomodvanityurls/scoop-bucket
scoop install gvu
Scoop 会自动配置 PATH。运行 gvu --version 验证安装。
方式 D — PowerShell / CMD(手动下载):
从 最新版本 下载 gvu-windows-amd64.exe(ARM 设备下载 gvu-windows-arm64.exe),重命名为 gvu.exe,并将其所在目录添加到 PATH。
添加 vanity URL
使用 gomod.io(默认域名,无需配置)
$ gvu add gomod.io/private-module https://github.com/yourorg/private-module.git
✔ Route created successfully!
═══════════════════════════════════════════════════════════
┃ Route ID: m_abc123
┃ Vanity Path: gomod.io/private-module
┃ Target Repo: https://github.com/yourorg/private-module.git
┃ Quota: 1 / 5 used
═══════════════════════════════════════════════════════════
系统会自动创建匿名账户,无需注册。
Monorepo 子目录支持(Go 1.25+)
如果你的仓库包含多个子目录下的 Go 模块(如 go/module-a/go.mod),使用 --subdir 指定模块在仓库中的位置:
gvu add gomod.io/module-a https://github.com/yourorg/monorepo.git --subdir go/module-a
┃ Route ID: m_def456
┃ Vanity Path: gomod.io/module-a
┃ Target Repo: https://github.com/yourorg/monorepo.git
┃ Subdir: go/module-a
然后在代码中使用:
import "gomod.io/module-a"
Go 1.25+ 工具链会 clone https://github.com/yourorg/monorepo 并读取 go/module-a/go.mod。Go < 1.25 版本会静默忽略 subdir 字段(向后兼容)。
主版本支持(v2、v3……)
路由自动支持 Go module 的主版本后缀,只需添加基础路由即可,无需为 /v2、/v3 等单独设置。
# 这一条路由同时支持 /v2、/v3 及未来的任意主版本
gvu add gomod.io/mylib https://github.com/yourorg/mylib.git
以下 import 无需额外配置即可正常工作:
import "gomod.io/mylib" // v0 或 v1
import "gomod.io/mylib/v2" // v2
import "gomod.io/mylib/v3" // v3
通配路由(仅 Pro)
如果同一组织或前缀下有很多仓库,通配路由让你用一条规则覆盖所有仓库:
# 覆盖 go.mycorp.com/dept1/ 下的所有仓库
gvu add 'go.mycorp.com/dept1/*' 'https://github.com/dept1/*.git'
需要 Pro 账户和自定义域名。详见通配路由。
使用自定义域名(需要 Verified 账户)
# 第一步:创建匿名账户(快速,无需邮箱)
gvu auth signup
# 第二步:绑定邮箱,升级为 Verified 账户
gvu auth bind user@example.com
# 输入发送到邮箱的 6 位验证码
# 第三步:配置 DNS 解析(必须在添加路由前完成)
# go.yourcompany.com CNAME gomodvanityurls.com
# 第四步:添加自定义域名路由
gvu add go.yourcompany.com/private-module https://github.com/yourorg/private-module.git
配置 Go 环境
告诉 Go 工具链直接解析你的 vanity 路径:
export GOPRIVATE=gomod.io
# 如果有自定义域名,也加上:
export GOPRIVATE=gomod.io,go.yourcompany.com
将上述命令添加到 ~/.bashrc 或 ~/.zshrc 中以持久化配置。
使用
import "gomod.io/private-module"
import "go.yourcompany.com/private-module"
Go 工具链会自动将 vanity 路径解析到你的 Git 仓库。如果将来迁移代码仓库,用户的导入路径保持不变。
module path 必须与 vanity URL 一致。
你的模块
go.mod必须使用 vanity URL 作为 module path,而不是原始的 Git 托管地址。例如:// go.mod — 正确 module gomod.io/private-module // go.mod — 错误(会导致导入解析失败) module github.com/yourorg/private-module如果你的现有模块使用
github.com/...或gitlab.com/...作为 module path,请在发布前将其更新为 vanity URL。
管理路由
# 列出你的路由
gvu list
# 删除路由
gvu remove m_abc123
# 批量删除
gvu remove m_abc123 m_def456 -y
# 查看账户信息
gvu auth whoami