How to Install Etherpad Lite on Debian Wheezy


In this tutorial, we will show you how to install Etherpad Lite on Debian Wheezy. Etherpad Lite is an Open Source web-based editor providing collaborative editing in real-time, including built-in chat box. This all takes place on one of our Linux VPS hosting plans but it should work just as well on any other Linux installation.

The following command will install all necessary packages

apt-get install gzip git-core curl python libssl-dev pkg-config \
                build-essential python g++ make checkinstall \
                nginx-full mysql-server

Next we need to compile and install nodejs

cd /usr/src/
tar xzvf node-latest.tar.gz && cd node-v*
./configure && checkinstall

When the dialog window opens, enter ‘3’ and remove the “v” in front of the version number.
Install nodejs with the following command

dpkg -i node_*

Create a MySQL or a MariaDB database

CREATE DATABASE etherpad CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON etherpad.* TO etherpad@localhost IDENTIFIED BY '__yourPasswd__';

Install and configure Etherpad Lite

Go to the directory where you want to install Etherpad Lite and clone the git repository

cd /var/www/
git clone git://

Edit the configuration file

cd etherpad-lite/
cp settings.json.template settings.json
vim settings.json

and change the following settings:

// change the IP Address
"ip": "",
// set a session key
"sessionKey" : "rAnD0m5tRIng",
//configure the connection settings
 "dbType" : "mysql",
 "dbSettings" : {
   "user"    : "etherpad",
   "host"    : "localhost",
   "password": "__yourPassword__",
   "database": "etherpad"
// add admin user
"users": {
 "admin": {
 "password": "__yourAdminPassword__",
 "is_admin": true

Create a system user

adduser --system --home=/var/www/etherpad-lite/ --group etherpad
chown -R etherpad: /var/www/etherpad-lite/

Start Etherpad Lite for the first time:

su -c "/var/www/etherpad-lite/bin/" -s /bin/bash etherpad

If everything is OK, kill all processes belonging to the etherpad user

pkill -u etherpad

Create an init script using your favorite editor


# Provides:          etherpad-lite
# Required-Start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts etherpad lite
# Description:       starts etherpad lite using start-stop-daemon

DESC="Etherpad Lite"

set -e

. /lib/lsb/init-functions

start() {
  echo "Starting $DESC... "

    start-stop-daemon --start --chuid "$USER:$GROUP" --background --make-pidfile --pidfile /var/run/$ --exec $EPLITE_DIR/$EPLITE_BIN -- $LOGFILE || true
  echo "done"

#We need this function to ensure the whole process tree will be killed
killtree() {
    local _pid=$1
    local _sig=${2-TERM}
    for _child in $(ps -o pid --no-headers --ppid ${_pid}); do
        killtree ${_child} ${_sig}
    kill -${_sig} ${_pid}

stop() {
  echo "Stopping $DESC... "
   while test -d /proc/$(cat /var/run/$; do
    killtree $(cat /var/run/$ 15
    sleep 0.5
  rm /var/run/$
  echo "done"

status() {
  status_of_proc -p /var/run/$ "" "etherpad-lite" && exit 0 || exit $?

case "$1" in
      echo "Usage: $NAME {start|stop|restart|status}" >&2
      exit 1

exit 0
chmod +x /etc/init.d/etherpad-lite
update-rc.d etherpad-lite defaults
/etc/init.d/etherpad-lite start

Create a new virtual host (server block)

vim /etc/nginx/sites-available/domain.tld.conf

server {
 listen       80;
 server_name  domain.tld;
   location / {
     proxy_pass        http://localhost:9001/;
     proxy_set_header  Host $host;
     proxy_buffering   off;

ln -s /etc/nginx/sites-available/domain.tld /etc/nginx/sites-enabled/domain.tld
/etc/init.d/nginx restart

In case you are using Apache, you can use the following virtual host directive

vim /etc/apache2/sites-available/domain.tld

<VirtualHost *:80>
    ServerName domain.tld
    ServerSignature Off
    <IfModule mod_proxy.c>
        ProxyVia On
        ProxyRequests Off
        ProxyPass /
        ProxyPassReverse /
        ProxyPreserveHost on
        <Proxy *>
            Options FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all

ln -s /etc/apache2/sites-available/domain.tld /etc/apache2/sites-enabled/domain.tld
a2enmod proxy proxy_http
/etc/init.d/apache2 restart

That’s it! You can now access Etherpad Lite from your browser.

Etherpad project homepage on GitHub

If you are looking for other options, you may want to read our guide on How to Install Etherpad on Debian 9.

9 thoughts on “How to Install Etherpad Lite on Debian Wheezy”

  1. Please link to the install documentation on the README on github. Thanks

    • We added a link at the bottom of the post. Thanks.

  2. Thanks for the tutorial! The bash script could use some improvements; if the server is already stopped, the stop method gets into an infinite loop. Fix:

    stop() {
    echo "Stopping $DESC... "
    if [ -f /var/run/$ ]; then
    while test -d /proc/$(cat /var/run/$; do
    killtree $(cat /var/run/$ 15
    sleep 0.5
    rm /var/run/$
    echo "Could not find the etherpad-lite process, maybe it is already stopped?"
    echo "done"

    It is also a good idea to set the ulimit when the process starts:

    ulimit -n 8192

  3. Hi, I followed this how-to and works fine except access to etherpad .

    I have a machine with a lamp and I need connect to etherpad from anywhere ( at work, at school, at girlfriend’s house… )

    I can connect to etherpad in the host desktop but i cannot connect from another machine at same LAN and much least from outside

    I always get ” Connection refused” error

    Any suggestion?

    Thanks in advance

    • Please check if your firewall is blocking the access to your desktop and make sure that the port you are trying to connect to is open.


  4. Thanks ! Very usefull.

    Don’t forget (as I do…) to:
    1) name the Apache config file domain.tld.conf (and not domain.tld)
    2) enable BOTH proxy and proxy_http modules in Apache : a2enmod proxy proxy_http


    • We updated the tutorial, thanks for your suggestion.

  5. Just a note, I think this one has a typo ln -s /etc/nginx/sites-available/domain.tld /etc/nginx/sites-enabled/domain.tld
    It should be […]tld.conf in the first instance… I think… Thanks to your tutorial I managed to set up etherpad on raspberry~

Leave a Comment

To prove you are human please solve the following *