
Use non-teletype to indicate that it's the logical values that need to be exact, not the specific text which will vary by format.
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
Local Deploy
$ mkdir -p $GOPATH/src/github.com/mmcgrana
$ cd $GOPATH/src/github.com/mmcgrana
$ git clone git@github.com:mmcgrana/gobyexample.git
$ cd gobyexample
$ go get
$ foreman start
$ foreman open
Platform Deploy
Basic setup:
$ export DEPLOY=$USER
$ export APP=gobyexample-$USER
$ heroku create $APP -r $DEPLOY
$ heroku config:add -a $APP
BUILDPACK_URL=https://github.com/mmcgrana/buildpack-go.git
CANONICAL_HOST=$APP.herokuapp.com \
FORCE_HTTPS=1 \
AUTH=go:byexample
$ heroku labs:enable dot-profile-d -a $APP
$ git push $DEPLOY master
$ heroku open -a $APP
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
$ curl https://knowledge.rapidssl.com/library/VERISIGN/ALL_OTHER/RapidSSL%20Intermediate/RapidSSL_CA_bundle.pem > /tmp/rapidssl_bundle.pem
$ 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 copyright Mark McGranaghan and licensed under a Creative Commons Attribution 3.0 Unported License.
The Go Gopher is copyright the Go Authors and licensed under a Creative Commons Attribution 3.0 Unported License.
Thanks
Thanks to Jeremy Ashkenas for Docco, which inspired this project.