inspired by http://ec2-reachability.amazonaws.com
please note that every part of this is designed for HTTP, not HTTPS. this is deliberately done to get around browser security while still being very very lightweight. you can put proxies in front of this to help out but that seems really cumbersome.
docker run -d -v /path/to/config.json:/config/config.json -p 80:80 katie/reachability-ui
See example.json for an example config
nodes to test
docker run -d -p 80:80 katie/reachability-node
if you don't like docker, try github binaries
web UI (app) binary takes an env var,
CONFIG_PATH that points to the config.json.
both binaries (app, node) take an env var,
ADDR that defines what IP:port (e.g.
127.0.0.1:8003) it will be on.
- go (developed on 1.10)
go get -u github.com/jteeuwen/go-bindata/...
dep ensure go generate ./... # must be done every template or asset update go build -o app ./cmd/app go build -o node ./cmd/node
building docker stuff
# by default, builds to katie/reachability-ui and katie/reachablity-node, if no images are defined here. ./docker-tool.sh build reachtest-ui reachtest-node ./docker-tool.sh push reachtest-ui reachtest-node
node is a fasthttp server, only lives to serve a single file, but it's compiled in so it's a self-contained binary.
app is a fasthttp server, but renders an HTML template to serve as the test on once at start time. it also serves a single error image. the HTML template is generated from CONFIG_PATH's json.
web UI is a tachyon-based UI. nothing really more to it.