Vanity Go Imports
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
John Olheiser c4be5e64b6 Add link to docs for vanity imports (#10) 6 days ago
api Shiny things (#8) 1 week ago
docker Update docker for Go 1.16 (#9) 1 week ago
flags Shiny things (#8) 1 week ago
router Shiny things (#8) 1 week ago
service Shiny things (#8) 1 week ago
.gitignore Vanity overhaul (#3) 6 months ago
LICENSE Add license 6 months ago
Makefile Vanity overhaul (#3) 6 months ago Add link to docs for vanity imports (#10) 6 days ago
go.mod Shiny things (#8) 1 week ago
go.sum Shiny things (#8) 1 week ago
main.go Shiny things (#8) 1 week ago
vanity.service Vanity overhaul (#3) 6 months ago


A simple web service to serve vanity Go imports. Feel free to check it out using my instance.

Vanity also supports git-import.


When choosing a service, the default base-url will be the default server of that service:

Service Default
   vanity - Vanity Go Imports

   vanity [global options] command [command options] [arguments...]


   help, h  Shows a list of commands or help for one command

   --config value     Path to a config file [$VANITY_CONFIG]
   --port value       Port to run the vanity server on (default: 7777) [$VANITY_PORT]
   --domain value     Vanity domain, e.g. go.domain.tld [$VANITY_DOMAIN]
   --service value    Service type (Gitea, GitHub, GitLab) (default: "gitea") [$VANITY_SERVICE]
   --base-url value   Base URL to service [$VANITY_BASE_URL]
   --namespace value  Owner namespace [$VANITY_NAMESPACE]
   --token value      Access token [$VANITY_TOKEN]
   --include value    Repository names to include (regex) [$VANITY_INCLUDE]
   --exclude value    Repository names to exclude (regex) [$VANITY_EXCLUDE]
   --private          Include private repositories (default: false) [$VANITY_PRIVATE]
   --fork             Include forked repositories (default: false) [$VANITY_FORK]
   --mirror           Include mirrored repositories (default: false) [$VANITY_MIRROR]
   --archive          Include archived repositories (default: false) [$VANITY_ARCHIVE]
   --override value   Repository name to override (NAME=OVERRIDE) [$VANITY_OVERRIDE]
   --interval value   Interval between updating repositories (default: 15m0s) [$VANITY_INTERVAL]
   --debug            Debug logging (default: false) [$VANITY_DEBUG]
   --help, -h         show help (default: false)
   --version, -v      print the version (default: false)


docker run \
    --env VANITY_DOMAIN=go.domain.tld \
    --env VANITY_NAMESPACE=<jolheiser> \
    --env VANITY_TOKEN=<token> \
    --publish 80:7777 \
    --restart always


Certain modules may not align perfectly with their repository name.

Overrides are available via config or by setting an environment variable VANITY_OVERRIDE_PACKAGE=NAME

Config-only Mode

To run Vanity in config-only mode for packages, set --service to off.

Manual Mode

To run Vanity without automatic updating, use --manual.

When running with manual-mode, the provided button or /_/update endpoint can be used once every --interval.

Topic Lists

By setting --topics, anyone visiting the index page will see packages grouped by their topics.

Regardless of the setting, you can switch beteween list-view and topic-view with the provided button or changing the URL between ?format=list and ?format=topics.


In order to preserve namespaces for packages, Vanity's API uses the URL /_/{endpoint}

Vanity currently supports /_/status and /_/update, to get some status information and update the package cache respectively.