How to install web-based real time collaborative document editor on Linux

There are many tools which allow a group of users to collaboratively edit a document as a team. Version control systems such as Git or Subversion are common tools that enable collaborative editing. However, these tools only support "asynchronous" collaboration, where any change is made to a local copy, which is later merged, on demand, to the original version in a repository. As such, you cannot collaborate on documents in "real-time" under existing version control systems.

Etherpad is a web-based open-source document editor which enables you to collaborate on a document in real-time. Using Etherpad, a group of users can edit a text document via web browser simultaneously, and while doing so, one can see each other's edits in real time. Etherpad also offers a separate chat box within the same web browser window, allowing them to interact during editing.

In this tutorial, I will describe how to set up a web-based real time collaborative document editing system using Etherpad Lite. Etherpad Lite is a version of Etherpad written in server-side JavaScript Node.js.

Install Etherpad Lite on Linux

First, install Node.js on your Linux system.

Etherpad is compatible with Node.js v0.8 or v0.10, but not v0.6. Check the version of Node.js as follows.

$ node --version

After Node.js installation, follow distro-specific instructions below to install Etherpad Lite.

To install and launch Etherpad Lite on Debian, Ubuntu or Linux Mint:

$ sudo apt-get install gzip curl python libssl-dev pkg-config build-essential git
$ git clone http://github.com/ether/etherpad-lite.git
$ cd etherpad-lite/bin
$ ./run.sh

To install and launch Etherpad Lite on Fedora, CentOS or RHEL:

$ sudo yum groupinstall "Development Tools"
$ sudo yum install gzip git curl python openssl-devel
$ git clone http://github.com/ether/etherpad-lite.git
$ cd etherpad-lite/bin
$ ./run.sh

Edit a Document Collaboratively with Etherpad Lite

At this point, you should be able to access the web interface of Etherpad Lite at the host where it is running. Go to http://127.0.0.1:9001 or http://<ip_address_of_host>:9001 in a web browser.

You should see the initial screen of Etherpad Lite as shown below.

Enter the name of a document (so-called Pad name); new name when creating a new document, or an existing name when opening a previously created document.

Once you open a document with a given Pad name, you will get a URL for the document in the form of "http://<ip_address_of_host>:9001/p/<Pad_name>. You can share this URL with whomever you would like to collaborate on the document.

For demonstration purpose, I show two Etherpad-running browser windows below, where edits from one window automatically appear on another window in real-time. Edits made by two users are highlighted in two different colors. Users can also communicate via a separate chat box.

While editing is in progress, any one participating user can checkpoint a current revision of a document by clicking on save button as follows.

You can import any external document into Etherpad, or export a current revision to a separate file.

You can embed the Etherpad editor interface into another HTML webpage as an iframe.

By default Etherpad uses a flat-file database to store edited documents. If you want to deploy Etherpad for production use, it is recommended to set up Etherpad with MySQL or MariaDB as a backend database.

Finally, it is possible to deploy Etherpad Lite as a service on a Linux server, and provide secure access to Etherpad Lite via secure HTTPS/SSL connections.

Subscribe to Xmodulo

Do you want to receive Linux FAQs, detailed tutorials and tips published at Xmodulo? Enter your email address below, and we will deliver our Linux posts straight to your email box, for free. Delivery powered by Google Feedburner.

The following two tabs change content below.
Dan Nanni is the founder and also a regular contributor of Xmodulo.com. He is a Linux/FOSS enthusiast who loves to get his hands dirty with his Linux box. He likes to procrastinate when he is supposed to be busy and productive. When he is otherwise free, he likes to watch movies and shop for the coolest gadgets.
Your name can also be listed here. Write for us as a freelancer.

9 thoughts on “How to install web-based real time collaborative document editor on Linux

  1. ... and if you Trust each other, set up vim in a screen or tmux session (you should use another user account for that, running in a chroot with no system access) and let your cooperation partners connect via SSH.

  2. Useful web based note taking app; likely Evernote, Google Docs. But, one different thing: all notes are only yours, not Google, not Evernote or anybody. One question: where are my notes? Where are they located? In my home dir? I can't find them.

    • Etherpad Lite uses Dirty db as a default backend database. The location of db file is specified in $ETHERPAD_LITE_DIR/settings.json. By default, the db file is found at $ETHERPAD_LITE_DIR/var/dirty.db

Leave a comment

Your email address will not be published. Required fields are marked *