Run a node at home, the easy way.
Set up an Ethereum node in no-time on every modern computer without any technical knowledge (coming soon).
For the latest information, visit https://nicenode.xyz
![Application Window Dark](https://private-user-images.githubusercontent.com/3721291/288787047-835ced91-3a2f-4be6-a30e-11dd025fa20e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjU2NjQ0MTMsIm5iZiI6MTcyNTY2NDExMywicGF0aCI6Ii8zNzIxMjkxLzI4ODc4NzA0Ny04MzVjZWQ5MS0zYTJmLTRiZTYtYTMwZS0xMWRkMDI1ZmEyMGUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDkwNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA5MDZUMjMwODMzWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NWRhN2M2Y2I5NDY1NjIxZmZhNTNmOWVhYTcyNWY1YzZjZGE2NzIwZDFmYjRmOTc4MWRiMDgyZDQwY2RlNDI4OCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.k_ZhulJLcnh3ihRMF4AUN8SlXn0jjKEMWGz2-aOpzpg)
Install git, nodejs 18+, and npm.
Clone the repo and install dependencies:
git clone https://github.com/NiceNode/nice-node.git
cd nice-node
npm install
Start the app in the dev
environment:
npm start
A window should pop open with NiceNode and a chrome devtools inspector running.
You may need to set environment variables locally. To do so, create a .env
file at the top level with:
SENTRY_DSN=fake-token
MP_PROJECT_TOKEN=fake-token
MP_PROJECT_ENV=dev
NICENODE_ENV=development
CONTROLLER_API_URL=http://localhost:3000/api
SENTRY_DSN
and MP_PROJECT_TOKEN
should be fake unless testing. Contact Johns, @jgresham, if you want to test new error or event reporting code.
To package apps for the local platform:
npm run make
For a specific platform & architecture:
npm run make -- --platform=linux --arch=arm64
npm run make -- --arch=x64 --platform=darwin
arch options include: ia32, x64, armv7l, arm64, mips64el, universal
Unit tests with npm run test
npm run test -- --config vite.renderer.config.ts --dir src/__tests__/react
npm run test -- --config vite.main.config.ts --dir src/__tests__/node
For e2e tests, we use webdriver and an electron plugin to automate testing. It requires a packaged build to run the tests!
To run them locally, package the source first (and after making any changes to anything other than tests
), then run the e2e tests with wdio
npm run make <your os and arch>
npm run wdio
To run Storybook locally:
npm run storybook
npx @electron/asar extract app.asar <destfolder>
can be used to determine the contents of asar
npm run package
followed by mkdir outAsar
and npx @electron/asar extract ./out/NiceNode-darwin-arm64/NiceNode.app/Contents/Resources/app.asar outAsar
on macOS
curl https://update.electronjs.org/NiceNode/nice-node/darwin-arm64/5.2.0-alpha
returns if there is an update detected by the update server. The end of the URL is -/.
Also, NiceNode app auto update logs are in ../NiceNode/logs/autoUpdater*.log.