guideCollaboration features

Collaboration features are included in the On-Premises server to enable features like: document storage, import and export, or connection optimization. At the moment documents can be stored in a database, filesystem or storage service like AWS S3 or Azure Blob Storage.

Collaboration features have no smaller possibilities than in the SaaS version. However, it must be properly configured.

# Reliability

Collaboration features are high CPU consumptive. If you use these features intensively we recommend using external Collaboration Worker to improve reliability.

# Configurations

To configure the collaboration features for the Docker version, set the appropriate environment variables. If you want to configure this feature for the Node.js version you need to modify the configuration file (config.json), however, we recommend using the Docker version.

Information on how to set up the configuration for the Docker version is here and for the Node.js version here.

Below are sample driver configurations for the Docker and Node.js versions.

# Database

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

# Docker

COLLABORATION_STORAGE_DRIVER=database

# Node.js

The configuration should be added to the config.json file.

{
    // database_host, etc ...

    "collaboration_storage_driver": "database"

    // ...
}

# File system

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

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.

Also, you can use other driver such as AWS S3, Azure Blob Storage or Database.

# Docker

COLLABORATION_STORAGE_DRIVER=filesystem
COLLABORATION_STORAGE_LOCATION=/var/cs/documents

You should always mount the docker volume -v /path/to/your/dir:/var/cs/documents to preserve uploaded files in case your Docker 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.

# Node.js

The configuration should be added to the config.json file.

{
    // database_host, etc ...

    "collaboration_storage_driver": "filesystem",
    "collaboration_storage_location": "/var/cs/documents"

    // ...
}

# 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.).

# Docker

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]

# Node.js

The configuration should be added to the config.json file.

{
    // database_host, etc ...

    "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_endpoint": "[AWS_S3_ENDPOINT]",

    // ...
}

# Azure Blob Storage

To save the collaboration features data in the Azure Blob Storage, set driver (collaboration_storage_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.

# Docker

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]

# Node.js

The configuration should be added to the config.json file.

{
    // database_host, etc ...

    "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]",

    // ...
}