systemli.etherpad
ansible-role-etherpad
This role helps you install, set up, and manage Etherpad Lite. You can configure Etherpad to use storage options like MySQL (or MariaDB), Redis, and PostgreSQL.
Currently, only MySQL can create users and databases. For PostgreSQL, you'll need to handle those tasks yourself. If you want to automate it, you can use another role called geerlingguy.postgresql.
This playbook also lets you install some Etherpad plugins:
- ep_delete_after_delay (to remove inactive pads after a certain time)
- ep_headerauth (to log in users through HTTP headers, useful for single sign-on solutions like LemonLDAP::NG)
Role Variables
The playbook needs special settings. You must set the etherpad_api_key
!
etherpad_db_type: dirty
This variable defines what kind of storage you want for Etherpad (default is dirty, but don’t use it in production). Set this to one of the following values: dirty, mysql, redis, or postgres.
etherpad_postgres_database_host: localhost
etherpad_postgres_database_name: etherpad
etherpad_postgres_database_user: etherpad
etherpad_postgres_database_password:
etherpad_postgres_database_port: 5432
etherpad_postgres_database_ssl_policy: "disabled"
These variables are for configuring Etherpad with PostgreSQL. To use them, make sure to set etherpad_db_type
to postgres
.
etherpad_headerauth_username_header: x-authenticated-user
etherpad_headerauth_displayname_header: x-authenticated-name
These are for the ep_headerauth plugin (authentication via HTTP headers). If you want to use this plugin, set etherpad_trust_proxy
and etherpad_require_authentication
to True.
For more details about the available variables and their default values, check defaults/main.yml
.
Example Playbook
- hosts: servers
roles:
- { role: systemli.etherpad }
Testing & Development
Tests
To develop and test the role, we use GitHub Actions, Molecule, and Vagrant. You can run local tests easily with:
```bash
molecule test
```
You need to have Molecule, Vagrant, and python-vagrant
installed.
License
GPLv3