Ansible Role linuxfabrik.lfops.collabora¶
This role installs and configures either Collabora Online Development Edition or Collabora Online Enterprise Edition. Note: To use Collabora Enterprise, you need an active Collabora Subscription.
Available since LFOps 2.0.0.
Dependent Roles¶
Any LFOps playbook that installs this role runs these for you. Optional ones can be disabled via the playbook's skip variables.
- The official Collabora CODE Repository must be enabled (role: linuxfabrik.lfops.repo_collabora_code).
These roles are not enabled by default; enable them via the playbook's skip variables if needed:
- The Collabora Enterprise repository can be enabled instead (role: linuxfabrik.lfops.repo_collabora).
Tags¶
collabora
- Installs and configures either Collabora CODE or Collabora Enterprise.
- Triggers: coolwsd.service restart.
collabora:configure
- Deploys
/etc/coolwsd/coolwsd.xmland/etc/logrotate.d/coolwsd. - Triggers: coolwsd.service restart.
collabora:spell_check
- Installs spell checking tools.
- Triggers: none.
collabora:state
- Manages the state of the coolwsd systemd service.
- Triggers: none.
Optional Role Variables¶
collabora__coolwsd_allowed_languages__host_var / collabora__coolwsd_allowed_languages__group_var
- List of dictionaries containing the supported languages of Writing Aids (spell checker, grammar checker, thesaurus, hyphenation) on this instance. Allowing too many has negative effect on startup performance.
- Type: List of dictionaries.
-
Default:
'de_AT''de_CH''de_DE''en_AU''en_CA''en_GB''en_US''fr''it_IT'
-
Subkeys:
-
name:- Mandatory. Name of the language.
- Type: String.
-
state:- Optional. Either
presentorabsent. - Type: String.
- Default:
'present'
- Optional. Either
-
collabora__coolwsd_content_security_policy
- List of CSP policy-directives. See https://w3.org/TR/CSP2.
- Type: List of strings.
- Default:
[]
collabora__coolwsd_deepl_api_url
- URL for the deepl API. Only works if
collabora__coolwsd_deepl_enabledis true. - Type: String.
- Default:
'https://api-free.deepl.com/v2/translate'
collabora__coolwsd_deepl_auth_key
- Auth Key generated by your deepl account. Only works if
collabora__coolwsd_deepl_enabledis true. - Type: String.
- Default:
''
collabora__coolwsd_deepl_enabled
- If true, shows translate option as a menu entry in the compact view and as an icon in the tabbed view.
- Type: Bool.
- Default:
false
collabora__coolwsd_experimental_features
- If experimental features should be enabled or not.
- Type: Bool.
- Default:
false
collabora__coolwsd_logging_file_enable
- If coolwsd should write to a logfile or not.
- Type: Bool.
- Default:
true
collabora__coolwsd_lok_allow
- Allowed hosts as an external data source inside edited files. All allowed post_allow.host and storage.wopi entries are also considered to be allowed as a data source. Used for example in: PostMessage Action_InsertGraphics, =WEBSERVICE() function, external reference in the cell.
- Type: List of strings.
- Default:
[]
collabora__coolwsd_out_of_focus_timeout_secs
- The maximum number of seconds before dimming and stopping updates when the browser tab is no longer in focus.
- Type: Number.
- Default:
120
collabora__coolwsd_post_allow
- List of client IP addresses to allow for POST(REST).
- Type: List of strings.
- Default:
[]
collabora__coolwsd_ssl_enable
- Controls whether SSL encryption between coolwsd and the network is enabled (do not disable for production deployment).
- Type: Bool.
- Default:
false
collabora__coolwsd_ssl_settings_ca_file_path
- Path to the ca file. Set this when coolwsd is SSL-terminating.
- Type: String.
- Default:
'/etc/coolwsd/ca-chain.cert.pem'
collabora__coolwsd_ssl_settings_cert_file_path
- Path to the cert file. Set this when coolwsd is SSL-terminating.
- Type: String.
- Default:
'/etc/coolwsd/cert.pem'
collabora__coolwsd_ssl_settings_key_file_path
- Path to the key file. Set this when coolwsd is SSL-terminating.
- Type: String.
- Default:
'/etc/coolwsd/key.pem'
collabora__coolwsd_ssl_settings_ssl_verification
- Enable or disable SSL verification of hosts remote to coolwsd. If true SSL verification will be strict, otherwise certs of hosts will not be verified. This covers the connections coolwsd opens itself, above all the ones to the WOPI host (Nextcloud and the like) for reading and writing the documents, and along with them the remote configuration and font downloads and the allowed external data sources. It does not affect the certificate coolwsd presents to browsers, which is
collabora__coolwsd_ssl_enableandcollabora__coolwsd_ssl_termination. - Type: Bool.
- Default:
true - Applies to every supported version except 24.04.4, whose
coolwsd.xmlhas no such setting.
collabora__coolwsd_ssl_termination
- Enable if coolwsd is behind a SSL-terminating proxy and therefore should act as if its using https but actually receives http.
- Type: Bool.
- Default:
true
collabora__coolwsd_storage_wopi__host_var / collabora__coolwsd_storage_wopi__group_var
- List of dictionaries containing regex pattern of hostname to allow access to the backend storage. Usually the hostname application that uses Collabora CODE, for example Nextcloud.
- Type: List of dictionaries.
-
Default:
localhost, which can be removed by setting it tostate: 'absent'. -
Subkeys:
-
name:- Mandatory. Regex pattern of the hostname, without a scheme. The role prefixes it with
https://, which coolwsd requires to parse the hostname out of the entry. The scheme is not used for matching, so it does not have to match how the WOPI host is actually reached. - Type: String.
- Mandatory. Regex pattern of the hostname, without a scheme. The role prefixes it with
-
state:- Optional. Either
presentorabsent. - Type: String.
- Default:
'present'
- Optional. Either
-
collabora__coolwsd_welcome_enable
- Controls whether the welcome screen should be shown to the users on new install and updates.
- Type: Bool.
- Default:
false - Applies to the versions whose
coolwsd.xmlcarries awelcomesection: CODE 24.04.7 to 24.04.10 and 26.04.2, Enterprise 24.04.13 to 24.04.18, 25.04.12 and 26.04.2. The other versions ship no such section and ignore the variable.
collabora__language_packages__host_var / collabora__language_packages__group_var
- A list of dictionaries containing additional packages to be installed for language support (spell checking, thesaurus, etc).
- Type: List of dictionaries.
-
Default:
dict,mythesandhunspellfor de, en, fr, it -
Subkeys:
-
name:- Mandatory. Name of the package.
- Type: String.
-
state:- Optional. Either
presentorabsent. - Type: String.
- Default:
'present'
- Optional. Either
-
collabora__logrotate
- Log files are rotated
countdays before being removed or mailed to the address specified in alogrotatemail directive. If count is0, old versions are removed rather than rotated. If count is-1, old logs are not removed at all (use with caution, may waste performance and disk space). - Type: Number.
- Default:
{{ logrotate__rotate | d(14) }}
collabora__service_enabled
- Enables or disables the coolwsd service, analogous to
systemctl enable/disable. - Type: Bool.
- Default:
true
collabora__service_state
- Changes the state of the coolwsd service, analogous to
systemctl start/stop/restart/reload. - Type: String. One of
reloaded,restarted,started,stopped. - Default:
'started'ifcollabora__service_enabledistrue, else'stopped'
collabora__use_code
- Use Collabora CODE Edition instead of Collabora Enterprise Edition.
- Type: Bool.
- Default:
true
Example:
# optional
collabora__coolwsd_allowed_languages__group_var: []
collabora__coolwsd_allowed_languages__host_var:
- name: 'de_AT'
state: 'present'
- name: 'it_IT'
state: 'present'
collabora__coolwsd_content_security_policy:
- 'frame-ancestors https://office.example.com'
collabora__coolwsd_deepl_api_url: 'https://api-free.deepl.com/v2/translate'
collabora__coolwsd_deepl_auth_key: 'd3ca0484-915a-4214-80a5-b75f95238d9c:fx'
collabora__coolwsd_deepl_enabled: false
collabora__coolwsd_experimental_features: false
collabora__coolwsd_logging_file_enable: true
collabora__coolwsd_lok_allow: []
collabora__coolwsd_out_of_focus_timeout_secs: 120
collabora__coolwsd_post_allow: []
collabora__coolwsd_ssl_enable: false
collabora__coolwsd_ssl_settings_ca_file_path: '/etc/coolwsd/ca-chain.cert.pem'
collabora__coolwsd_ssl_settings_cert_file_path: '/etc/coolwsd/cert.pem'
collabora__coolwsd_ssl_settings_key_file_path: '/etc/coolwsd/key.pem'
collabora__coolwsd_ssl_settings_ssl_verification: true
collabora__coolwsd_ssl_termination: true
collabora__coolwsd_storage_wopi__group_var: []
collabora__coolwsd_storage_wopi__host_var:
- name: 'cloud\.example\.com'
state: 'present'
collabora__coolwsd_welcome_enable: true
collabora__language_packages__group_var: []
collabora__language_packages__host_var:
- name: 'collaboraoffice-dict-de'
state: 'absent'
# el
- name: 'collaboraoffice-dict-el'
state: 'present'
- name: 'collaboraofficebasis-el'
state: 'present'
- name: 'hunspell-el'
state: 'present'
- name: 'mythes-el'
state: 'present'
# es
- name: 'collaboraoffice-dict-es'
- name: 'collaboraofficebasis-es'
- name: 'hunspell-es-*'
- name: 'mythes-es'
collabora__logrotate: 7
collabora__service_enabled: true
collabora__service_state: 'started'
collabora__use_code: false
Troubleshooting¶
The run aborts with Collabora CODE X.Y.Z is not supported by this role
- The enabled repository offers a Collabora version this role has no
coolwsd.xmltemplate for. Either pin the host to a supported version, or add the matchingroles/collabora/templates/etc/coolwsd/<version>-coolwsd-code.xml.j2template (<version>-coolwsd.xml.j2for Collabora Enterprise) and list the version inroles/collabora/vars/main.yml.