AppSuite:Documents Installation Guide

This information is valid from 7.10.3

For earlier versions see Guide for 7.10.2

Download & Installation OX Documents

General Information

OX Documents are browser based, cloud ready, text, spreadsheet and presentation products that can work with Microsoft Office and OpenOffice documents in a lossless way. And you can also collaborate with other people to edit shared documents on various devices.

Requirements

See the Open-Xchange software requirements page for details. Additionally the support of websockets proxy by the webserver or loadbalancer is required, this is e.g. available in Apache 2.4.10 and higher.


OX Documents needs to be installed in an OX App Suite configuration with a backend based on Grizzly (including hazelcast as installed and activated by default).

For compatibility with the legacy MS binary format files (.DOC, .XLS, .PPT) and for printing functionality in OX Text the document converter components (incl. readerengine) are required. These are not available in the Community Version of OX AppSuite.


Installation

The OX Documents deployment consists of the packages open-xchange-documents-backend and open-xchange-documents-ui. The open-xchange-documents-backend package also requires and installs these packages:

  • open-xchange-file-distribution
  • open-xchange-sessionstorage-hazelcast

The following Packages are no longer needed since 7.10.3

  • open-xchange-realtime-core
  • open-xchange-realtime-json

Furthermore all open-xchange-realtime-* packages will be replaced with empty transitive packages to remove relicts of the realtime framework.

The package open-xchange-documents-collaboration has been introduced with 7.10.3. It provides the Documents Collaboration Service (see below).

Redhat Enterprise Linux 6 or CentOS 6

Add the following repositories to your Open-Xchange yum configuration:

 [open-xchange-office]
name=Open-Xchange-office
baseurl=https://software.open-xchange.com/products/appsuite/stable/office/RHEL6/
gpgkey=https://software.open-xchange.com/oxbuildkey.pub
enabled=1
gpgcheck=1
metadata_expire=0m

[open-xchange-office-web] name=Open-Xchange-office-web baseurl=https://software.open-xchange.com/products/appsuite/stable/office-web/RHEL6/ gpgkey=https://software.open-xchange.com/oxbuildkey.pub enabled=1 gpgcheck=1 metadata_expire=0m
[open-xchange-documentconverter-api] name=Open-Xchange-documentconverter-api baseurl=https://software.open-xchange.com/products/appsuite/stable/documentconverter-api/RHEL6/ gpgkey=https://software.open-xchange.com/oxbuildkey.pub enabled=1 gpgcheck=1 metadata_expire=0m
[open-xchange-documents-collaboration] name=Open-Xchange-documents-collaboration baseurl=https://software.open-xchange.com/products/appsuite/stable/documents-collaboration/RHEL6/ gpgkey=https://software.open-xchange.com/oxbuildkey.pub enabled=1 gpgcheck=1 metadata_expire=0m

if you have a valid maintenance subscription, please add also following repositories by replacing the credentials.

 [open-xchange-office-updates]
name=Open-Xchange-office-updates
baseurl=https://LDBUSER:LDBPASSWORD@software.open-xchange.com/products/appsuite/stable/office/updates/RHEL6/
gpgkey=https://software.open-xchange.com/oxbuildkey.pub
enabled=1
gpgcheck=1
metadata_expire=0m

[open-xchange-office-web-updates] name=Open-Xchange-office-web-updates baseurl=https://LDBUSER:LDBPASSWORD@software.open-xchange.com/products/appsuite/stable/office-web/updates/RHEL6/ gpgkey=https://software.open-xchange.com/oxbuildkey.pub enabled=1 gpgcheck=1 metadata_expire=0m
[open-xchange-documentconverter-api-updates] name=Open-Xchange-documentconverter-api-updates baseurl=https://LDBUSER:LDBPASSWORD@software.open-xchange.com/products/appsuite/stable/documentconverter-api/updates/RHEL6/ gpgkey=https://software.open-xchange.com/oxbuildkey.pub enabled=1 gpgcheck=1 metadata_expire=0m
[open-xchange-documents-collaboration-updates] name=Open-Xchange-documents-collaboration-updates baseurl=https://LDBUSER:LDBPASSWORD@software.open-xchange.com/products/appsuite/stable/documents-collaboration/updates/RHEL6/ gpgkey=https://software.open-xchange.com/oxbuildkey.pub enabled=1 gpgcheck=1 metadata_expire=0m
$ yum install open-xchange-documents-backend open-xchange-documents-ui open-xchange-documents-ui-static documents-collaboration

