Deployment
# Infrastructure
To run CKBox on your server, you need to have certain services prepared first:
- An SQL database (MySQL and Postgres are supported)
- A Redis database
- Data storage (S3, Azure Blob Storage, filesystem, MySQL, or Postgres)
Besides, you need an Open Container runtime to run CKBox. You can use, among others: Docker, Kubernetes, Amazon Elastic Container Service, or Azure Container Instances.
We also recommend using a load balancer. You can use almost any load balancer you choose, like NGINX, HAProxy, Amazon Elastic Load Balancing, or Azure Load Balancer. Thanks to this, you will be able to create TLS connections and run several cooperating instances of CKBox On-Premises. It will increase the security and the performance of the application.
# SQL Database
The SQL database stores persistent data like the configurations of categories, assets metadata, environments information, etc.
It can also be used as a data storage for your assets, but due to the SQL database limitations, the largest file you can send is 4GB. For this reason, we recommend using different storage drivers that can handle bigger files, like S3, Azure Blob Storage or a filesystem.
# MySQL
Minimum required version of MySQL is 5.7, while MySQL in version 8.0 is both supported and recommended. The database and user should have at least the following privileges: ALTER, CREATE, DELETE, DROP, INDEX, INSERT, SELECT, TRIGGER, UPDATE, LOCK TABLES, REFERENCES
.
If you plan using the MySQL database as a blob storage, increase the max_allowed_packet
parameter:
set global max_allowed_packet = 209715200;
The database should be created before running Collaboration Server On-Premises. An example database creation script:
CREATE DATABASE `ckbox-on-premises`
DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE utf8mb4_bin;
If you want to use another SQL database like Microsoft SQL Server, etc., please contact us.
If binary logging is enabled without the SUPER
privilege, please make sure that log_bin_trust_function_creators
is enabled. Check your configuration, especially when you use a managed database service (DBaaS) like AWS RDS/Aurora, Azure Database, Google Cloud SQL or DigitalOcean Managed Databases.
# PostgreSQL
Minimum required version of PostgreSQL is 12.0. The database and user should have at least the following privileges: SELECT, INSERT, UPDATE, DELETE, REFERENCES, CREATE, USAGE
.
The database with a schema should be created before running Collaboration Server On-Premises. An example database and schema creation script:
CREATE DATABASE "cksource";
\connect "cksource";
CREATE SCHEMA "ckbox-on-premises";
# Running the service
After meeting all infrastructure requirements, you can prepare the CKBox application to run.
Follow the steps below to install CKBox On-Premises using the Docker image.
- Use the instructions below to log into the
CKBox On-Premises
Docker Registry and pull the Docker image. To get theDOWNLOAD_TOKEN
please contact us.
docker login -u ckbox -p [DOWNLOAD_TOKEN] https://docker.cke-cs.com
docker pull docker.cke-cs.com/ckbox:latest
- Launch the Docker container (you can find all the configuration options in the Configuration section):
docker run --init -p 8080:8080 \
-e LICENSE_KEY=[your license key from Customer Portal] \
-e ENVIRONMENTS_MANAGEMENT_SECRET_KEY=[your management secret key used in management panel] \
-e DATABASE_DRIVER=[mysql|postgres] \
-e DATABASE_HOST=[your database host] \
-e DATABASE_USER=[your database user] \
-e DATABASE_PASSWORD=[your database user password] \
-e DATABASE_DATABASE=[your database name] \
-e REDIS_HOST=[your redis host] \
-e STORAGE_DRIVER=[s3|azure|filesystem|database] \
-e STORAGE_ACCESS_KEY_ID=[your AWS access key] \
-e STORAGE_SECRET_ACCESS_KEY=[your AWS secret key] \
-e STORAGE_BUCKET=[your S3 bucket name] \
docker.cke-cs.com/ckbox:[version]
- Create the
Environment
with anAccess Key
via the Cloud Services Management Panel. To access the management panel, useENVIRONMENTS_MANAGEMENT_SECRET_KEY
you provided to the container. Then, use yourEnvironment ID
andAccess Key
created in the panel to create the token endpoint. - Set
serviceOrigin
andassetsOrigin
in CKBox configuration options to your server URL.