guideRequirements

This article describes the requirements that need to be met for CKEditor Cloud Services On-Premises to run smoothly.

A valid license key is needed in order to install CKEditor Cloud Services On-Premises.
Contact us for a trial license key.

# Application Server

This server is used for running the application.

# Hardware requirements

Since CKEditor Cloud Services On-Premises can be installed in two ways, below are the hardware requirements for both installation approaches.

More information about available installation methods can be found in the Installation section.

Note:

  • Concurrent user — A user who is active in a collaborative editing session. Idle users connected to the document do not increase the server load much.
  • The above configurations are able to handle an even larger number of active users, but due to the server load, the response times will be significantly higher and as a result, the user experience will be affected.
  • The CKEditor Cloud Services On-premises performance was checked on Amazon AWS, using EC2 “t2” instances.

# Docker

The number of containers that can be run depends on your servers. Crucial resources are CPU (cores) and RAM. The number of containers that can be started in the environment depends on them.

For every 250 concurrent users, CKEditor Cloud Services On-Premises requires 1 additional Docker container with minimum 500MB of RAM limit.

  • 1 Docker container and minimum 500 MB RAM support up to 250 concurrent users.
  • 2 Docker containers and minimum 1 GB RAM support up to 500 concurrent users.
  • 4 Docker containers and minimum 2 GB RAM support up to 1,000 concurrent users.
  • 8 Docker containers and minimum 4 GB RAM support up to 2,000 concurrent users.
  • 16 Docker containers and minimum 8 GB RAM support up to 4,000 concurrent users.

CKEditor Cloud Services On-Premises can be scaled with Docker containers on a single host machine. However, we recommend scaling on at least three host machines to provide the reliability of the system. For scaling on several machines a load balancer is required e.g. HAProxy or NGINGX (see load balancer configuration examples in the SSL communication guide). Of course, it is possible to use any cloud provider to scaling like Amazon ECS, Azure Container Instances or Kubernetes.

# Node.js

For every 250 concurrent users, CKEditor Cloud Services On-Premises requires 1 additional core of CPU and 500MB of RAM.

  • 1 core and 500 MB RAM support up to 250 concurrent users.
  • 2 cores and 1 GB RAM support up to 500 concurrent users.
  • 4 cores and 2 GB RAM support up to 1,000 concurrent users.
  • 8 cores and 4 GB RAM support up to 2,000 concurrent users.
  • 16 cores and 8 GB RAM support up to 4,000 concurrent users.

These calculations allow you to run CKEditor Cloud Services On-Premises without having to set up load balancers.

If you have any question related to running CKEditor Cloud Services On-Premises on multiple servers, feel free to contact us.

# Database Server

This server is used for hosting the databases.

# Hardware requirements

The minimum database server requirements (for MySQL and Redis installation) to handle up to 8,000 concurrent users is 2 cores and 4GB of RAM (a1.large equivalent on Amazon EC2).

If your installation has to support more than 8,000 users, contact us to discuss the most optimal hardware setup for your needs.

# Software requirements

The database server should have two database engines installed: Redis and MySQL.

# Redis

  • Version 3.2.6 or newer.
  • Redis stores all temporary data related to collaboration and is used as cache. The storage requirements for Redis depend on the number of active documents.
  • The average size of one document is around 500KB of memory in Redis. This size depends on many factors — the document length, the number of users, the number of changes, etc. and it can grow to many megabytes.
  • Use Redis Cluster if the application needs to handle a large number of active users. Please contact us if this is the case.

# MySQL

  • Version 5.6 or 5.7.

  • Create the database and a user with the following permissions: ALTER, CREATE, DELETE, DROP, INDEX, INSERT, SELECT, TRIGGER, UPDATE, LOCK TABLES, REFERENCES. Example database creation script:

    CREATE DATABASE `cs-on-premises`
      DEFAULT CHARACTER SET utf8mb4
      DEFAULT COLLATE utf8mb4_unicode_ci;
    
  • Change the max_connections setting to allow more connections:

    set global max_connections = 1000;
    

    Every instance of CKEditor Cloud Services On-Premises uses a few connection pools. Therefore, it is necessary to increase the maximum number of connections to the database.

  • MySQL stores all persistent data like comments, users, environments information, etc. The storage requirements for MySQL depend on many factors.

  • If you want to use another SQL database like Microsoft SQL Server, PostgreSQL, etc., please contact us.