8.2.21 Deploying and configuring Etherpad
Etherpad is an open-source, web-based text editor that allows multiple users to edit the same document in real time. Each participant is assigned their own color, making it easy to track changes visually. It’s an ideal solution for collaborative work on notes, meeting minutes, or brainstorming sessions, offering instant synchronization and the ability to review edit history.
Prerequisites and Preparation
Before installing Etherpad, make sure your server meets the minimum requirements and is ready to work with Docker.
Requirements
- Virtual or dedicated server with Ubuntu 24.04 LTS installed.
- At least 1 GB of RAM (2 GB recommended for stable operation).
- At least 10 GB of free disk space.
- Root access or a user with sudo privileges.
- Installed Docker and Docker Compose. This article does not cover their installation.
Environment Variables
During the setup process, you may need to replace the following placeholders:
SERVER_IP
: Your server’s IP address.YOUR_ADMIN_PASSWORD
: A secure password for the Etherpad administrator.YOUR_DB_USER
: The database username.YOUR_DB_PASSWORD
: The database user password.YOUR_DB_NAME
: The database name.
Updating Ubuntu
Before installing any new packages, it’s recommended to update the package list and upgrade installed packages to the latest versions. This ensures you’re using the most up-to-date software with security and stability fixes.
Run the following command:
sudo apt update && sudo apt upgrade -y
Creating the Etherpad Project Directory
It’s good practice to create a separate directory for each Docker Compose project. This helps keep files organized and isolated.
- Create a directory for Etherpad:
mkdir -p ~/etherpad
Explanation:
mkdir
— creates a directory.-p
— creates parent directories if they do not exist.~/etherpad
— the path to the new directory in your home folder.
- Navigate to the directory:
cd ~/etherpad
Explanation: All further actions related to the docker-compose.yml
file will be performed from this directory.
Creating the docker-compose.yml File for Etherpad
The docker-compose.yml
file is the heart of your multi-container application. It defines all the services (containers), networks, and volumes required for Etherpad.
- Create the
docker-compose.yml
file:
nano docker-compose.yml
- Paste the following content:
services:
etherpad:
image: etherpad/etherpad:1.9.0
ports:
- "9001:9001"
environment:
# Built-in file-based DB (not for production)
- DB_TYPE=sqlite
- DB_PATH=/opt/etherpad-lite/var
# Admin (optional)
- ADMIN_USER=admin
- ADMIN_PASSWORD=YOUR_ADMIN_PASSWORD
# Basic settings
- TITLE=Etherpad
- TRUST_PROXY=true
volumes:
- etherpad_data:/opt/etherpad-lite/var
restart: always
volumes:
etherpad_data:
Save the file (Ctrl+O
, Enter
, Ctrl+X
).
Configuring Etherpad via docker-compose.yml
Database Settings (SQLite)
By default, SQLite is used, which requires no additional configuration other than specifying the database file path:
- DB_TYPE=sqlite
- DB_PATH=/opt/etherpad-lite/var
Explanation:
DB_TYPE=sqlite
— tells Etherpad to use SQLite.DB_PATH
— location ofdirty.db
inside the container (data is persisted via the named volume).
Starting Etherpad with Docker Compose
Make sure you are in the ~/etherpad
directory containing your docker-compose.yml
file, then run:
docker compose up -d
Verifying the Installation
Viewing Logs
docker compose logs -f etherpad
Checking Service Status
docker compose ps
Accessing Etherpad in the Browser
Open your browser and go to:
http://SERVER_IP
:9001
Enabling Additional Features
Installing Etherpad Plugins
- Go to:
http://SERVER_IP:9001/admin
- Log in using the
YOUR_ADMIN_PASSWORD
. - In the plugin management section, search for and install plugins.
Common Issues
Common Issues
Error / Symptom | Cause | Solution | Diagnostics (logs / commands) |
---|---|---|---|
Etherpad unavailable on port 9001 | The container is not running or the port is in use. | Make sure the etherpad container is running. Check if port 9001 is occupied by another application on the host. | docker compose ps , docker logs etherpad , `sudo ss -tulpn |
Domain access not working (Nginx) | Nginx configuration error, the domain does not point to the server, or Nginx was not restarted. | Check the Nginx configuration syntax, ensure domain records (A/AAAA) point to your server’s IP. Restart Nginx. | sudo nginx -t , sudo systemctl status nginx , dig YOUR_DOMAIN |
Changes in settings.json not applied | The container was not restarted after editing the file. | Restart the Etherpad container: docker compose down && docker compose up -d . |
docker logs etherpad (look for configuration load messages) |
Errors when working with pads (e.g., saving) | Permission issues with the ./data directory or insufficient disk space. | Make sure the Docker user has write permissions to ~/etherpad/data. Check available disk space. | docker logs etherpad , df -h , ls -l ~/etherpad/data |
Unable to install plugins via the web interface | Network access issues from the container or incorrect permissions. | Check the container’s network connectivity. Make sure Etherpad can access the plugin repository. | docker logs etherpad |
Useful Links
Official Documentation