Collaboration 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]",
// ...
}