Public | Automated Build

Last pushed: 5 days ago
Short Description
Etherpad Lite image, with mysql support for the database backend.
Full Description

Etherpad Lite image for docker

This is a docker image for Etherpad Lite collaborative
text editor. The Dockerfile for this image has been inspired by the
official Wordpress Dockerfile and
johbo's etherpad-lite

This image uses a database (mysql or postgres) container for the backend for
the pads. It is based on debian jessie instead of the official node docker
image, since the latest stable version of etherpad-lite does not support npm 2.

About Etherpad Lite

From the official website:

Etherpad allows you to edit documents collaboratively in real-time, much like a live multi-player editor that runs in your browser. Write articles, press releases, to-do lists, etc. together with your friends, fellow students or colleagues, all working on the same document at the same time.

All instances provide access to all data through a well-documented API and supports import/export to many major data exchange formats. And if the built-in feature set isn't enough for you, there's tons of plugins that allow you to customize your instance to suit your needs.

You don't need to set up a server and install Etherpad in order to use it. Just pick one of publicly available instances that friendly people from everywhere around the world have set up. Alternatively, you can set up your own instance by following our installation guide


First you need a running mysql container, for example:

$ docker network create ep_network
$ docker run -d --network ep_network -e MYSQL_ROOT_PASSWORD=password --name ep_mysql mysql

Finally you can start an instance of Etherpad Lite:

$ docker run -d \
    --network ep_network \
    -e ETHERPAD_DB_HOST=ep_mysql \
    -e ETHERPAD_DB_PASSWORD=password \
    -p 9001:9001 \

Etherpad will automatically create an etherpad database in the specified mysql
server if it does not already exist.
You can now access Etherpad Lite from http://localhost:9001/

Environment variables

This image supports the following environment variables:

  • ETHERPAD_TITLE: Title of the Etherpad Lite instance. Defaults to "Etherpad".
  • ETHERPAD_PORT: Port of the Etherpad Lite instance. Defaults to 9001.

  • ETHERPAD_ADMIN_PASSWORD: If set, an admin account is enabled for Etherpad,
    and the /admin/ interface is accessible via it.

  • ETHERPAD_ADMIN_USER: If the admin password is set, this defaults to "admin".
    Otherwise the user can set it to another username.

  • ETHERPAD_DB_TYPE: Type of databse to use. Defaults to mysql.

  • ETHERPAD_DB_HOST: Hostname of the database to use. Defaults to mysql.
  • ETHERPAD_DB_USER: By default Etherpad Lite will attempt to connect as root
    to the database container.
  • ETHERPAD_DB_PASSWORD: Password to use, mandatory. If legacy links
    are used and ETHERPAD_DB_USER is root, then MYSQL_ENV_MYSQL_ROOT_PASSWORD is
    automatically used.
    when using Docker secrets.
  • ETHERPAD_DB_NAME: The database to use. Defaults to etherpad. If the
    database is not available, it will be created when the container is launched
    (only if the database type is either mysql or postgres, and the user need to
    have the right to create the database).
  • ETHERPAD_DB_CHARSET: The charset to use. Defaults to utf8mb4.

The generated settings.json file will be available as a volume under

Docker Pull Command
Source Repository

Comments (15)
4 months ago

I noticed that the mySQL DB contains a table "store" but it's empty. If I restart the containers, all pads are lost.

Does anyone know the reason?

Obviously the DB connection needs to work because the store table is created. I cannot see any error messages in the docker logs...

6 months ago

My .env variable definition was wrong:
and caused the " to appear literally in the config file, breaking it, like so:
"title": ""Etherpad"",

lesson_learned=do not use " in .env files

6 months ago

I just built the image from Dockerfile and starting as described in readme works flawlessy. So it must be my setup here (docker-compose with .env vars). Sorry for the noise.

6 months ago

Here, the container does not start, but loops the following error. Any ideas?

etherpad-lite    | Ensure that all dependencies are up to date...  If this is the first time you have run Etherpad please be patient.
etherpad-lite    | npm WARN package.json async-stacktrace@0.0.2 No repository field.
etherpad-lite    | npm WARN package.json channels@0.0.4 No repository field.
etherpad-lite    | npm WARN package.json tinycon@0.0.1 No repository field.
etherpad-lite    | Ensure jQuery is downloaded and up to date...
etherpad-lite    | Clearing minified cache...
etherpad-lite    | Ensure custom css/js files are created...
etherpad-lite    | Started Etherpad...
etherpad-lite    | [2017-03-18 08:28:42.857] [ERROR] console - There was an error processing your settings.json file: Unexpected token E
8 months ago

Sorry, my bad, it was a browser caching issue. Reloading the page using Ctrl+Shift+R fixed the problem.

8 months ago

The current version seems to be broken:

An error occured while loading the pad

Uncaught Error: The module at "underscore" does not exist. in https://pad..../static/js/require-kernel.js (line 589)

2 years ago

@jacobhenner I'd say you should handle SSL with a nginx proxy that points to the etherpad container

2 years ago

@juanpereyra you should be able to use the automatic link env variables :
It should be :

MYSQL_PORT_3306_TCP_ADDR=ip address of your mysql instance

But, I think it is better to launch a mysql in a container anyway. And with docker swarm, you should be able to link between hosts.

2 years ago

Can SSL/TLS capabilities be added?

2 years ago

I get Error response from daemon: Cannot start container 506ea8fa400bbfa2f6fa1a9fef3aeafdaaabcd65d6526cd5cc09de2202f2c091: Cannot link to a non running container: /ep_mysql AS /jolly_sinoussi/mysql when I try to run the etherpad container. I run the mysql first. I'm new to docker, so it might be something trivial. Thank you!