CKEditor Collaboration Worker

The Collaboration Worker is a separate application intended to relieve the CKEditor Collaboration Server On-Premises of high CPU consumptive tasks. Using this service is optional, however it is highly recommended when the collaboration features are used.

We recommend using this service in large-scale deployments to improve reliability. If it is possible, you should run this container on a separate machine.

# Scaling

The only requirement to make the services work together is connecting them to the same Redis and SQL database. You can run multiple worker instances and all of them will be available for Collaboration Server On-Premises instances.

Furthermore, we recommend disabling a built-in Collaboration Worker in Collaboration Server On-Premises if the external is available. You can do it by setting a USE_BUILT_IN_COLLABORATION_WORKER environment variable to false.

# Configuration of the CKEditor Collaboration Worker

The CKEditor Collaboration Worker and the CKEditor Collaboration Server On-Premises should connect to the same databases (SQL and Redis).

The Collaboration storage in both containers should be configured the same way as in the CKEditor Collaboration Server On-Premises.

# Environmental variables

REDIS_HOST                               - required
REDIS_PORT                               - optional (default: 6379)
REDIS_DB                                 - optional (default: 1)
REDIS_PASSWORD                           - optional
REDIS_USER                               - optional
REDIS_TLS_CA                             - optional
REDIS_TLS_KEY                            - optional
REDIS_TLS_CERT                           - optional
REDIS_TLS_ENABLE                         - optional (default: false)
REDIS_DISABLE_DNS_LOOKUP                 - optional (default: false)
REDIS_CLUSTER_NODES                      - optional
REDIS_IP_FAMILY                          - optional (required only when using an IPv6 domain as `REDIS_HOST` or `REDIS_CLUSTER_NODES`)
COLLABORATION_STORAGE_DRIVER             - optional (default: "database")
COLLABORATION_STORAGE_LOCATION           - optional (default: "/var/cs/collaboration", 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_DRIVER                          - optional (default: "mysql")
DATABASE_HOST                            - required
DATABASE_PORT                            - optional (default: 3306)
DATABASE_USER                            - optional (default: "root"), but it is highly recommended you change it
DATABASE_PASSWORD                        - optional (default: "password"), but it is highly recommended you change it
DATABASE_DATABASE                        - optional (default: "cs-on-premises")
DATABASE_SCHEMA                          - optional (default: "cs-on-premises", used for Postgres driver)
DATABASE_SSL_ENABLE                      - optional
DATABASE_SSL_CA                          - optional
DATABASE_SSL_KEY                         - optional
DATABASE_SSL_CERT                        - optional
MIGRATE_ONLY                             - optional (default: false)

# Example