gobyexample/README.md
Mark McGranaghan d5490fb52b update readme
2012-11-17 07:10:20 -08:00

2.2 KiB

Go by Example

Content, toolchain, and web server 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 - public - suitable for serving by any modern HTTP server. We include a lightweight Go server in server.go.

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.