PeerPad is a decentralized editor that allows concurrent writing of text. Besides making live changes to a given document, it allows read-only nodes to follow the changes in real-time. It also allows you to publish a self-contained snapshot of the document to IPFS.
Test it live at https://peerpad.net or https://ipfs.io/ipns/peerpad.net
Docs: Security, Technology
π PeerPad is experimental software. It hasn't been audited, and as such shouldn't be used to create or share sensitive information.
With the following installed:
- git
- node >= 8
- npm >= 6
Clone the repo and install the dependencies from npm.
git clone https://github.com/ipfs-shipyard/peer-pad.git
cd peer-pad
npm install
For local development with hot code reloading
npm start
Then open http://localhost:3000 in your browser.
To build into the build
dir, run:
npm run build
To run the unit tests:
npm test
To run the end-to-end smoke test that runs PeerPad in multiple, headless Chrome instances run:
npm run build
npm run test:e2e:ci
The e2e tests expect the site to already be running, so the test:e2e:ci
will fire up an http-server before running the tests in test/e2e.
If you're running the dev server on the default port (via npm start
) then you can run the e2e tests without starting a server with:
npm run test:e2e
By default the Chrome instances run headless, so you won't see the robots clicking around in the browser. To debug the tests and see what's going pass DEBUG=true
as an env var.
DEBUG=true npm run test:e2e
To run the e2e test against a deployed version, just pass the url as an env var
URL=https://peerpad.net npm run test:e2e
To run the e2e load tests:
npm run test:e2e:load
You can self-host your own PeerPad. For that, run npm run build
and deploy the build
directory to a web-server
See docs/DEPLOY.md more info on how PeerPad is deployed to https://peerpad.net
Some dependencies (like webcrypto) require that you're serving under HTTPS β unless it's localhost
...
The PeerPad is a work in progress. As such, there's a few things you can do right now to help out:
- Check out the existing issues!
- Perform code reviews. More eyes will help a) speed the project along b) ensure quality and c) reduce possible future bugs.
- Add tests. There can never be enough tests.
Read the PeerPad contributing.md for details on the latest development flow.