Improve instructions on how to to set up snowflake standalone proxy and add to Tor community portal
Snowflake standalone proxy is such an effortless and easy way to contribute, it deserves more straight forward and more prominently placed documentation I think. Contrary to the web- and browser extension, it also covers volunteers which are running headless, or are just hesitant to run WebRTC in their browsers.
--- edit ---
Adding a checklist here so we can keep track of the work that should be done:
- Update https://snowflake.torproject.org to point to community documentation
The building from source instructions are not clear
- include instructions for go1.11
Update the README for
/proxyin the git repository to include build instructions and point to community pages for running the proxy
- Some info for how to keep the proxy up to date (this actually should be discussed and completed for #32677)
- Some instructions on checking Snowflake logs
--- end edit ---
Couple of points/ideas:
The existing instructions on how to set up the GOPATH will leave many users with a more or less broken system, since the majority of distros don't use
.profile. After creating
.profile will not be read any more, and all what's configured after copy- and pasting the commands, is the GOPATH, which is ..bad.
On every semi updated installation, setting the GOPATH is not even necessary, beginning with the release of go-1.8 (2017) it will default to $HOME/go when no other path is specified. Since a lot of users will run go for the first time when setting up snowflake proxy, checking if $GOPATH exists and if it doesn't, exporting the GOPATH temporarily for the shell might be a good idea still (?).
Use variables, like
mkdir -p "$GOPATH/src", to make the guide more universal.
How about offering a simple setup.sh (maybe that's another ticket though)?
Everybody who has some understanding of their system will know a way how to auto start snowflake at boot, there's no reason to alienate less technical inclined users with torproject's specific runit configuration.
Tell the user where to run the command to start the proxy. At least on go versions < 1.16 (Q1 2020, Debian stable is on 1.11 for reference), neither
$GOPATH/src/snowflake/proxy/proxy is in PATH by default, so just executing
nohup ./proxy & will blatantly fail.
Tell the user how to save logs, since lack of feedback whether snowflake is doing as intended or not might discourage users.
Provide instructions on how to update. Personally I've a start-up script running which checks for updates every time snowflake is started, but even a manual approach will do.