Redhat Enterprise Linux 7 or CentOS 7

Add the following repositories to your Open-Xchange yum configuration:

 [open-xchange-office]
name=Open-Xchange-office
baseurl=https://software.open-xchange.com/products/appsuite/stable/office/RHEL7/
gpgkey=https://software.open-xchange.com/oxbuildkey.pub
enabled=1
gpgcheck=1
metadata_expire=0m

[open-xchange-office-web] name=Open-Xchange-office-web baseurl=https://software.open-xchange.com/products/appsuite/stable/office-web/RHEL7/ gpgkey=https://software.open-xchange.com/oxbuildkey.pub enabled=1 gpgcheck=1 metadata_expire=0m
[open-xchange-documentconverter-api] name=Open-Xchange-documentconverter-api baseurl=https://software.open-xchange.com/products/appsuite/stable/documentconverter-api/RHEL7/ gpgkey=https://software.open-xchange.com/oxbuildkey.pub enabled=1 gpgcheck=1 metadata_expire=0m
[open-xchange-documents-collaboration] name=Open-Xchange-documents-collaboration baseurl=https://software.open-xchange.com/products/appsuite/stable/documents-collaboration/RHEL7/ gpgkey=https://software.open-xchange.com/oxbuildkey.pub enabled=1 gpgcheck=1 metadata_expire=0m

if you have a valid maintenance subscription, please add also following repositories by replacing the credentials.

 [open-xchange-office-updates]
name=Open-Xchange-office-updates
baseurl=https://LDBUSER:LDBPASSWORD@software.open-xchange.com/products/appsuite/stable/office/updates/RHEL7/
gpgkey=https://software.open-xchange.com/oxbuildkey.pub
enabled=1
gpgcheck=1
metadata_expire=0m

[open-xchange-office-web-updates] name=Open-Xchange-office-web-updates baseurl=https://LDBUSER:LDBPASSWORD@software.open-xchange.com/products/appsuite/stable/office-web/updates/RHEL7/ gpgkey=https://software.open-xchange.com/oxbuildkey.pub enabled=1 gpgcheck=1 metadata_expire=0m
[open-xchange-documentconverter-api-updates] name=Open-Xchange-documentconverter-api-updates baseurl=https://LDBUSER:LDBPASSWORD@software.open-xchange.com/products/appsuite/stable/documentconverter-api/updates/RHEL7/ gpgkey=https://software.open-xchange.com/oxbuildkey.pub enabled=1 gpgcheck=1 metadata_expire=0m
[open-xchange-documents-collaboration-updates] name=Open-Xchange-documents-collaboration-updates baseurl=https://LDBUSER:LDBPASSWORD@software.open-xchange.com/products/appsuite/stable/documents-collaboration/updates/RHEL7/ gpgkey=https://software.open-xchange.com/oxbuildkey.pub enabled=1 gpgcheck=1 metadata_expire=0m
$ yum install open-xchange-documents-backend open-xchange-documents-ui open-xchange-documents-ui-static open-xchange-documents-collaboration

Debian GNU/Linux 9.0 (valid from v7.10)

Add the following repositories to your Open-Xchange apt configuration:

deb https://software.open-xchange.com/products/appsuite/stable/office/DebianStretch /
deb https://software.open-xchange.com/products/appsuite/stable/office-web/DebianStretch /
deb https://software.open-xchange.com/products/appsuite/stable/documentconverter-api/DebianStretch /
deb https://software.open-xchange.com/products/appsuite/stable/documents-collaboration/DebianStretch /

if you have a valid maintenance subscription, please add also following repositories by replacing the credentials.

deb https://LDBUSER:LDBPASSWORD@software.open-xchange.com/products/appsuite/stable/office/updates/DebianStretch /
deb https://LDBUSER:LDBPASSWORD@software.open-xchange.com/products/appsuite/stable/office-web/updates/DebianStretch /
deb https://LDBUSER:LDBPASSWORD@software.open-xchange.com/products/appsuite/stable/documentconverter-api/updates/DebianStretch /
deb https://LDBUSER:LDBPASSWORD@software.open-xchange.com/products/appsuite/stable/documents-collaboration/DebianStretch /
$ apt-get update
$ apt-get install open-xchange-documents-backend open-xchange-documents-ui open-xchange-documents-ui-static open-xchange-documents-collaboration

Debian GNU/Linux 10.0 (valid from v7.10.3)

