Go to file
ansuz eb1809423b bump name length limit to 48 characters 2016-06-30 16:10:15 +02:00
customize.dist bump name length limit to 48 characters 2016-06-30 16:10:15 +02:00
storage add removeChannel documentation to storage/README 2016-05-14 13:50:25 +02:00
www make sure title is defined for home page usage 2016-06-30 15:53:13 +02:00
.bowerrc Added cryptsheet to cryptpad suite! 2015-01-29 17:55:18 +01:00
.gitignore Added testing and auto-testing with selenium 2016-04-20 18:58:02 +02:00
.jshintignore ignore external files and anything relying on es6 2016-04-12 15:07:31 +02:00
.jshintrc jshint ignore external code 2016-02-15 16:51:54 +01:00
.travis.yml don't repeat travis calling npm install but do use https for https urls 2016-04-20 20:20:29 +02:00
ARCHITECTURE.md Add a working picture 2016-04-15 18:19:46 +02:00
LICENSE #2 added license 2014-12-05 11:01:43 +01:00
NetfluxWebsocketSrv.js If there are no checkpoints, the document fails to sync 2016-05-30 12:29:58 +02:00
TestSelenium.js Remove the request to SauceLab's broken rest API which seems to explode when you hit it while a job is ongoing 2016-04-20 20:37:48 +02:00
WebRTCSrv.js Replace the Netflux old client (netflux.js) by the Netflux2 client. 2016-04-08 16:54:03 +02:00
and_so_it_begins.png and so it begins 2014-10-31 16:42:58 +01:00
bower.json remove dependency which is already in tree 2016-06-28 11:39:45 +02:00
config.js.dist implement optional channel removal hooks 2016-05-14 13:04:05 +02:00
cryptofist.png now fix the logo again 2014-11-06 13:04:39 +01:00
package.json Added testing and auto-testing with selenium 2016-04-20 18:58:02 +02:00
readme.md add a note about the irc channel 2016-06-20 10:43:30 +02:00
server.js remove everything related to jquery sheet since we're not using it 2016-06-03 13:12:40 +02:00

readme.md

XWiki labs logo

Unity is Strength - Collaboration is Key

and_so_it_begins.png

CryptPad is the zero knowledge realtime collaborative editor. Encryption carried out in your web browser protects the data from the server, the cloud and the NSA. This project uses the CKEditor Visual Editor and the ChainPad realtime engine. The secret key is stored in the URL fragment identifier which is never sent to the server but is available to javascript so by sharing the URL, you give authorization to others who want to participate.

To install:

git clone <this repo>
cd cryptpad
npm install
npm install -g bower ## if necessary
bower install

## copy config.js.dist to config.js
cp config.js.dist config.js

## modify configuration to use your own mongodb instance
## for example aon the default mongodb port `mongodb://localhost:27017/demo_database`
$EDITOR config.js

node ./server.js

Maintenance

To get access to the most recent codebase:

cd /your/cryptpad/instance/location;
git pull

To update dependencies:

# clientside dependencies
bower update;

# serverside dependencies
npm update;

To reset your instance of Cryptpad and remove all the data that is being stored:

If you are using the leveldb adaptor, this is as simple as deleting the folder which contains your leveldb datastore:

# change into your cryptpade directory
cd /your/cryptpad/instance/location;

# delete the datastore
rm -rf ./cryptpad.db

If you are using the mongodb adaptor, drop the relevant collection.

Testing

To test CryptPad, go to http://your.server:3000/assert/

You can use WebDriver to run this test automatically by running TestSelenium.js but you will need chromedriver installed. If you use Mac, you can brew install chromedriver.

Security

CryptPad is private, not anonymous. Privacy protects your data, anonymity protects you. As such, it is possible for a collaborator on the pad to include some silly/ugly/nasty things in a CryptPad such as an image which reveals your IP address when your browser automatically loads it or a script which plays Rick Astleys's greatest hits. It is acceptable for anyone who does not have the key to be able to change anything in the pad or add anything, even the server.

The server does have a certain power, it can send you evil javascript which does the wrong thing (leaks the key or the data back to the server or to someone else). This is however an active attack which makes it detectable. The NSA really hates doing these because they might get caught and laughed at and humiliated in front of the whole world (again). If you're making the NSA mad enough for them to use an active attack against you, Great Success Highfive, now take the battery out of your computer before it spawns Agent Smith.

Still there are other low-lives in the world so using CryptPad over HTTPS is probably a good idea.

Contributing

We love Open Source and we love contribution. It is our intent to keep this project available under the AGPL license forever but in order to finance more development on this and other FOSS projects, we also wish to sell other licenses to this software. Before making a pull request, please read and sign the Commons Management Agreement.

If you have any questions or comments, or if you're interested in contributing to Cryptpad, come say hi on IRC, #cryptpad on Freenode.

License

This software is and will always be available under the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. If you wish to use this technology in a proprietary product, please contact sales@xwiki.com