Collaboration features

Collaboration features are included in the On-Premises server to enable features such as:

  • document storage,
  • import and export,
  • connection optimization

Full documentation of these features can be found in the introduction guide.

Collaboration features offer no lesser capabilities than in the SaaS version. However, they must be properly configured.
At the moment, Collaboration features support several drivers to store documents and their data in different locations.

There is support for:

# Reliability

Collaboration features have high CPU consumption. If you use these features intensively we recommend using an external CKEditor Collaboration Worker to improve reliability.

# Configurations

To configure the collaboration features you need to set the appropriate environment variables.

COLLABORATION_STORAGE_DRIVER             - optional (default: "database")
COLLABORATION_STORAGE_LOCATION           - optional (default: "/var/cs/collaboration" if "filesystem" driver chosen, required for file system driver)
COLLABORATION_STORAGE_ACCESS_KEY_ID      - optional (required for AWS S3 driver)
COLLABORATION_STORAGE_SECRET_ACCESS_KEY  - optional (required for AWS S3 driver)
COLLABORATION_STORAGE_REGION             - optional (required for AWS S3 driver)
COLLABORATION_STORAGE_ENDPOINT           - optional (required for AWS S3 driver)
COLLABORATION_STORAGE_BUCKET             - optional (required for AWS S3 driver)
COLLABORATION_STORAGE_ACCOUNT_NAME       - optional (required for Azure Blob Storage driver)
COLLABORATION_STORAGE_ACCOUNT_KEY        - optional (required for Azure Blob Storage driver)
COLLABORATION_STORAGE_CONTAINER          - optional (required for Azure Blob Storage driver)

# Database (default)

To save the collaboration features data in the SQL database, set the driver only. The documents will be saved as blobs, in a database configured by the database configuration (MySQL and Postgres are supported at the moment).

COLLABORATION_STORAGE_DRIVER=database

# File system

To save the collaboration features data using the file system, set the (collaboration_storage_driver) driver to filesystem and specify the (collaboration_storage_location) path.

If you run several instances of the application and use a load balancer to split traffic between instances, you must remember that the documents should be saved in one shared place. You can use an NFS disk or other solution.

You can also use other drivers such as AWS S3, Azure Blob Storage, or Database.

COLLABORATION_STORAGE_DRIVER=filesystem
COLLABORATION_STORAGE_LOCATION=/var/cs/documents

You should always mount the /path/to/your/dir:/var/cs/documents volume to preserve uploaded files in case your container gets removed.

The COLLABORATION_STORAGE_LOCATION variable specifies the path to save documents, but this is the path in the container. Therefore, the path to the mounted volume should be given.

# AWS S3

To save the collaboration features data in the AWS S3, set driver (collaboration_storage_driver) to s3 and specify the configuration to AWS S3. To configure AWS S3, provide data for the following variables:

  • collaboration_storage_region - the region to send service requests to,

  • collaboration_storage_access_key_id - your AWS access key ID,

  • collaboration_storage_secret_access_key - your AWS secret access key,

  • collaboration_storage_endpoint - the endpoint URI to send requests to. For example, services compatible with S3 can be used (eg. MinIO, localstack, etc.). The endpoint must specify its protocol e.g. s3://, https://, etc.
    By default, it is generated in a format https://s3.[COLLABORATION_STORAGE_REGION].amazonaws.com

COLLABORATION_STORAGE_DRIVER=s3
COLLABORATION_STORAGE_REGION=[AWS_REGION]
COLLABORATION_STORAGE_ACCESS_KEY_ID=[AWS_ACCESS_KEY_ID]
COLLABORATION_STORAGE_SECRET_ACCESS_KEY=[AWS_SECRET_ACCESS_KEY]
COLLABORATION_STORAGE_BUCKET=[AWS_S3_BUCKET]
COLLABORATION_STORAGE_ENDPOINT=[AWS_S3_ENDPOINT]

# Azure Blob Storage

To save the collaboration features data in the Azure Blob Storage, set the (collaboration_storage_driver) driver to azure and specify the configuration to Azure Blob Storage. To configure Azure Blob Storage, provide data for the following variables:

  • collaboration_storage_account_name - your Azure account name,

  • collaboration_storage_account_key - your Azure account key,

  • collaboration_storage_container - your Azure Blob Storage container name.

  • collaboration_storage_endpoint - the endpoint URI to send requests to. The endpoint must specify its protocol e.g. https://.
    By default, it is generated in a format https://[COLLABORATION_STORAGE_ACCOUNT_NAME].blob.core.windows.net

COLLABORATION_STORAGE_DRIVER=azure
COLLABORATION_STORAGE_ACCOUNT_NAME=[AZURE_ACCOUNT_NAME]
COLLABORATION_STORAGE_ACCOUNT_KEY=[AZURE_ACCOUNT_KEY]
COLLABORATION_STORAGE_CONTAINER=[AZURE_CONTAINER]
COLLABORATION_STORAGE_ENDPOINT=[AZURE_ENDPOINT]