ownCloud
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage
Edit page

Collaboration

Abstract

The collaboration service connects ocis with document servers such as Collabora and ONLYOFFICE using the WOPI protocol.

Since this service requires an external document server, it won’t start by default when using ocis server. You must start it manually with the ocis collaboration server command.

Table of Contents

Requirements

The collaboration service requires the target document server (ONLYOFFICE, Collabora, etc.) to be up and running. Additionally, some Infinite Scale services are also required to be running in order to register the GRPC service for the open in app action in the webUI. The following internal and external services need to be available:

  • External document server.
  • The gateway service.
  • The app-provider service.

If any of the named services above have not been started or are not reachable, the collaboration service won’t start. For the binary or the docker release of Infinite Scale, check with the ocis list command if they have been started. If not, you must start them manually upfront before starting the collaboration service.

WOPI Configuration

There are a few variables that you need to set:

  • COLLABORATION_WOPIAPP_ADDR:
    The URL of the WOPI app (onlyoffice, collabora, etc).
    For example: https://office.example.com.

  • COLLABORATION_HTTP_ADDR:
    The external address of the collaboration service. The target app (onlyoffice, collabora, etc) will use this address to read and write files from Infinite Scale.
    For example: https://wopiserver.example.com.

  • COLLABORATION_HTTP_SCHEME:
    The scheme to be used when accessing the collaboration service. Either http or https. This will be used to finally build the URL that the WOPI app needs in order to contact the collaboration service.

The rest of the configuration options available can be left with the default values.

Example Yaml Config

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# Autogenerated
# Filename: collaboration-config-example.yaml

app:
  name: WOPI app
  description: Open office documents with a WOPI app
  icon: image-edit
  lockname: com.github.owncloud.collaboration
jwt_secret: ybkaW5ga448egUKiZQaJSJbB3tpWWwEA
grpc:
  addr: 0.0.0.0:9301
http:
  addr: 127.0.0.1:9300
  bindaddr: 0.0.0.0:9300
  scheme: https
  tls:
    enabled: false
    cert: ""
    key: ""
wopiapp:
  addr: https://127.0.0.1:8080
  insecure: false
cs3api:
  gateway:
    name: com.owncloud.api.gateway
  datagateway:
    insecure: false
tracing:
  enabled: false
  type: ""
  endpoint: ""
  collector: ""
log:
  level: ""
  pretty: false
  color: false
  file: ""
debug:
  addr: 127.0.0.1:9304
  token: ""
  pprof: false
  zpages: false

Environment Variables

Name Type Default Value Description
COLLABORATION_APP_NAME string WOPI app The name of the app
COLLABORATION_APP_DESCRIPTION string Open office documents with a WOPI app App description
COLLABORATION_APP_ICON string image-edit Icon for the app
COLLABORATION_APP_LOCKNAME string com.github.owncloud.collaboration Name for the app lock
OCIS_JWT_SECRET
COLLABORATION_JWT_SECRET
string kxJVznsoA1falDBvPAJWLJMoF3TCQfay Used as JWT token and to encrypt access token.
COLLABORATION_GRPC_ADDR string 0.0.0.0:9301 The bind address of the GRPC service.
COLLABORATION_HTTP_ADDR string 127.0.0.1:9300 The external address of the collaboration service wihout a leading scheme. Either use an IP address or a hostname (127.0.0.1:9301 or wopi.private.prv). The configured ‘Scheme’ in another envvar will be used to finally build the public URL along with this address.
COLLABORATION_HTTP_BINDADDR string 0.0.0.0:9300 The bind address of the HTTP service. Use ‘:’, for example, ‘127.0.0.1:9301’ or ‘0.0.0.0:9301’.
COLLABORATION_HTTP_SCHEME string https The scheme to use for the HTTP address, which is either ‘http’ or ‘https’.
OCIS_HTTP_TLS_ENABLED bool false Activates TLS for the http based services using the server certifcate and key configured via OCIS_HTTP_TLS_CERTIFICATE and OCIS_HTTP_TLS_KEY. If OCIS_HTTP_TLS_CERTIFICATE is not set a temporary server certificate is generated - to be used with PROXY_INSECURE_BACKEND=true.
OCIS_HTTP_TLS_CERTIFICATE string Path/File name of the TLS server certificate (in PEM format) for the http services.
OCIS_HTTP_TLS_KEY string Path/File name for the TLS certificate key (in PEM format) for the server certificate to use for the http services.
COLLABORATION_WOPIAPP_ADDR string https://127.0.0.1:8080 The URL where the WOPI app is located, such as https://127.0.0.1:8080.
COLLABORATION_WOPIAPP_INSECURE bool false Skip TLS certificate verification when connecting to the WOPI app
COLLABORATION_CS3API_DATAGATEWAY_INSECURE bool false Connect to the CS3API data gateway insecurely.
OCIS_TRACING_ENABLED
COLLABORATION_TRACING_ENABLED
bool false Activates tracing.
OCIS_TRACING_TYPE
COLLABORATION_TRACING_TYPE
string The type of tracing. Defaults to ‘’, which is the same as ‘jaeger’. Allowed tracing types are ‘jaeger’ and ’’ as of now.
OCIS_TRACING_ENDPOINT
COLLABORATION_TRACING_ENDPOINT
string The endpoint of the tracing agent.
OCIS_TRACING_COLLECTOR
COLLABORATION_TRACING_COLLECTOR
string The HTTP endpoint for sending spans directly to a collector, i.e. http://jaeger-collector:14268/api/traces. Only used if the tracing endpoint is unset.
OCIS_LOG_LEVEL
COLLABORATION_LOG_LEVEL
string The log level. Valid values are: ‘panic’, ‘fatal’, ’error’, ‘warn’, ‘info’, ‘debug’, ’trace’.
OCIS_LOG_PRETTY
COLLABORATION_LOG_PRETTY
bool false Activates pretty log output.
OCIS_LOG_COLOR
COLLABORATION_LOG_COLOR
bool false Activates colorized log output.
OCIS_LOG_FILE
COLLABORATION_LOG_FILE
string The path to the log file. Activates logging to this file if set.
COLLABORATION_DEBUG_ADDR string 127.0.0.1:9304 Bind address of the debug server, where metrics, health, config and debug endpoints will be exposed.
COLLABORATION_DEBUG_TOKEN string Token to secure the metrics endpoint.
COLLABORATION_DEBUG_PPROF bool false Enables pprof, which can be used for profiling.
COLLABORATION_DEBUG_ZPAGES bool false Enables zpages, which can be used for collecting and viewing in-memory traces.