ooni-probe-cli/Readme.md
Simone Basso 03e7d2ccac
circumvention: add the tor experiment (#100)
* go.mod go.sum: update all non-probe-engine deps

For each line in the go.mod, run `go get -u -v $package` if the
line is not an indirect dependency and is not probe-engine.

Upgrading probe-engine is going to require the same spell that
is used in probe-engine to update psiphon.

* go get -v github.com/ooni/probe-engine@v0.5.0

This just pins to the latest probe-engine but we've not manually
pinned all the other dependencieds yet.

Take care of the trivial API changes in probe-engine as well, such
that we can have a working build after this commit.

* go.mod go.sum: pin to probe-engine dependencies

Basically: remove all indirect dependencies. Merge this go.mod with
the one of probe-engine, to pin dependencies. Run `go mod tidy`.

* circumvention: add basic implementation of tor

This needs to be polished further, of course. But at least we have
now added support for running tor in the circumvention group.

* Readme.md: document how to update dependencies

* go get -v github.com/ooni/probe-engine@fcc9ee0a7afb

* go get -v github.com/ooni/probe-engine@4d254f5b2

* nettests/tor.go: implement summary test keys
2020-01-28 10:05:54 +01:00

1.4 KiB

OONI Probe CLI

The next generation OONI Probe Command Line Interface.

User setup

  1. Go into the releases and download the release for your architecture and platform

  2. Extract the tarball with tar xvzf ooniprobe_*.tar.gz

  3. Copy the ooniprobe binary into a location in your $PATH, for example /usr/local/bin/ooniprobe

  4. Run ooniprobe run to perform all the tests

Optional:

Add a crontab entry (on linux) to run ooniprobe daily at a random time:

(crontab -l 2>/dev/null; echo "$(( ( RANDOM % 60 )  + 1 )) $(( ( RANDOM % 24 )  + 1 )) * * * ooniprobe run") | crontab -

Development setup

Be sure you have golang >= 1.13. We use golang modules. Run

./build.sh help

to get information on the supported systems as well as to get instructions on how to install dependencies.

Updating dependencies

  1. update every direct dependency in go.mod except probe-engine using go get -u -v $dependency

  2. pin to the latest version of the probe-engine with go get -v github.com/ooni/probe-engine@tag

  3. remove all indirect dependencies from go.mod and merge the content of probe-engine's go.mod into our go.mod

  4. go mod tidy

The rationale of this procedure is that we want to pin exactly to a specific version of psiphon and of its dependencies.

Releasing

./build.sh release

and follow instructions.