Add the following repositories to your Open-Xchange apt configuration:

deb https://software.open-xchange.com/products/appsuite/stable/office/DebianBuster /
deb https://software.open-xchange.com/products/appsuite/stable/office-web/DebianBuster /
deb https://software.open-xchange.com/products/appsuite/stable/documentconverter-api/DebianBuster /
deb https://software.open-xchange.com/products/appsuite/stable/documents-collaboration/DebianBuster /

if you have a valid maintenance subscription, please add also following repositories by replacing the credentials.

deb https://LDBUSER:LDBPASSWORD@software.open-xchange.com/products/appsuite/stable/office/updates/DebianBuster /
deb https://LDBUSER:LDBPASSWORD@software.open-xchange.com/products/appsuite/stable/office-web/updates/DebianBuster /
deb https://LDBUSER:LDBPASSWORD@software.open-xchange.com/products/appsuite/stable/documentconverter-api/updates/DebianBuster /
deb https://LDBUSER:LDBPASSWORD@software.open-xchange.com/products/appsuite/stable/documents-collaboration/updates/DebianBuster /
$ apt-get update
$ apt-get install open-xchange-documents-backend open-xchange-documents-ui open-xchange-documents-ui-static open-xchange-documents-collaboration

SUSE Linux Enterprise Server 12

$ zypper ar https://software.open-xchange.com/products/appsuite/stable/office/SLE_12 office
$ zypper ar https://software.open-xchange.com/products/appsuite/stable/office-web/SLE_12 office-web
$ zypper ar https://software.open-xchange.com/products/appsuite/stable/documentconverter-api/SLE_12 documentconverter-api
$ zypper ar https://software.open-xchange.com/products/appsuite/stable/documents-collaboration/SLE_12 documents-collaboration

if you have a valid maintenance subscription, please add also following repositories by replacing the credentials.

$ zypper ar https://LDBUSER:LDBPASSWORD@software.open-xchange.com/products/appsuite/stable/office/updates/SLE_12 office-updates
$ zypper ar https://LDBUSER:LDBPASSWORD@software.open-xchange.com/products/appsuite/stable/office-web/updates/SLE_12 office-web-updates
$ zypper ar https://LDBUSER:LDBPASSWORD@software.open-xchange.com/products/appsuite/stable/documentconverter-api/updates/SLE_12 documentconverter-api-updates
$ zypper ar https://LDBUSER:LDBPASSWORD@software.open-xchange.com/products/appsuite/stable/documents-collaboration/SLE_12 documents-collaboration
$ zypper ref
$ zypper install open-xchange-documents-backend open-xchange-documents-ui open-xchange-documents-ui-static open-xchange-documents-collaboration

Univention Corporate Server

OX Text for OX App Suite for UCS is available in the Univention App Center. Please check the UMC module App Center for the installation of the OX Documents at your already available environment.


Documents Collaboration Service

Starting with release 7.10.3 the Documents Collaboration Service (DCS) has been introduced.

The DCS needs to be installed, configured and run. It supports collaboration across Middleware nodes but is also mandatory for small (even single node) environments. The server can be run as one additional service (JVM) or - for larger deployments - several instances can be clustered. The implementation is based on Spring Boot and uses the Java-based messaging server Apache ActiveMQ.

Note:
For upgrades from earlier versions than 7.10.2 the hazelcast cluster requires a complete shutdown, since the internal OX Documents data has changed. A rolling upgrade is not possible.

Documents Collaboration Service (DCS)

Prepare documents-collaboration repository as described above.

The DCS will be installed via the package:

open-xchange-documents-collaboration

The target directory is /usr/share/open-xchange-documents-collaboration

The DCS configuration file is located at /etc/documents-collaboration/dcs.properties. All available configuration items are described on this page

The following entries need to be reviewed and values need to be adjusted during the setup.
Configure bind host IP and JMS Port to listen to

dcs.host = 192.168.10.25       # Interface of the DCS node
dcs.port = 61616

A DCS writes its own connection data, retrieved from its configuration file during startup of the service, to a database to be discovered by Middleware nodes.

Caveat:
In a distributed setup DCSs may be installed on separate nodes. If such a DCS node has different internal and external IP addresses one needs to make sure that a middleware node has the correct DCS address to connect to. The config item advertiseURL can be set to the name of the DCS node.

dcs.advertiseURL=dcs.example.com:61616

Additionally the address of the internal interface should resolved to the hostname; e.g. /etc/hosts reads like

