# Requirements

This article describes the requirements necessary for CKBox On-Premises to run smoothly.

> **Note**
>
> A valid license key is needed to install CKBox On-Premises.\
> [Contact us](https://ckeditor.com/contact/) for a trial license key.

<a id="ckbox-on-premises">

## CKBox On-Premises

<a id="hardware-requirements">

### Hardware requirements

It is impossible to provide a single infrastructure setup, that will fit all use cases. In this section, we provide recommendations for ensuring high availability and high performance of CKBox On-Premises. As every use case is different, you need to monitor your application and adjust the infrastructure to your needs.

<a id="high-availability">

#### High availability

To ensure high availability, we recommend running at least 3 instances of CKBox On-Premises.

CKBox 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.

A load balancer, like HAProxy or NGINX (see the load balancer configuration examples in the [Reverse proxy](../cs-onpremises/reverse-proxy.md) guide), is required for scaling on several machines. Of course, it is possible to use any cloud provider for scaling, such as Amazon ECS, Azure Container Instances, or Kubernetes.

<a id="software-requirements">

### Software requirements

Currently, we only provide Linux-based Docker images for CKBox. We highly recommend running these on machines with Linux. However, you can also use Docker Desktop to run our Docker images on other operating systems.

The application is provided as a Docker image by default.

It can be run with any Open Container runtime tool, for example: [Kubernetes](https://kubernetes.io/), [OpenShift](https://www.redhat.com/en/technologies/cloud-computing/openshift), [Podman](https://podman.io/), [Docker](https://docs.docker.com/) and many others.

In the case of Windows machines, you need to enable the [WSL 2](https://docs.microsoft.com/en-us/windows/wsl/about#what-is-wsl-2) backend and switch to Linux containers. Make sure that your operating system supports such an option. Refer to the [Docker Desktop installation guide](https://docs.docker.com/desktop/windows/install/) for more information.

<a id="sql-database">

## SQL Database

CKBox On-Premises supports:

* MySQL 5.7 or newer (recommended: 9.7 LTS).
* PostgreSQL 12 or newer (recommended: 18).

When upgrading an existing database to PostgreSQL 18, see [PostgreSQL upgrading to version 18](../cs-onpremises/installation/configuration/database-sql.md#postgresql-upgrading-to-version-18).\
If you want to use another SQL database like Microsoft SQL Server, etc., please [contact us](https://ckeditor.com/contact/).

<a id="containers">

### Containers

Databases can be launched as containers, but this requires high awareness and responsiveness. Because each company has different policies and arrangements, we do not recommend any approach and leave the decision as to how the databases will be launched to you.

However, we encourage you to read this article: [“To run or not to run a database on Kubernetes: What to consider”](https://cloud.google.com/blog/products/databases/to-run-or-not-to-run-a-database-on-kubernetes-what-to-consider) before making a decision.

<a id="redis">

## Redis

CKBox On-Premises supports:

* Valkey 9.0 or newer.
* Redis 6.2 or newer (recommended: 8.10).

Both can run as a single instance or in Cluster mode. Redis Sentinel is not supported.

<a id="semantic-search-database-optional">

## Semantic Search database (optional)

If you want to use the Semantic Search feature, you need to provide an additional PostgreSQL database with the [pgvector](https://github.com/pgvector/pgvector) extension installed. This database is separate from the main CKBox application database. Refer to the [Semantic Search](semantic-search.md) guide for setup instructions.

<a id="storage-system">

## Storage system

Storage systems that can be used with CKBox On-Premises are:

* AWS S3,
* Azure Blob Storage,
* Filesystem,
* SQL databases (the largest file you can send using SQL database is 4GB).

---

Full index of the Cloud Services documentation: [llms.txt](../../../llms.txt)
