godoc on Google App Engine
==========================

Prerequisites
-------------

* Google Cloud SDK
  https://cloud.google.com/sdk/

* Redis

* Go sources under $GOROOT

* Godoc sources inside $GOPATH
  (go get -d golang.org/x/tools/cmd/godoc)


Running locally, in production mode
-----------------------------------

Build the app:

  go build -tags golangorg

Run the app:

  ./godoc

godoc should come up at http://localhost:8080

Use the PORT environment variable to change the port:

    PORT=8081 ./godoc

Running locally, in production mode, using Docker
-------------------------------------------------

Build the app's Docker container:

  make docker-build

Make sure redis is running on port 6379:

  $ echo PING | nc localhost 6379
  +PONG
  ^C

Run the datastore emulator:

  gcloud beta emulators datastore start --project golang-org

In another terminal window, run the container:

  $(gcloud beta emulators datastore env-init)

  docker run --rm \
    --net host \
    --env GODOC_REDIS_ADDR=localhost:6379 \
    --env DATASTORE_EMULATOR_HOST=$DATASTORE_EMULATOR_HOST \
    --env DATASTORE_PROJECT_ID=$DATASTORE_PROJECT_ID \
    gcr.io/golang-org/godoc

godoc should come up at http://localhost:8080


Deploying to golang.org
-----------------------

Make sure you're signed in to gcloud:

  gcloud auth login

Build the image, push it to gcr.io, and deploy to Flex:

  make cloud-build deploy

Point the load balancer to the newly deployed version:
(This also runs regression tests)

  make publish

Stop and/or delete down any very old versions. (Stopped versions can be re-started.)
Keep at least one older verson to roll back to, just in case.
You can also migrate traffic to the new version via this UI.

  https://console.cloud.google.com/appengine/versions?project=golang-org&serviceId=default&versionssize=50


Troubleshooting
---------------

Ensure the Cloud SDK is on your PATH and you have the app-engine-go component
installed (gcloud components install app-engine-go) and your components are
up-to-date (gcloud components update)
