Self-hosted dashboard and custom notifications via Email and SMS for rivers in the United States, Canada, New Zealand and Chile.
If you do not want to self-host this app see wh2o.io
River data for gages in the United States come from the United States Geological Survey’s REST API and are fetched every 15 minutes.
Readings for Canadian gages come from hourly reports published by the Canadian Government. The reports are distributed as CSVs downloaded, then parsed for the dashboard.
Readings from New Zealand and Chile are fetched every hour using web scrapers.
The easiest way to run the app is to clone or download this repository then build it locally on your machine.
This requires:
Once you have a copy of the repository on your machine, open Terminal (or Command Prompt on Windows) and navigate to
the wh2o-go
directory. Next make the included build script executable then run it. This will compile the React app (
client), the Go server (API) and output a single executable binary in wh2o-go/bin/main
. (Definitely one of my favorite
features of Go! Fullstack app in a single binary?! 😎)
chmod +x ./_script/build.sh
./_script/build.sh
Next to send yourself Email and SMS, create accounts with Mailgun Account and Twilio Account.
You do not need either a Mailgun or a Twilio account to use the app. You can still view aggregate gage readings from your bookmarked gages without going through the hassle of creating new accounts.
Once your accounts are set up, open the app in your web browser by entering http://localhost:3000
in the URL bar.
Navigate to the Settings tab and input your Mailgun and Twilio credentials.
Now you’re ready to start bookmarking gages and creating alerts!
If you would like to contribute to this project, please feel free to create a new branch and open a Pull Request!
From the wh2o-go
directory, navigate to the client/
and start the React app:
cd client/
npm start
The Webpack dev server will open your browser automatically at http://localhost:8080
.
In a new Terminal tab and from the wh2o-go
directory, start the Go server:
go run main.go
If you are making changes to and of the gage source JSON files, please note that you will have to restart the Go server to see the changes reflected. This is because they are embedded in the binary.
If you’d prefer not to work with Go and just JavaScript/Nodejs, check out the NextJs Branch. Note that this version of the app is no longer being actively worked on.
This app is not intended to be a guidebook. For river beta in British Columbia, checkout bcwhitewater.org.
If you’re looking for a native mobile app, I highly recommend RiverApp. They have a HUGE dataset and active community of paddlers around the world.
For river beta in the United States, see americanwhitewater.org or check out their open-source projects, @AmericanWhitewater.