Skip to content
very fast, very dumb reachability test inspired by EC2
HTML Go Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmd
.gitignore
Gopkg.lock
Gopkg.toml
README.md
docker-tool.sh
example.json
mockup.html
util.go

README.md

reachability-tester

inspired by http://ec2-reachability.amazonaws.com

quick go

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.

web UI

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

docker sux?

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.

building/contributing

you need

  • go (developed on 1.10)
  • dep
  • go-bindata: 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

abstract gist

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.

You can’t perform that action at this time.