The implementation of the DAO dashboard.
We use the main branch to develop new features. For production code, see the
production branch.
You can find development instructions in a separate dev-README.
The decentralized approach to being a DAO member is to run Api3 dashboard on your local machine. For that you will just
need docker and, optionally, git.
There are two approaches to running the dashboard locally. The first involves using the prebuilt Docker image, while the second involves building the image from source. In either case, the end result is a Api3 dashboard running on port 7770 of your localhost where it is safe to connect your wallet.
Currently, it's only possible to build the Docker image on a UNIX-like OS. If you use Windows, you can use WSL2.
The simplest way to run the dashboard locally is using the prebuilt Docker image. This image is built and pushed to
Docker Hub automatically when new commits are added to the production branch.
docker run --rm --publish 7770:80 --name api3-dao-dashboard api3/dao-dashboard:latestAlternatively, you can build the Docker image from source. Note that:
- the production code is located on the
productionbranch - you need to provide your mainnet provider URL as a build arg (
REACT_APP_MAINNET_PROVIDER_URL) when building the image
git clone --depth=1 --branch production https://github.com/api3dao/api3-dao-dashboard.git
cd api3-dao-dashboard
docker build --build-arg="REACT_APP_MAINNET_PROVIDER_URL=..." --tag api3-dao-dashboard .
docker run --rm --publish 7770:80 --name api3-dao-dashboard api3-dao-dashboardWe're using Pinata to upload the dashboard to IPFS. To avoid trusting Pinata not to temper with the uploaded files, one can also build the app locally and compare its CID with the CID of the IPFS deployment.
To verify the CID, use the following instructions:
- (Optional) Clone a fresh version of the repository
- Run
git checkout productionto check out the production branch (assuming the verification is for production) - Run
pnpm installto install the latest dependencies - Populate
.env.production.localwith production secrets - Run
pnpm buildto create a fresh production build - Run
docker run --rm -v "$(pwd)/build:/build" ipfs/kubo add --only-hash --recursive /buildto obtain the CIDv0 - To obtain the corresponding CID in v1 follow the section below
If the expected hash looks like bafy... (shown on ENS) and locally it looks like Qm... (as uploaded by Pinata) that
is because of a difference between CIDv0 and CIDv1. Refer to the
CID version documentation for details. To convert a
CID from v0 to v1 use:
docker run --rm ipfs/kubo cid format -v 1 -b base32 <CID_V0>
Please note that the Api3 core team tracks application errors on test and production environments using Sentry. This is solely used to fix errors and improve the experience of our users.
NOTE: No identifying user information is collected
If hosting yourself, you can test Sentry by creating your own account and following the React installation guide