Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
101 lines (70 sloc) 2.19 KB

Go by Example

Content and toolchain for Go by Example.

Overview

The Go by Example site is built by extracting code & comments from source files in examples and rendering that data via the site templates. The programs implementing this build process are in tools.

The build process produces a directory of static files suitable for serving by any modern HTTP server. The Go by Example site is served by a lightweight Go server.

Building

To build the site:

$ tools/build
$ open public/index.html

To build continuously in a loop:

$ tools/build-loop

Builds require the pygmentize binary for syntax highlighting. We suggesting using the most recent version from Bitbucket with e.g.:

$ export PATH="$HOME/repos/pygments:$PATH"

Local Deploy

$ mkdir -p $GOPATH/src/github.com/mmcgrana
$ cd $GOPATH/src/github.com/mmcgrana
$ git clone git@github.com:mmcgrana/gobyexaple.git
$ cd gobyexample
$ go get
$ foreman start
$ foreman open

Platform Deploy

Basic setup:

$ export DEPLOY=$USER
$ heroku create gobyexample-$DEPLOY -r $DEPLOY
$ heroku config:add -r $DEPLOY \
    BUILDPACK_URL=https://github.com/kr/heroku-buildpack-go.git -r $DEPLOY \
    CANONICAL_HOST=gobyexample-$DEPLOY.herokuapp.com -r $DEPLOY \
    FORCE_HTTPS=1 \
    AUTH=go:byexample
$ git push $DEPLOY master
$ heroku open -r $DEPLOY

Add a domain + SSL:

$ heroku domains:add $DOMAIN
$ heroku addons:add ssl -r $DEPLOY
# order ssl cert for domain
$ cat > /tmp/server.key
$ cat > /tmp/server.crt.orig
$ cat /tmp/server.crt.orig /tmp/rapidssl_bundle.pem > /tmp/server.crt
$ heroku certs:add /tmp/server.crt /tmp/server.key -r $DEPLOY
# add ALIAS record from domain to ssl endpoint dns
$ heroku config:add CANONICAL_HOST=$DOMAIN -r $DEPLOY
$ heroku open -r $DEPLOY

License

This work is licensed under a Creative Commons Attribution 3.0 Unported License.

Thanks

Thanks to Jeremy Ashkenas for Docco, which inspired this project.