Skip to content

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.

Mandatory Requirements

If you use the "Collabora" Playbook, this is automatically done for you.

Tags

collabora

  • Installs and configures either Collabora CODE or Collabora Enterprise.
  • 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 present or absent.
      • Type: String.
      • Default: 'present'

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_enabled is 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_enabled is 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.
  • Type: Bool.
  • Default: false

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: []

  • Subkeys:

    • name:

      • Mandatory. Regex pattern.
      • Type: String.
    • state:

      • Optional. Either present or absent.
      • Type: String.
      • Default: 'present'

collabora__coolwsd_welcome_enable

  • Controls whether the welcome screen should be shown to the users on new install and updates.
  • Type: Bool.
  • Default: false

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, mythes and hunspell for de, en, fr, it

  • Subkeys:

    • name:

      • Mandatory. Name of the package.
      • Type: String.
    • state:

      • Optional. Either present or absent.
      • Type: String.
      • Default: 'present'

collabora__logrotate

  • Log files are rotated count days before being removed or mailed to the address specified in a logrotate mail directive. If count is 0, 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 --now.
  • Type: Bool.
  • Default: true

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: false
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__use_code: false

License

The Unlicense

Author Information

Linuxfabrik GmbH, Zurich