什么是 Vanity URL?

简单来说,Vanity URL 让你的 Go 模块拥有一个属于你自己的导入路径,而不是绑定在 GitHub/GitLab 的地址上。

// ❌ 冗长且绑定平台
import "github.com/your-org/your-project"

// ✅ 简洁、品牌化、与平台无关
import "go.yourcompany.com/your-project"

底层代码可以放在任何 Git 服务器上——GitHub、GitLab、Gitea、自建服务器都行。更换代码仓库时,import path 不需要任何改动。

这篇教程带你从零开始,30 秒搞定。


Step 1:安装 gvu(10 秒)

Linux / macOS:

curl -fsSL gomodvanityurls.com/install.sh | bash

Windows (PowerShell):

powershell -ExecutionPolicy ByPass -c "irm https://gomodvanityurls.com/install.ps1 | iex"

安装完成后验证:

$ gvu --version
gvu version 0.1.5 (built: 2026-07-09T10:00:00Z)

Step 2:添加你的第一个 Vanity URL(20 秒)

假设你有一个 GitHub 仓库 https://github.com/yourorg/awesome-lib,你想让它可以用 gomod.io/yourname/awesome-lib 来导入。

$ gvu add gomod.io/yourname/awesome-lib https://github.com/yourorg/awesome-lib.git

✔ Route created successfully!
═══════════════════════════════════════════════════════════
┃ Route ID:     m_abc123
┃ Vanity Path:  gomod.io/yourname/awesome-lib
┃ Target Repo:  https://github.com/yourorg/awesome-lib.git
┃ Quota:        1 / 5 used (4 slots remaining)
═══════════════════════════════════════════════════════════

搞定了。 一个匿名账户会自动创建,无需注册、无需邮箱、无需信用卡。

免费用户有 5 条路由。如果需要更多,绑定邮箱升级为 Verified 即可获得 10 条 + 1 个自定义域名:

$ gvu auth bind

Step 3:验证效果

在任何 Go 项目中试试:

$ go get gomod.io/yourname/awesome-lib
go: downloading gomod.io/yourname/awesome-lib v0.1.0
go: added gomod.io/yourname/awesome-lib v0.1.0

在代码中使用:

package main

import (
    "fmt"
    "gomod.io/yourname/awesome-lib"
)

func main() {
    fmt.Println(lib.Hello())
}

完美运行。


进阶一:使用你自己的域名

gomod.io 是免费共享域名,适合个人项目和快速体验。如果你想要更专业的品牌形象,可以使用自己的域名:

# 1. 添加 DNS CNAME 记录
#    go.yourcompany.com → gomodvanityurls.com

# 2. 添加路由
$ gvu add go.yourcompany.com/auth https://github.com/yourorg/auth-service.git

HTTPS 证书会自动签发,无需手动配置。

注意:自定义域名需要 Verified(绑定邮箱)或 Pro 计划。


进阶二:通配路由(Pro 功能)

如果你有一个 GitHub 组织,下面有 50 个仓库,你不想逐个添加路由?用一条通配规则搞定:

$ gvu add 'go.yourcompany.com/dept/*' 'https://github.com/yourorg/*.git'

这条规则会自动匹配:

请求的 import path实际拉取的仓库
go.yourcompany.com/dept/authgithub.com/yourorg/auth
go.yourcompany.com/dept/configgithub.com/yourorg/config
go.yourcompany.com/dept/loggergithub.com/yourorg/logger

新增仓库时无需任何操作——通配规则自动覆盖。


进阶三:主版本自动支持

Go 模块在 v2 及以上版本时,import path 需要带 /v2 后缀。gvu 自动处理这个:

# 你只需要添加基础路由
$ gvu add gomod.io/mylib https://github.com/yourorg/mylib.git

# v2、v3、v10... 全部自动支持
import "gomod.io/mylib"      # v0.x / v1.x
import "gomod.io/mylib/v2"   # v2.x
import "gomod.io/mylib/v3"   # v3.x

无需为每个版本单独创建路由。


常用命令速查

命令说明
gvu add <path> <repo>添加路由
gvu list查看所有路由
gvu remove <id>删除路由
gvu auth whoami查看账户和配额
gvu auth bind绑定邮箱升级为 Verified
gvu auth login用邮箱 OTP 登录(换设备时)
gvu subscribe升级到 Pro
gvu update更新 gvu 到最新版

下一步

你的 import path,应该由你说了算。