cmd/hostserver-gcp: new service to provision sub-domains

Command hostserver-gcp is a combined DirServer and StoreServer that serves a
synthetic Upspin tree used to configure sub-domains under the domain Each Upspin user can set the IP address of one sub-domain,
the name of which is a hash of their user name.

Assuming the server is running as, here's how the user would configure their sub-domain:

  $ upspin mkdir

If that command succeeds, then their host name was created or updated.
(This can be any command that performs a DirServer.Put to that path; the put
command would work, but mkdir is the simpliest choice in this case.)

To find the host name, the user uses a get request, which returns both the
host name and configured IP address:

  $ upspin get

This is part of addressing upspin/upspin#411. If a user wants to deploy
their own upspinserver then they must give it a host name in order to
serve TLS. By providing each Upspin user with their own dedicated host
name under, we side-step the issue of domain
registration and DNS record configuration (although we can let them use
their own domain if they wish).

The service is already running at

Change-Id: Ib861155e7e24449522db7f28126a3ba6f765a66d
Reviewed-by: Rob Pike <>
8 files changed
tree: bf9aef747384d9c6c994939515bc3ef3958ae76c
  1. cloud/
  2. cmd/
  3. .gitignore
  4. .travis.yml
  6. codereview.cfg

Upspin gcp repository

This repository contains support for running Upspin against Google Cloud Storage and/or Google Container Engine.

See the Setting up upspinserver document for information about running an Upspin service that stores its data in Google Cloud Storage.

See the Deploying Upspin servers to Google Cloud Platform document for information about running an Upspin cluster on Google Container Engine.

See the master repository for more information about the Upspin project.