Collaboration
Introduction
The collaboration service connects Infinite Scale 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 (supervised mode). You must start it manually with the ocis collaboration server command.
|
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
-
gateway service.
-
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 List running services 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. Eitherhttp
orhttps
. 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.
Configuration
Environment Variables
The collaboration
service is configured via the following environment variables. Read the Environment Variable Types documentation for important details.
Name | Type | Default Value | Description |
---|---|---|---|
|
string |
WOPI app |
The name of the app |
|
string |
Open office documents with a WOPI app |
App description |
|
string |
image-edit |
Icon for the app |
|
string |
com.github.owncloud.collaboration |
Name for the app lock |
|
string |
bfXlsWvfUmsKZHRKNSugjqWFsuvWbYnP |
Used as JWT token and to encrypt access token. |
|
string |
0.0.0.0:9301 |
The bind address of the GRPC service. |
|
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. |
|
string |
0.0.0.0:9300 |
The bind address of the HTTP service. Use '<ip-address>:<port>', for example, '127.0.0.1:9301' or '0.0.0.0:9301'. |
|
string |
https |
The scheme to use for the HTTP address, which is either 'http' or 'https'. |
|
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. |
|
string |
|
Path/File name of the TLS server certificate (in PEM format) for the http services. |
|
string |
|
Path/File name for the TLS certificate key (in PEM format) for the server certificate to use for the http services. |
|
string |
https://127.0.0.1:8080 |
The URL where the WOPI app is located, such as https://127.0.0.1:8080. |
|
bool |
false |
Skip TLS certificate verification when connecting to the WOPI app |
|
bool |
false |
Connect to the CS3API data gateway insecurely. |
|
bool |
false |
Activates tracing. |
|
string |
|
The type of tracing. Defaults to '', which is the same as 'jaeger'. Allowed tracing types are 'jaeger' and '' as of now. |
|
string |
|
The endpoint of the tracing agent. |
|
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. |
|
string |
|
The log level. Valid values are: 'panic', 'fatal', 'error', 'warn', 'info', 'debug', 'trace'. |
|
bool |
false |
Activates pretty log output. |
|
bool |
false |
Activates colorized log output. |
|
string |
|
The path to the log file. Activates logging to this file if set. |
|
string |
127.0.0.1:9304 |
Bind address of the debug server, where metrics, health, config and debug endpoints will be exposed. |
|
string |
|
Token to secure the metrics endpoint. |
|
bool |
false |
Enables pprof, which can be used for profiling. |
|
bool |
false |
Enables zpages, which can be used for collecting and viewing in-memory traces. |
YAML Example
-
Note that the filename shown below has been chosen on purpose.
-
See the Configuration File Naming for details when setting up your own configuration.
-
See the Notes for Environment Variables if you want to use environment variables in the yaml file.
# 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: 4zntHetD3FiAy3tddlDhBQ9EhCQQh3md
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