debops.etherpad default variables
Sections
APT packages
- etherpad__base_packages
List of base APT packages required for Etherpad.
etherpad__base_packages: [ 'build-essential', 'pkg-config', 'libssl-dev', 'libpq-dev', 'curl', 'git' ]
- etherpad__document_packages
List of APT packages to install for document import/export support.
etherpad__document_packages: [ 'abiword' ]
- etherpad__packages
List of additional APT packages to install with Etherpad.
etherpad__packages: []
Application user, group, directories
- etherpad_system_name
Base name for Etherpad instance
etherpad_system_name: 'etherpad-lite'
- etherpad_user
Name of the system user account for Etherpad.
etherpad_user: '{{ etherpad_system_name }}'
- etherpad_group
Name of the system group account for Etherpad.
etherpad_group: '{{ etherpad_system_name }}'
- etherpad_home
Home directory of Etherpad.
etherpad_home: '{{ (ansible_local.fhs.app | d("/var/local")) + "/" + etherpad_user }}'
- etherpad__shell
The default shell used by the Etherpad account.
etherpad__shell: '/usr/sbin/nologin'
- etherpad_src_dir
Etherpad sources root directory.
etherpad_src_dir: '{{ (ansible_local.fhs.src | d("/usr/local/src")) + "/" + etherpad_system_name }}'
- etherpad_log_dir
Path where Etherpad logs are stored.
etherpad_log_dir: '{{ (ansible_local.fhs.log | d("/var/log")) + "/" + etherpad_system_name }}'
- etherpad_log_to_file
By default Etherpad log into syslog, set to true if you want to log into a file instead of syslog.
etherpad_log_to_file: False
Basic configuration
- etherpad_version
Etherpad git version to install.
etherpad_version: '{{ "1.7.0" if (ansible_local.nodejs.npm_version | d() is version("6.4.0", "<")) else "1.7.5" }}'
- etherpad_source_address
git repository address.
etherpad_source_address: 'https://github.com/ether'
- etherpad_repository
git repository name.
etherpad_repository: 'etherpad-lite'
- etherpad_dependencies
Should the
debops.etherpadrole manage it's own dependencies (database, web server)?etherpad_dependencies: True
- etherpad_domain
What domain will be configured for Etherpad.
etherpad_domain: [ 'pad.{{ ansible_domain }}' ]
- etherpad_title
Title of the Etherpad instance.
etherpad_title: 'Etherpad'
- etherpad_mail_admin
E-mail address of the instance administrator, will be shown on each new pad (see
etherpad_welcome_textbelow).etherpad_mail_admin: 'root@{{ ansible_domain }}'
- etherpad_welcome_text
Text displayed on all new pads by default.
etherpad_welcome_text: | Welcome to {{ etherpad_title }}! This pad is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents. Contact with administrator: mailto:{{ etherpad_mail_admin }}
Database and network
- etherpad_database_server
FQDN of the database host. It will be configured by the debops.mariadb or debops.postgresql role.
etherpad_database_server: '{{ ansible_local.mariadb.server | d(ansible_local.postgresql.server | d("")) }}'
- etherpad_database_user
Database user to use for Etherpad.
etherpad_database_user: '{{ etherpad_system_name }}'
- etherpad_database_name
Name of the database to use for Etherpad.
etherpad_database_name: '{{ etherpad_system_name }}'
- etherpad_database_password
Database password for the Etherpad database user.
etherpad_database_password: "{{ lookup('password', secret + '/' + ('mariadb' if etherpad__database == 'mysql' else ('postgresql' if etherpad__database == 'postgres' else etherpad__database)) + '/' + (ansible_local.mariadb.delegate_to + '/' if ansible_local.mariadb.delegate_to | d() else (ansible_local.postgresql.delegate_to + '/' if ansible_local.postgresql.delegate_to | d() else '')) + (ansible_local.mariadb.port + '/' if ansible_local.mariadb.port | d() else (ansible_local.postgresql.port + '/' if ansible_local.postgresql.port | d() else '')) + '/credentials/' + etherpad_database_user + '/password length=48') }}"
- etherpad__database
Database to use for data storage (choices: sqlite, mysql, postgresql, dirty). Choose mysql even when you use different mysql flavors. More databases will be available in the future.
etherpad__database: '{{ "mysql" if (ansible_local | d() and ansible_local.mariadb is defined) else ("postgres" if (ansible_local | d() and ansible_local.postgresql is defined) else "sqlite") }}'
- etherpad_database_connection
Connection type used for the database.
etherpad_database_connection: 'socket'
- etherpad_database_config
Etherpad database configuration map.
etherpad_database_config: dirty: filename: 'var/dirty.db' sqlite: filename: 'var/sqlite.db' mysql: hostname: '{{ etherpad_database_server }}' username: '{{ etherpad_database_user }}' database: '{{ etherpad_database_name }}' password: '{{ etherpad_database_password }}' socket: '/var/run/mysqld/mysqld.sock' port: '3306' postgres: hostname: '{{ etherpad_database_server }}' username: '{{ etherpad_database_user }}' database: '{{ etherpad_database_name }}' password: '{{ etherpad_database_password }}' socket: '/var/run/postgresql' port: '5432'
- etherpad_bind
IP address where etherpad-lite daemon will listen for connections.
etherpad_bind: '127.0.0.1'
- etherpad_port
Port where etherpad-lite daemon will listen for connections.
etherpad_port: '9001'
Authentication
- etherpad_admins
List of Etherpad administrative accounts. Passwords are generated automatically and are saved in the secret/ directory. Refer to the debops.secret role for more details.
etherpad_admins: [ 'admin' ]
- etherpad_users
List of Etherpad user accounts. Passwords are generated automatically and are saved in the secret/ directory. Refer to the debops.secret role for more details.
etherpad_users: []
- etherpad_password_hashing_algo
Hashing algorithm to use for handling passwords. See https://github.com/LaKing/ep_hash_auth for details. Currently only 'sha512' is supported by the role.
etherpad_password_hashing_algo: 'sha512'
- etherpad_password_hashing_rounds
TODO: Not implemented yet. How much rounds the hashing algorithm should do before using using the password hash. This option depends on the hashing algorithm selected by
etherpad_password_hashing_algo. Some hashing algorithms implementations may not support rounds. The SHA family currently does not and defaults to one round which is considered insecure. bcrypt however does support it.etherpad_password_hashing_rounds: '10'
- etherpad_require_authentication
Require authentication from all users.
etherpad_require_authentication: False
- etherpad_require_authorization
Require authorization by a module or user with
is_admin = True.etherpad_require_authorization: False
- etherpad_require_session
Require session to access pads.
etherpad_require_session: False
- etherpad_edit_only
Users may edit pads but not create new ones. Pad creation is only via the API. This applies both to group pads and regular pads.
etherpad_edit_only: False
- etherpad_trust_proxy
Trust the reverse proxy (nginx)?
etherpad_trust_proxy: False
Etherpad customization
- etherpad_abiword
Enable Abiword support (for document import)?
etherpad_abiword: True
- etherpad__default_plugins
Default Etherpad plugin list (alphabetically sorted).
etherpad__default_plugins: - name: 'pg' state: '{{ "present" if (etherpad__database == "postgres") else "absent" }}' - name: 'sqlite3' state: '{{ "present" if (etherpad__database == "sqlite") else "absent" }}' - 'gyp' - 'bcrypt' - 'ep_adminpads' - 'ep_align' - 'ep_font_color' - 'ep_font_family' - 'ep_font_size' - 'ep_hash_auth' - 'ep_headings' - 'ep_hide_referrer' - 'ep_line_height' - 'ep_linkify' - 'ep_message_all' - 'ep_padlist' - 'ep_page_view' - 'ep_print' - 'ep_rss' - 'ep_scrollto' - 'ep_subscript' - 'ep_superscript'
- etherpad_plugins
List of additional Etherpad plugins to enable. Checkout the list of available plugins for more: https://static.etherpad.org/plugins.html.
etherpad_plugins: []
Other options
- etherpad_allow
Allow access only from selected IP addresses/CIDR networks. If empty, allow access from everywhere.
etherpad_allow: []
- etherpad_minify
Minify CSS and JS assets?
etherpad_minify: True
- etherpad_max_age
Maximum age of cached assets (6 hours by default).
etherpad_max_age: '{{ (60 * 60 * 6) }}'
- etherpad_disable_ip_logging
Disable IP addresses in logs?
etherpad_disable_ip_logging: False
- etherpad_loglevel
Etherpad log level (choices: DEBUG, INFO, WARN, ERROR)
etherpad_loglevel: 'INFO'
- etherpad_custom_json
Here you can define custom settings.json entries in YAML format, which will be converted to JSON and put at the end of the configuration file.
etherpad_custom_json: False
- etherpad_api_calls
Allows you configure all aspects of Etherpad via its API. See http://etherpad.org/doc/v1.5.1/#index_api_methods for details.
etherpad_api_calls: [] # - method: 'createPad' # args: # 'padID': 'testing'
- etherpad_api_version
Against which API version should the API calls be executed? Only applies for
etherpad_api_calls.etherpad_api_version: '1.2.12'
- etherpad_api_key_file
Filepath of the API key file.
etherpad_api_key_file: '{{ etherpad_home + "/" + etherpad_repository }}/APIKEY.txt'
- etherpad_api_calls_debug
If True, you will get debugging output for the API calls defined by
etherpad_api_calls. Default is False.etherpad_api_calls_debug: False
Configuration for other Ansible roles
- etherpad__etc_services__dependent_list
Configuration for the debops.etc_services Ansible role.
etherpad__etc_services__dependent_list: - name: 'etherpad-lite' port: '{{ etherpad_port }}' comment: 'Etherpad Lite'
- etherpad__logrotate__dependent_config
Configuration for the debops.logrotate Ansible role.
etherpad__logrotate__dependent_config: - filename: 'etherpad-lite' log: '{{ etherpad_log_dir + "/*.log" }}' options: | weekly missingok rotate 4 compress notifempty create 644 {{ etherpad_user }} {{ etherpad_group }} comment: 'Logrotate configuration for etherpad-lite'
- etherpad__mariadb__dependent_users
User configuration for the debops.mariadb Ansible role.
etherpad__mariadb__dependent_users: - name: '{{ etherpad_database_user }}' password: '{{ etherpad_database_password }}' owner: '{{ etherpad_user }}' group: '{{ etherpad_group }}' home: '{{ etherpad_home }}'
- etherpad__mariadb__dependent_databases
Database configuration for the debops.mariadb Ansible role.
etherpad__mariadb__dependent_databases: - database: '{{ etherpad_database_name }}'
- etherpad__postgresql__dependent_roles
User configuration for the debops.postgresql Ansible role.
etherpad__postgresql__dependent_roles: - name: '{{ etherpad_database_user }}' password: '{{ etherpad_database_password }}' flags: [ 'NOSUPERUSER', 'NOCREATEDB', 'LOGIN' ]
- etherpad__postgresql__dependent_databases
Database configuration for the debops.postgresql Ansible role.
etherpad__postgresql__dependent_databases: - name: '{{ etherpad_database_name }}' port: '5432' owner: '{{ etherpad_database_user }}' encoding: '{{ etherpad_database_encoding | d(omit) }}' lc_collate: '{{ etherpad_database_collate | d(omit) }}' lc_ctype: '{{ etherpad_database_ctype | d(omit) }}'
- etherpad__nginx__dependent_upstreams
Upstream configuration for the debops.nginx Ansible role.
etherpad__nginx__dependent_upstreams: - name: '{{ etherpad_system_name }}' enabled: True server: '127.0.0.1:{{ etherpad_port }}'
- etherpad__nginx__dependent_servers
Server configuration for the debops.nginx Ansible role.
etherpad__nginx__dependent_servers: - by_role: 'debops.etherpad' enabled: True favicon: False name: '{{ etherpad_domain }}' filename: 'debops.etherpad' location: # Allow normal files to pass through '~ ^/(locales/|locales.json|admin/|static/|pluginfw/|javascripts/|socket.io/|ep/|minified/|api/|ro/|error/|jserror/|favicon.ico|robots.txt)': | proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_buffering off; proxy_pass http://{{ etherpad_system_name }}; # Redirect to force /p/* URLs to the friendly version '/p/': | rewrite ^/p/(.*) /$1 redirect; # Handle redirects '/redirect': | proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_buffering off; proxy_pass http://{{ etherpad_system_name }}; # Match the home page '~ ^/$': | proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_buffering off; proxy_pass http://{{ etherpad_system_name }}; # Handle pad URLs here '/': | rewrite ^/admin(.*) /admin/$1 redirect; rewrite ^/list(.*) /list break; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_buffering off; proxy_pass http://{{ etherpad_system_name }}/p/; proxy_redirect / /p/; location_allow: '~ ^/(locales/|locales.json|admin/|static/|pluginfw/|javascripts/|socket.io/|ep/|minified/|api/|ro/|error/|jserror/|favicon.ico|robots.txt)': '{{ etherpad_allow }}' '/p/': '{{ etherpad_allow }}' '/redirect': '{{ etherpad_allow }}' '~ ^/$': '{{ etherpad_allow }}' '/': '{{ etherpad_allow }}'