How to install the Etherpad collaborative note-taking platform on Linux

Note taking or minutes of meeting, conclusion or summary, education lecture or write important information concept, confidence businessman taking note in the meeting while listen to others information
Image: Nuthawut/Adobe Stock

In these wild times, collaboration has become an absolute necessity. Thankfully, there are so many ways to collaborate: Every platform offers the means to work together, whether it’s a desktop, server, mobile or container deployment, you name it and you can collaborate with it.  Some of those collaborative tools offer a ton of features, but sometimes you want something simple — just the ability to collaborate on, say, notes.

For such a need, you should turn to a very easy-to-use Etherpad, which is a real-time collaboration platform that can be deployed on just about any operating system

Etherpad features:

  • A rich text WYSIWYG minimalist editor
  • Dark Mode
  • Image support
  • Feature expansion via plugins
  • Scalability (an infinite number of pads with up to ~20k edits per second, per pad)

Whether you are a small company that needs to collaborate with basic notes or an enterprise business looking for a real-time collaborative note-taking platform, Etherpad might be just the ticket.

I’m going to show you two different ways to deploy Etherpad (Node.js and Docker), so you can use this tool no matter your platform.

SEE: Windows, Linux, and Mac commands everyone needs to know (free PDF) (TechRepublic)

What you’ll need

To deploy Etherpad, you’ll need an operating system that supports either Node.js or Docker. I will walk you through the process of installing both Node.js and Docker on a Ubuntu-based system, so if you use a different operating system, you’ll need to modify the install instructions to suit your needs.

How to install Node.js

The first thing we’ll do is install Node.js. For that, log into your Ubuntu-based machine and issue the command:

sudo apt-get install node.js -y

The installation should go off without a hitch.

How to install Docker

We’re going to install the latest version of Docker CE (Community Edition). From the terminal window, add the official Docker GPG key with:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Now, add the repository:

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Install the necessary dependencies with:

sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release git -y

Finally, we can install the latest version of the Docker engine:

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io -y

Add your to the docker group with the command:

sudo usermod -aG docker $USER

Make the system aware of the change with:

newgrp docker

How to install Etherpad with Node.js

This first method uses Node.js to install and run Etherpad. To install Etherpad with Node.js, first create the etherpad user with:

sudo adduser --system --group --home /opt/etherpad etherpad

Change to the new user with:

sudo -u etherpad bash

Change to the new directory:

cd /opt/etherpad

Clone the source from GitHub with:

git clone --branch master https://github.com/ether/etherpad-lite.git .

Install the necessary dependencies with the command:

./bin/installDeps.sh

Change into the source directory with cd src and then install the SQLite database using npm with the command:

npm install sqlite3

Change into the etherpad directory:

cd /opt/etherpad

Next, we need to make a few configuration changes. Open the config file with:

nano settings.json

First, look for the section:

"dbType": "dirty",

"dbSettings": {

"filename": "var/dirty.db"

},

Change that to:

"dbType": "sqlite",

"dbSettings": {

"filename": "var/sqlite.db"

},

Next, look for the line:

"trustProxy": false,

Change that to:

"trustProxy": true,

Save and close the file.

Exit from the etherpad user and create a systemd file with the command:

sudo nano /etc/systemd/system/etherpad.service

In that file, paste the following:

[Unit]

Description=Etherpad-lite, the collaborative editor.

After=syslog.target network.target

[Service]

Type=simple

User=etherpad

Group=etherpad

WorkingDirectory=/opt/etherpad/etherpad-lite

Environment=NODE_ENV=production

ExecStart=/usr/bin/node /opt/etherpad/etherpad-lite/src/node/server.js

Restart=always

[Install]

WantedBy=multi-user.target

Save and close the file. Reload the systemd daemon with:

sudo systemctl daemon-reload

Finally, start and enable the service with:

sudo sytemctl enable --now etherpad

You can now access the Etherpad web-based interface by pointing a browser to http://SERVER:9001, where SERVER is the IP address or domain of the hosting server.

How to deploy Etherpad with Docker

This deployment is significantly easier. Since we already have Docker installed, all you have to do is to first pull the etherpad image with:

docker pull etherpad/etherpad

With the image saved to local storage, deploy the container with:

docker run --detach --publish 9001:9001 etherpad/etherpad

Once the container is running, you can point a browser to http://SERVER:9001, where SERVER is the IP address or domain of the hosting server, and you’re ready to start working with Etherpad (Figure A).

Figure A

The Etherpad interface is very easy to use.

And that’s all there is to deploying the Etherpad real-time note-taking service. The web UI is incredibly simple to use, so your team won’t have any problem getting up to speed. Enjoy this powerful collaborative tool.

Subscribe to TechRepublic’s How To Make Tech Work on YouTube for all the latest tech advice for business pros from Jack Wallen.

Related post