192.168.10.25 dcs.example.com

Especially on debian systems it might be necessary to modify /etc/hosts accordingly (and remove the 127.0.1.1 line).

The database schema for the DCS as well as appropriate database access data for the DCS user need to be created and set at the configured database prior to starting up the DCS for the first time. The database connection properties to be used by the DCS need to be set at the configuration file as well:

db.host=192.168.10.172
db.port=3306
db.schema=dcsdb
db.username=db_user
db.password=db_password

After setting these database related properties within the /etc/documents-collaboration/dcs.properties file, the admin needs to call the /usr/share/open-xchange-documents-collaboration/bin/initdcsdb.sh script as super user of the system.

Database related settings made in the /etc/documents-collaboration/dcs.properties file are read by this script first and taken as defaults. Nevertheless, each default value can be overwritten by the admin via the command line. Passwords need to be set by the admin via the command line in every case for security reasons.

If all database properties have been set correctly within the /etc/documents-collaboration/dcs.properties file, a valid call to the /usr/share/open-xchange-documents-collaboration/bin/initdcsdb.sh script is e.g. the following one:

sudo /usr/share/open-xchange-documents-collaboration/bin/initdcsdb.sh -a --dcsdb-pass=db_password --mysql-root-passwd=mysql_password

The default logging path is set in /etc/documents-collaboration/logback-spring.xml and points to /var/log/open-xchange/documents-collaboration/documents-collaboration.log

The Documents Collaboration Service will be started by executing the following comand:

systemctl start open-xchange-documents-collaboration.service

A command line tool allows to check the values in the database

# /usr/share/open-xchange-documents-collaboration/bin/documents-collaboration-admin.sh -l
+---------------------+---------------+---------------+---------+
| ID                  | Host          | Interface     | JMSPort |
+---------------------+---------------+---------------+---------+
| 192.168.10.25:61616 | 192.168.10.25 | 192.168.10.25 |   61616 |
+---------------------+---------------+---------------+---------+

JMX access to the DCS can be enabled and configured in dcs.properties. By default it is disabled. To enable JMX change the appropriate line to

jmx.enabled=true

Middleware node

No additional package repositories and no additional packages are required to be installed for the Middleware in order to use DCS.

Discovery of running DCSs via the database is configured in file /opt/open-xchange/etc/documents-collaboration-client.properties. Add the appropriate values to access the dcsdb Database as previously set during the DCS configuration (see above):

com.openexchange.dcs.client.database.connectionURL=jdbc:mysql://192.168.10.172:3306/dcsdb
com.openexchange.dcs.client.database.userName=db_user
com.openexchange.dcs.client.database.password=db_password

A command line tool allows to check the values in the database

$ /opt/open-xchange/sbin/documents-collaboration-admin -l
+---------------------+---------------+---------------+---------+
| ID                  | Host          | Interface     | JMSPort |
+---------------------+---------------+---------------+---------+
| 192.168.10.25:61616 | 192.168.10.25 | 192.168.10.25 |   61616 |
+---------------------+---------------+---------------+---------+

Apache configuration

For working websocket support Apache version 2.4.10 or newer is required.

The Apache module proxy_wstunnel has to be enabled:

a2enmod proxy_wstunnel

and the the following entries need to be added to the Apache configuration:

<Proxy balancer://oxcluster_ws>
  Order Deny,Allow
  Allow from all
  BalancerMember ws://localhost:8009 timeout=1900 smax=0 ttl=60 retry=60 loadfactor=50 keepalive=On route=OX1
  ProxySet stickysession=JSESSIONID|jsessionid scolonpathdelim=On
  SetEnv proxy-initial-not-pooled
  SetEnv proxy-sendchunked
</Proxy>

ProxyPass /appsuite/rt2 balancer://oxcluster_ws/rt2

A running Apache server on the system needs to be restarted or triggered to reload its configuration after the above changes have been made.

Monitoring

OX Documents offers runtime information via JMX about the document editors as well as the OX Documentconverter. This article guides to the information how to access JMX data, configure and use Jolokia and integrate with munin.

Printing and legacy MS binary formats Editing

For .DOC/.XLS/.PPT and/or printing support from OX Documents the Document Converter and readerengine components have to be installed separately (license key required)


Configuration

Permissions

To enable the OX Documents Applications for OX Drive the associated permission has to be set.

The default setting for all users is changed in the file documents.properties in the directory /opt/open-xchange/etc.

After installation the functionality is disabled:

