This is what Wikipedia says about it

Etherpad is an open source, web-based collaborative real-time editor, allowing authors to simultaneously edit a text document, and see all of the participants' edits in real-time, with the ability to display each author's text in their own color.

The good things:

  • Self-hosted
  • Open source
  • Plugins

The bad things:

  • Mostly single-threaded (100% CPU usage at one core when a user is loading a pad)


First we get the current stable and LTS of NodeJS, which is 6.x at the time of writing. For Debian that means we get the key for the Nodesource repository and import it:

apt-key add nodesource.gpg.key

Then we add the repository:

DISTRO="$(lsb_release -s -c)"
echo "deb$VERSION $DISTRO main" | tee /etc/apt/sources.list.d/nodesource.list
echo "deb-src$VERSION $DISTRO main" | tee -a /etc/apt/sources.list.d/nodesource.list

Then we refresh the repositories and install NodeJS:

apt-get update
apt-get install nodejs

Following the official guide for Etherpad installation on GNU/Linux at GitHub we do:

apt-get install gzip git curl python libssl-dev pkg-config build-essential

Add a new user which will run Etherpad and login as that user:

useradd -s /bin/bash -m -U etherpad
su etherpad

Get Etherpad and execute it:

git clone git://

Get something to drink. It will take awhile to bootstrap Etherpad...

When it's done then browse to http://localhost:9001 and test it out.

If you like it and want to use it in production, then shut it down Ctrl+c, and proceed.


We want Etherpad to start automatically at boot. Open and edit the crontab for the user running Etherpad

crontab -u etherpad -e

And write the following into it to make it run at boot:

@reboot $HOME/etherpad-lite/bin/

Dedicated database

For Debian 8, the quickest pick is MySQL. Execute:

apt-get install mysql-server

I leave the password blank / autogenerated, because I use the maintenance account anyway.

Login via the maintenance account:

mysql --defaults-file=/etc/mysql/debian.cnf

Create the database and give it a password:

mysql> create database etherpad;
mysql> grant all on etherpad.* to etherpad@localhost identified by 'etherpad';
mysql> flush privileges;

Edit the configuration settings.json to suit your needs. This file is created when you first run Etherpad.

Add the database settings

"dbType" : "mysql",
"dbSettings" : {
                "user"    : "etherpad",
                "host"    : "localhost",
                "password": "etherpad",
                "database": "etherpad",
                "charset" : "utf8mb4"

Make sure the other database settings are commented out or removed.

Admin account

Open up the same file settings.json and comment out the authorization parts so they become active. Then change the admin password, like so:

"users": {
  "admin": {
    "password": "secretpassword",
    "is_admin": true

Then start up Etherpad again as a non-privileged user:

su -s /bin/bash etherpad

After that it's up to you to tweak the configuration according to your needs.