DIY 方案

Go 的 go-import meta 标签机制本身很简单。你在网页上放这么一行:

<meta name="go-import" content="go.yourcompany.com/user-svc git https://github.com/org/user-svc">

go get 就知道去哪里拉代码。听起来很简单——那为什么不直接手写几个 HTML 文件,用 Nginx 来提供服务呢?

很多团队一开始就是这么干的。接下来会发生什么,往下看。


问题出在哪里

痛点一:一个模块 = 一个 HTML 页面 + 一条 Nginx 规则

每个 vanity import path 都需要自己的 HTML 页面(包含正确的 meta 标签),加上 Nginx 的 location 块来处理 ?go-get=1 检测。5 个模块还管得过来,50 个模块就是 50 个 HTML 文件和 50 条 Nginx 规则。

痛点二:HTTPS 证书管理

你的 vanity 域名需要 HTTPS。这意味着要申请并自动续签 TLS 证书(Let’s Encrypt 之类),在 Nginx 中配置,还要监控过期时间。一张证书过期,所有模块的 go get 全部挂掉。

痛点三:没有管理界面

添加或删除路由意味着:SSH 登录服务器,编辑 HTML 文件,修改 Nginx 配置,跑 nginx -t,然后 reload。没有 CLI,没有 API,没有操作记录。

痛点四:go-source meta 标签写起来很烦

go-source meta 标签让源码浏览链接生效(pkg.go.dev 上的 “Source” 按钮)。每个标签都需要针对 GitHub、GitLab 或 Bitbucket 写正确的 URL 模板。50 个模块手写很容易出错。


逐项对比

维度手写 Meta 标签gvu
搭建时间数小时(Nginx + HTML + TLS)几分钟
单模块成本新建 HTML + Nginx 规则 + reloadgvu add 一条命令
HTTPS手动管理证书自动(on-demand TLS)
通配路由需要 rewrite 规则或模板一个 * 模式
go-source 标签每个模块手写自动识别 GitHub/GitLab/Bitbucket
主版本支持手动处理 /v2/v3自动
路由管理SSH + 文本编辑器CLI(gvu listgvu remove
运维负担服务器 + Nginx + 证书续签零(托管服务)
可用性取决于你的基础设施托管 SLA
成本服务器费用 + 你的时间免费套餐可用

什么时候适合 DIY

手写 meta 标签在以下场景是合理的选择:

  • 你只有 1–3 个模块,且不预期增长
  • 你的团队已经在跑带自动续签证书的 Nginx
  • 你喜欢折腾基础设施,追求完全掌控
  • 你在企业内网环境,不需要外部访问

除此之外,DIY 的维护成本会快速累积。


gvu 带来了什么

一条命令,零基础设施

gvu add go.yourcompany.com/auth https://github.com/org/auth-service

HTTPS 证书自动签发。go-source meta 标签自动生成。主版本(/v2/v3)自动处理。支持通配模式。不需要维护任何服务器。

通配路由:一条规则覆盖整个组织

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

新增仓库自动可导入——不用写 HTML,不用 reload Nginx。


开始使用

curl -fsSL gomodvanityurls.com/install.sh | bash
gvu add gomod.io/yourname/your-module https://github.com/your-org/your-module.git

永久免费,最多 5 条路由。无需注册。

查看所有对比 · 阅读文档