# Enables or disables the "text" module capability globally.
# com.openexchange.capability.text=true

# Enables or disables the "spreadsheet" module capability globally.
# com.openexchange.capability.spreadsheet=true

# Enables or disables the "presentation" module capability globally.
# com.openexchange.capability.presentation=true

The following line enables the functionality:

# Enables or disables the "text" module capability globally.
com.openexchange.capability.text=true

Starting with 7.6.2, you can disable the text portal app. In permissions.properties:

permissions=textportaldisabled

Collaboration on shared documents

If OX Documents functionality is used for guest users in a cluster of application servers, this setting needs to be adjusted to false in order to also have guest sessions available in the distributed storage.

in /opt/open-xchange/etc/sharing.properties

# Specifies whether guest sessions are treated as transient or not. Transient
# sessions are only held in the short-term session containers, and are not put
# into the distributed session storage. Defaults to "true".
com.openexchange.share.transientSessions=false

com.openechange.share.transientSessions has to be set to false.

Spell Checking

OX Text and OX Presentation use hunspell for spell checking functionality. By default Spellchecking is enabled in /opt/open-xchange/etc/settings/office.properties with the following entry

# Determines whether online spelling is enabled for office documents.
# Possible values: true|false
# If this property is missing true is taken.
io.ox/office//module/spellingEnabled=true

After installation of the hunspell package for your platform the shared library and the US English dictionaries are available. Please check the file location the pkg files were installed into. (For instance on CentOS, use rpm -q –filesbypkg hunspell and verify the path of the lib files to be configured below) Also verify that the Hunspell dictonary is present and not renamed to "myspell" etc.. if the dictionary is renamed, you will have to use that in the config below.

Additional dictionaries are published for your platform as packages hunspell-de-de, hunspell-fr, ...

Spell checking has to be configured in the file /opt/open-xchange/etc/hunspell.properties. The values for the shared library file and dictionary path have to be set according to the platform.

This example shows the values for Debian:

# The name and location of the hunspell library
# Default value: "/usr/lib/x86_64-linux-gnu/libhunspell-1.3.so.0"
com.openexchange.spellchecker.hunspell.library=/usr/lib/x86_64-linux-gnu/libhunspell-1.4.so.0
# The location of the dictionaries
# Default value: "/usr/share/hunspell"
com.openexchange.spellchecker.hunspell.dictionaries=/usr/share/hunspell

If spellchecking is enabled and the library path or dictionary path is wrong a warning is logged.

If a language is not supported by a hunspell dictionary (or produces error messages in the console log) myspell dictionaries are a working alternative.

Templates

OX Documents support different levels to provide document templates for users.

A number of ready-to-use templates for letters, memos, resumes, home budget, presentations, etc is included with the system. These templates are made available in a directory at each system node by installation of the package open-xchange-documents-templates. The path to this directory is defined in the office.properties file

# Defines the absolute path where document templates are located inside the local (!) file system.
# The templates are displayed in the documents applications.
# If this property is missing a default '/opt/open-xchange/templates/documents' is taken.
io.ox/office//module/templatePath = /opt/open-xchange/templates/documents

The content in the directory specified by the path must comply to the following rules:

/opt/open-xchange/templates/documents     
|     
----> text [application type]
|     |   
|     ----> en-US [language-region]
|     |     
|     ----> en [language fallback, en is also fallback for all other non-convered languages]
|     |     
|     ----> de-DE
|     |     
|     ----> de
|     |     
|     ----> common [language independent, used in addition to the language specific ones]
|         
----> spreadsheet
|         
----> presentation

A context administrator can additionally provide global templates for all users in the same context. If logged in with this role folders can be added to or removed from the list of global template folders. For regular users the list is displayed without the permission to modify it.

caption

Users can create and manage their own templates. These user templates are stored and retrieved from the user’s root folder (“My files”). In addition to the root folder the user can define more template folders, sub-folders or even external folders in the “Documents” section of the “Settings” menu. This helps to organize templates and allows cleanup of the root folder by removal of templates.

For installations of OX Spreadsheet based on Appsuite 7.8.0 and 7.8.1 please see here for different installation modes.

OX Documents in Browser Tabs

OX Documents based on Appsuite 7.10.2 opens new documents in new tabs in the browser by default.

To disable this feature an stay in the single tab mode you have to set the attribute 'openInSingleTab' in as-config.yml

# Override certain settings
default:
    host: all
    openInSingleTab: true