RHEL7: How to install an Etherpad service.

Share this link


Etherpad is a highly customizable Open Source online editor providing collaborative editing in really real-time (source: etherpad.org).


Etherpad is based on NodeJS. In addition, to store documents it requires a database system. Although MySQL can be used, MongoDB is preferred.

There are two main prerequisites:

Installation Procedure

Install the git package:

# yum install -y git

Create the etherpad user & group:

# useradd -r etherpad

Note: The -r option normally adds system user & group with uid/gid<1000 and doesn’t create any home directory.

Create the /opt/etherpad-lite directory:

# mkdir /opt/etherpad-lite
# chown etherpad:etherpad /opt/etherpad-lite

Become the etherpad user:

# su - etherpad

Get the Etherpad-lite code:

$ cd /opt
$ git clone https://github.com/ether/etherpad-lite.git

As we are using a MongoDB database, we need to install the NodeJS driver for MongoDB:

$ cd etherpad-lite
$ npm install mongodb

Configuration Procedure

Prepare the configuration:

$ cp -p settings.json.template settings.json

Edit the settings.json file, search for the following lines:

  "dbType" : "dirty",
  //the database specific settings
  "dbSettings" : {
                   "filename" : "var/dirty.db"

Replace the preceding lines with:

"dbType" : "mongodb",
"dbSettings" : {
                "user"    : "root",
                "password": "myPassword",
                "host"    : "localhost",
                "dbname"  : "mydb",
                "port"    : 27017

Note: Use the same password as the one specified in the MongoDB installation tutorial.

As root, add a rule to the firewall:

# firewall-cmd --permanent --add-port=9001/tcp
# firewall-cmd --reload

Note: The Etherpad service listens on the 9001 tcp port by default.

Create the /etc/systemd/system/etherpad.service file and paste the following lines into:

Description=Etherpad-lite, the collaborative editor.
After=syslog.target network.target

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


Note: The installDeps.sh script (ExecStartPre) should be run the first time. After you can choose to remove it.

Start and enable at boot the Etherpad service:

# systemctl start etherpad && systemctl enable etherpad

Advanced Configuration

Etherpad‘s got a plugin management system available through the /admin url and 9001 tcp port.
Disabled by default, you need to edit the /opt/etherpad-lite/settings.json file and uncomment the following lines:

  "users": {
    "admin": {
      "password": "changeme1",
      "is_admin": true
    "user": {
      "password": "changeme1",
      "is_admin": false

Note: Replace changeme1 with a new password.

Spellchecker Plugin

As an example of plugin, you can install the spellchecker plugin.

Type the http://NAME_OR_IP_ADDRESS/admin/plugins:9001 in your browser and select the spellchecker plugin.
Now, if you want to enable the spellchecking by default add the following line in the /opt/etherpad-lite/settings.json file:

"ep_spellcheck": { "disabledByDefault" : false },

Change the language accordingly:

"lang": "en-gb"

There are many other available plugins.

Additional Resources

This tutorial was inspired by the Etherpad-lite official website.
The RoseHosting website provides a tutorial to install Etherpad on CentOS 7 with MariaDB & Nginx.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)

RHCSA7: Task of the day

Allowed time: 10 minutes.
Boot and change the root password before the end of the boot process.

RHCE7: Task of the day

Allowed time: 3 minutes.
Configure your machine to be a router.

Poll for favorite RHEL 7 book

What is your favorite RHEL 7 book to prepare RHCSA & RHCE exams?

View Results

Loading ... Loading ...

Poll for most difficult RHCSA 7 topic

What do you think is the most difficult RHCSA 7 topic?

View Results

Loading ... Loading ...

Poll for most difficult RHCE 7 topic

What do you think is the most difficult RHCE 7 topic?

View Results

Loading ... Loading ...