Go Vanity URLs is a simple Go server that allows you to set custom import paths for your Go packages. It also can run on Google App Engine.
Install and run the binary:
$ go get -u github.com/GoogleCloudPlatform/govanityurls $ # update vanity.yaml $ govanityurls $ # open http://localhost:8080
Install gcloud and install Go App Engine component:
$ gcloud components install app-engine-go
Setup a custom domain for your app.
Get the application:
git clone https://github.com/GoogleCloudPlatform/govanityurls cd govanityurls
Edit vanity.yaml
to add any number of git repos. E.g., customdomain.com/portmidi
will serve the https://github.com/rakyll/portmidi repo.
paths: /portmidi: repo: https://github.com/rakyll/portmidi
You can add as many rules as you wish.
Deploy the app:
$ gcloud app deploy
That's it! You can use go get
to get the package from your custom domain.
$ go get customdomain.com/portmidi
You can also deploy this as an App Engine Flexible app by changing the app.yaml
file:
runtime: go env: flex
This project is a normal Go HTTP server, so you can also incorporate the handler into larger Go servers.
host: example.com cache_max_age: 3600 paths: /foo: repo: https://github.com/example/foo display: "https://github.com/example/foo https://github.com/example/foo/tree/master{/dir} https://github.com/example/foo/blob/master{/dir}/{file}#L{line}" vcs: git