The WOPI Protocoll

Collabora Online is powerful online office suite that supports all major document, spreadsheet and presentation file formats. Collabor Online is based on the Web Application Open Platform Interface Protocol (WOPI). The WOPI Protocol was initial developed by Microsoft and defines a set of operations that enable clients to access and change files stored by a server. The WOPI protocol is supported by the Imixs-Workflow Adapter project and enables you to access and change files that are stored in your Imixs-Workflow instance.

The integration can be configured by a set of environment variables. General information about the Docker Image from Collabora can be found in the Official Integration Guide.

Setup with Docker-Compose

For test environments Imixs-Office-Workflow and Collabora can be setup with Docker-Compose. The following example shows a .yaml file including both services:

version: "3.6"
services:

# PostgreSQL
  db:
    image: postgres:9.6.1
    environment:
      POSTGRES_PASSWORD: adminadmin
      POSTGRES_DB: office
    volumes:
      - dbdata:/var/lib/postgresql/data

# Imixs-Documents
  imixs-documents:
    image: imixs/imixs-documents:latest
    depends_on:
      - db
    environment:
      JAVA_OPTS: "-Dnashorn.args=--no-deprecation-warning"
      POSTGRES_USER: "postgres"
      POSTGRES_PASSWORD: "adminadmin"
      POSTGRES_CONNECTION: "jdbc:postgresql://db/office"
      TZ: "Europe/Berlin"
      LANG: "en_US.UTF-8"
      MAILGATEWAY: "localhost"
      # Collabora integration
      WOPI_PUBLIC_ENDPOINT: "http://localhost:9980"
	  WOPI_DISCOVERY_ENDPOINT: "http://collabora:9980/hosting/discovery"
      WOPI_HOST_ENDPOINT: "http://imixs-documents:8080/api/wopi/"
    ports:
      - "8080:8080"
      - "9990:9990"
    volumes:
      - ./deployments:/opt/jboss/wildfly/standalone/deployments/

# Collabora
  collabora:
	image: collabora/code:23.05.0.5.1
	container_name: collabora
	expose:
	- 9980
	ports:
	- "9980:9980"
	environment:
	- username=admin
	- password=adminadmin
	- extra_params=--o:ssl.enable=false
	- aliasgroup1=http://app:8080:443

Note: In this example the SSL configuration is disabled. You can also setup a Reverse Proxy configuration if you run in container environments like Kubernetes. You can find more details about the configuration in the official Integration Guide.

WOPI Parameters

To integrate LibreOffice Online into Imixs-Documents the following Environment Variables need to be set to configure the WOPI integration:

Variable Description Example
WOPI_PUBLIC_ENDPOINT Public access endpoint for the LibreOffice Online Suite. http://libreoffice-app:9980
WOPI_DISCOVERY_ENDPOINT Public WOPI discovery endpoint http://libreoffice-app:9980/hosting/discovery
WOPI_HOST_ENDPOINT Internal Wopi Host endpoint. This einpoint must point to the internal hostname of Imixs-Documetns http://imixs-documents:8080/api/wopi/
WOPI_FILE_EXTENSIONS Optional comma separated list of file extensions to be supported. .odt,.doc,.docx,.ods,.xls,.xlsx,.ppt,.pptx

You can find the technical details about the Imixs WOPI Protocol Adapter here.

Multiple WOPI Hosts

In case you have multiple instnaces of Imixs-Office-Workflow you can define also multiple WOPI Host Aliases in Collabora.For this you can either separate your hots addresses with ‘,’ or with additional aliasgroups. See the following example defining 3 different WOPI Hosts:

  collabora:
	image: collabora/code:23.05.0.5.1
	container_name: collabora
	expose:
	- 9980
	ports:
	- "9980:9980"
	environment:
	- username=admin
	- password=adminadmin
	- extra_params=--o:ssl.enable=false
	- aliasgroup1=http://app1.foo.com:8080:443,http://app2.foo.com:8080:443,
	- aliasgroup2=http://app1.foo.net:8080:443