Local development notes: Server: (TLS stuff is optional) $ go run $GOROOT/src/crypto/tls/generate_cert.go --host=example.com $ GCEMETA_password=foo GCEMETA_tls_certfirstname.lastname@example.org GCEMETA_tls_keyemail@example.com' ./buildlet Client: $ curl -O https://go.googlesource.com/go/+archive/3b76b017cabb.tar.gz $ curl -k --user :foo -X PUT --data-binary "@go-3b76b017cabb.tar.gz" https://localhost:5936/writetgz $ curl -k --user :foo -d "cmd=src/make.bash" http://127.0.0.1:5937/exec etc
The buildlet is an HTTP server that untars content to disk and runs commands it has untarred, streaming their output back over HTTP. It is part of Go's continuous build system.
This program intentionally allows remote code execution, and provides no security of its own. It is assumed that any user uses it with an appropriately-configured firewall between their VM instances.