## Go by Example Content, toolchain, and web server for [Go by Example](https://gobyexample.com). ### 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: ```console $ tools/build $ open public/index.html ``` To build continuously in a loop: ```console $ tools/build-loop ``` ### Local Deploy ```bash $ 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: ```bash $ 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: ```bash $ 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](http://creativecommons.org/licenses/by/3.0/). The Go Gopher is copyright the Go Authors and licensed under a [Creative Commons Attribution 3.0 Unported License](http://creativecommons.org/licenses/by/3.0/). ### Thanks Thanks to [Jeremy Ashkenas](https://github.com/jashkenas) for [Docco](http://jashkenas.github.com/docco/), which inspired this project.