Hi Go community,

I’d like to share a small tool I built called *gvu*, designed to simplify 
vanity import paths for private Go modules.
*The Problem*

When setting up vanity import paths (e.g., mycompany.com/go/common instead 
of github.com/mycompany/common), Go relies on fetching the HTML go-import meta 
tag from your server (https://mycompany.com/go/common?go-get=1).

Traditionally, solving this for private modules involves running something 
like govanityurls behind Nginx, managing TLS certificates, and updating 
YAML configurations every time a team creates a new repo. While not 
difficult, it adds maintenance overhead and friction—especially across 
multiple teams or client projects.
*What gvu does*

gvu handles the vanity redirect/meta-tag layer as a lightweight hosted 
service, eliminating the need to self-host Nginx or manage certs manually:
codeBash
gvu add gomod.io/mymodule https://github.com/your-org/mymodule.git

You can also attach custom domains for free via CNAME verification.
*Important Technical Details & Trade-offs*
   
   - 
   
   *Not a GOPROXY:* gvu only serves the go-import HTML meta tag. It does 
   not proxy, store, or cache your code. The actual git clone / go get 
authentication 
   happens directly between your local machine/CI and your Git provider 
   (GitHub, GitLab, etc.).
   - 
   
   *Hosted vs Self-hosted:* Using gvu means trusting a third-party mapping 
   service ("path X redirects to repo Y"). If your organization's policy 
   requires 100% self-hosted infrastructure, standard govanityurls remains 
   the better choice.
   - 
   
   *Pricing:* Free for up to 5 routes anonymously (10 with a free account). 
   Paid tiers exist for larger teams needing custom domains at scale.
   
*Installation & Links*

You can install the CLI via :
codeBash
curl -fsSL gomodvanityurls.com/install.sh | bash

Website: https://gomodvanityurls.com 
<https://www.google.com/url?sa=E&q=https%3A%2F%2Fgomodvanityurls.com>

I’d love to hear feedback from anyone managing private Go 
infrastructure—does this solve a real pain point for your workflow, or are 
there specific features/integrations you'd expect before adopting a tool 
like this?

Thanks,
Tony Bai

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/golang-nuts/b343a729-87f6-40ea-bd21-799b23fa34fdn%40googlegroups.com.

Reply via email to