Access Etherpad
- User interface:
https://<SERVER_IP> - Admin interface:
https://<SERVER_IP>/admin - Admin credentials: Username
admin, password stored in.envasADMIN_PASSWORD
Add Users via Admin Settings
1. Visit: https://<SERVER_IP>/admin
2. Go to Settings.
3. A JSON configuration file will be displayed.
4. Locate the users section:
"users": {
"admin": {
// 1) "password" can be replaced with "hash" if you install ep_hash_auth
// 2) please note that if password is null, the user will not be created
"password": "${ADMIN_PASSWORD:null}",
"is_admin": true
},
"user": {
// 1) "password" can be replaced with "hash" if you install ep_hash_auth
// 2) please note that if password is null, the user will not be created
"password": "test",
"is_admin": false
}
},
5. Add a new user (follow valid JSON syntax):
"users": {
"admin": {
// 1) "password" can be replaced with "hash" if you install ep_hash_auth
// 2) please note that if password is null, the user will not be created
"password": "${ADMIN_PASSWORD:null}",
"is_admin": true
},
"user": {
// 1) "password" can be replaced with "hash" if you install ep_hash_auth
// 2) please note that if password is null, the user will not be created
"password": "test",
"is_admin": false
},
"newuser": {
"password": "strongpassword",
"is_admin": false
}
},
6. Click Save Settings.
7. Click Restart Etherpad.
Important Files and Directories
- Application installation:
/root/etherpad - Docker Compose file:
/root/etherpad/docker-compose.yml - Environment variables:
/root/etherpad/.env - PostgreSQL database data:
/var/lib/docker/volumes/etherpad_postgres_data/_data - Etherpad runtime data:
/var/lib/docker/volumes/etherpad_etherpad-var/_data - Plugins directory:
/var/lib/docker/volumes/etherpad_plugins/_data - Nginx configuration:
/etc/nginx/sites-available/etherpad - SSL certificates:
/etc/nginx/ssl/
Service Management
List containers:
docker ps
Restart containers:
docker compose -f /root/etherpad/docker-compose.yml restart
Follow Etherpad logs:
docker compose -f /root/etherpad/docker-compose.yml logs -f
Restart Nginx:
systemctl restart nginx
Enabling SSL with a Domain
1. Point your domain to the server IP.
2. Edit Nginx config and replace both server_name <IP>; with your domain (<your-domain>) for both HTTP (port 80) and HTTPS (port 443) blocks:
vim /etc/nginx/sites-available/etherpad
3. Install Certbot:
apt install -y certbot python3-certbot-nginx
4. Run the following command to generate a valid Let’s Encrypt certificate:
certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com
5. Replace SSL paths in Nginx config:
vim /etc/apache2/sites-available/etherpad
# Before:
# ssl_certificate /etc/nginx/ssl/fullchain.pem;
# ssl_certificate_key /etc/nginx/ssl/privkey.pem;
# After:
# ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
6. Restart Nginx to apply the changes:
systemctl restart nginx
7. Open your browser and visit: https://yourdomain.com
Notes
- Etherpad is served behind an Nginx reverse proxy for SSL termination and improved security.
- A self-signed certificate may trigger browser warnings; this is expected unless Let’s Encrypt is used.
- Some browsers may display errors or cause Etherpad to function incorrectly.
- Etherpad has been tested and confirmed working on Firefox, which is recommended for best compatibility.