Real-time collaborative document editing https://pad.fuwafuwa.moe
Go to file
Egil Moeller ee40b23cfc Added a fake plugin __builtin__ for builtin functionality 2012-02-24 20:21:52 +01:00
available_plugins/pluginomatic_fintest Added a simple test plugin that doesn't do much 2012-02-24 20:03:58 +01:00
bin Allow settings filename to be passed as a cli option 2012-02-21 14:20:45 -05:00
doc removed docs created with doc.md, these docs were completly useless 2011-12-04 17:12:27 +01:00
node Added a fake plugin __builtin__ for builtin functionality 2012-02-24 20:21:52 +01:00
static Fixes import major bug caused by removing container required for callback of import 2012-02-24 12:23:31 +00:00
var Minify and compress JS & CSS before sending it 2011-05-28 18:09:17 +01:00
.gitignore fixes automatic update 2012-02-04 18:46:43 +01:00
CHANGELOG.md started a changelog 2011-08-23 18:59:32 +01:00
README.md Document the -s|--settings cli option in README 2012-02-21 15:36:05 -05:00
package.json Oups, bad format 2012-02-24 15:33:20 +01:00
pluginomatic.json Added a fake plugin __builtin__ for builtin functionality 2012-02-24 20:21:52 +01:00
settings.json.template change settings sample to avoid error when editing httpAuth 2011-12-02 14:42:42 +01:00
settings.json.template_windows editOnly should default to false 2011-11-25 21:24:00 -05:00
start.bat added a buildForWindows script 2011-08-11 22:00:52 +01:00

README.md

Our goal is to make collaborative editing the standard on the web

About

Etherpad lite is a really-real time collaborative editor spawned from the Hell fire of Etherpad. We're reusing the well tested Etherpad easysync library to make it really realtime. Etherpad Lite is based on node.js ergo is much lighter and more stable than the original Etherpad. Our hope is that this will encourage more users to use and install a realtime collaborative editor. A smaller, manageable and well documented codebase makes it easier for developers to improve the code and contribute towards the project.

Etherpad Lite is optimized to be easy embeddable. It provides a HTTP API that allows your web application to manage pads, users and groups. There are several clients in for this API:

There is also a jQuery plugin that helps you to embed Pads into your website

Online demo
Visit http://beta.etherpad.org to test it live

Here is the FAQ

Etherpad vs Etherpad Lite

 EtherpadEtherpad Lite
Size of the folder (without git history)30 MB1.5 MB
Languages used server sideJavascript (Rhino), Java, ScalaJavascript (node.js)
Lines of server side Javascript code~101k~9k
RAM Usage immediately after start257 MB (grows to ~1GB)16 MB (grows to ~30MB)

Installation

Windows

  1. Download http://etherpad.org/etherpad-lite-win.zip
  2. Extract the file
  3. Open the extracted folder and double click start.bat
  4. Open your web browser and browse to http://localhost:9001. You like it? Look at the 'Next Steps' section below

Linux

As root:

  1. Install the dependencies. We need gzip, git, curl, libssl develop libraries, python and gcc.
    For Debian/Ubuntu apt-get install gzip git-core curl python libssl-dev build-essential
    For Fedora/CentOS yum install gzip git-core curl python openssl-devel && yum groupinstall "Development Tools"

  2. Install node.js
    1. Download the latest 0.6.x node.js release from http://nodejs.org/#download
    2. Extract it with tar xf node-v0.6*
    3. Move into the node folder cd node-v0.6* and build node with ./configure && make && make install

As any user (we recommend creating a separate user called etherpad-lite):

  1. Move to a folder where you want to install Etherpad Lite. Clone the git repository git clone 'git://github.com/Pita/etherpad-lite.git'
     
  2. Install the dependencies with bin/installDeps.sh
     
  3. Start it with bin/run.sh
     
  4. Open your web browser and visit http://localhost:9001. You like it? Look at the 'Next Steps' section below

Next Steps

You can modify the settings in the file settings.json

If you have multiple settings files, you may pass one to bin/run.sh using the -s|--settings option. This allows you to run multiple Etherpad Lite instances from the same installation.

You should use a dedicated database such as "mysql" if you are planning on using etherpad-lite in a production environment, the "dirty" database driver is only for testing and/or development purposes.

You can update to the latest version with git pull origin. The next start with bin/run.sh will update the dependencies

Look at this wiki pages:

You can find more information in the wiki. Feel free to improve these wiki pages

Develop

If you're new to git and github, start by watching this video then read this git guide.

If you're new to node.js, start with this video http://youtu.be/jo_B4LTHi3I.

You can debug with bin/debugRun.sh

If you want to find out how Etherpads Easysync works (the library that makes it really realtime), start with this PDF (complex, but worth reading).

You know all this and just want to know how you can help? Look at the TODO list. You can join the mailinglist or go to the freenode irc channel #etherpad-lite-dev

You also help the project, if you only host a Etherpad Lite instance and share your experience with us.

Please consider using jshint if you plan to contribute to Etherpad Lite.

Modules created for this project

  • ueberDB "transforms every database into a object key value store" - manages all database access
  • channels "Event channels in node.js" - ensures that ueberDB operations are atomic and in series for each key
  • async-stacktrace "Improves node.js stacktraces and makes it easier to handle errors"

License

Apache License v2