maxnilz / govanityurls

Use a custom domain in your Go import path, forked & modified from gcp/govanityurls

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Go Vanity URLs

Go Vanity URLs is a simple App Engine Go app that allows you to set custom import paths for your Go packages.

What's the difference between this repo and github.com/GoogleCloudPlatform/govanityurls

  • Remove the gcloud related part
  • Add a dockerfile so that we can use docker to deploy this app anywhere.
  • Modified the README.md, and removed the gcloud related part

Quickstart

Setup a custom domain for your app.

Get the application:

go get -u -d github.com/maxnilz/govanityurls
cd $(go env GOPATH)/src/github.com/maxnilz/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 with docker:

$ docker build -t govanityurls .
$ docker run -p 80:8080 -v $PWD/vanity.yaml:/etc/vanity.yaml -d govanityurls

Note: Based on the requirements, you might need to setup a proxy on port 80 which will redirect the traffic to the default listen port 8080

That's it! You can use go get to get the package from your custom domain.

$ go get customdomain.com/portmidi

This project is a normal Go HTTP server, so you can also incorporate the handler into larger Go servers.

Configuration File

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
Key Required Description
cache_max_age optional The amount of time to cache package pages in seconds. Controls the max-age directive sent in the Cache-Control HTTP header.
host optional Host name to use in meta tags. If omitted, uses the App Engine default version host or the Host header on non-App Engine Standard environments. You can use this option to fix the host when using this service behind a reverse proxy or a custom dispatch file.
paths required Map of paths to path configurations. Each key is a path that will point to the root of a repository hosted elsewhere. The fields are documented in the Path Configuration section below.

Path Configuration

Key Required Description
display optional The last three fields of the go-source meta tag. If omitted, it is inferred from the code hosting service if possible.
repo required Root URL of the repository as it would appear in go-import meta tag.
vcs required if ambiguous If the version control system cannot be inferred (e.g. for Bitbucket or a custom domain), then this specifies the version control system as it would appear in go-import meta tag. This can be one of git, hg, svn, or bzr.

About

Use a custom domain in your Go import path, forked & modified from gcp/govanityurls

License:Apache License 2.0


Languages

Language:Go 96.5%Language:Dockerfile 3.5%