Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Comment thread
mohammad-anees-khan marked this conversation as resolved.
Binary file not shown.
185 changes: 181 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,184 @@
# cryptlex-onpremise
# Cryptlex On-premise

Cryptlex On-premise offers a self-hosted version of Cryptlex for organizations that need or want to manage their own data. It can be run in your existing environments.
## Self hosted licensing infrastructure for Cryptlex

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not sure this title is correct

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

will use a better title


Refer to following for documentation:
Cryptlex On-premise provides a fully self hosted deployment of Cryptlex for organizations that require complete control over infrastructure, data residency, security, and network environments.

https://docs.cryptlex.com/cryptlex-on-premise/overview
It includes all major Cryptlex platform capabilities, including license management, activations, floating licenses, trials, entitlements, release management, and APIs, while allowing deployment within your own infrastructure.

Cryptlex On-premise can be deployed in:

* private cloud environments
* enterprise data centers
* staging and production clusters
* regulated or compliance sensitive environments

---

## Documentation

| Topic | Description |
| ---------------------------------------------------------------------------- | ------------------------------------ |
| [docs/overview.md](docs/000-overview.md) | Overview of Cryptlex On-premise |
| [docs/system-requirements.md](docs/system-requirements.md) | Hardware and software requirements |
| [docs/server-layout.md](docs/server-layout.md) | Recommended deployment architectures |
| [docs/configuring-client-libraries.md](docs/configuring-client-libraries.md) | Configure SDKs for On-premise |
| [docs/monitoring-your-instance.md](docs/monitoring-your-instance.md) | Monitoring and observability setup |

---

## Architecture Overview

Cryptlex On-premise consists of multiple independently scalable services:

* Cryptlex Web API
* Cryptlex Release Server
* PostgreSQL
* Redis
* Reverse proxy (Traefik)
* MinIO or S3 compatible storage

The services can be deployed either:

* on a single server for development/testing
* across multiple servers for staging and production environments

---

## Deployment Models

### Single Server Deployment

Recommended for:

* development environments
* testing
* low volume deployments

Features:

* simple deployment
* minimal infrastructure requirements
* all services hosted together

---

### Distributed Deployment

Recommended for:

* production environments
* high availability deployments
* scalable enterprise workloads

Features:

* external PostgreSQL
* external Redis
* load balancer support
* horizontal scaling
* storage redundancy support

---

## System Requirements

### Minimum Requirements

| Resource | Requirement |
| ---------- | ------------------ |
| CPU | Dual core |
| Memory | 1 GB minimum |
| Storage | 5 GB minimum |
| Docker | 20.10.22 or higher |
| PostgreSQL | 13.x or higher |

### Recommended Production Requirements

| Resource | Recommendation |
| -------- | ----------------------------- |
| CPU | Quad core or higher |
| Memory | 4 GB or higher |
| Storage | SSD backed persistent storage |
| Database | Managed PostgreSQL cluster |
| Cache | Dedicated Redis instance |

---

## Configuring Client Libraries

By default, Cryptlex SDKs communicate with `api.cryptlex.com`.

For On-premise deployments, configure your applications to use your self hosted Cryptlex endpoint.

Example using LexActivator:

```c
status = SetCryptlexHost("https://cryptlex-api.mycompany.com");
```

See:

* [Confirguring client libraries](docs/025-configuring-client-libraries.md)

---

## Monitoring

Cryptlex supports integrations with:

* New Relic
* Bugsnag

This allows monitoring of:

* service health
* application errors
* infrastructure stability
* alerting workflows

See:
* [Monitoring your instance](docs/030-monitoring-your-instance.md)

---

## Storage Components

### PostgreSQL

Primary database service used by Cryptlex Enterprise.

### Redis

Caching service used for performance optimization.

### MinIO / S3 Compatible Storage

Object storage service used for application file storage.

---

## Supported Platforms

Cryptlex On-premise can run on:

* Linux
* Windows
* macOS

Provided Docker requirements are met.

---

## Support

For assistance, enterprise inquiries, or deployment guidance:

* [support@cryptlex.com](mailto:support@cryptlex.com)

---

## License

Commercial software.
Contact Cryptlex for licensing details.
Binary file added assets/singleServer.png
Comment thread
mohammad-anees-khan marked this conversation as resolved.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 7 additions & 0 deletions docs/000-overview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
## Install and manage your on-premise version of Cryptlex

Cryptlex On-premise offers a self-hosted version of Cryptlex for organizations that need or want to manage their own data. It can be run in your existing environments.

Cryptlex On-premise has all the features of SaaS Cryptlex and regular releases ensure you are kept up to date. All client libraries can easily be configured to send license activation requests to your Cryptlex On-premise instance.

To find out more or discuss your requirements please contact [support@cryptlex.com](mailto:support@cryptlex.com).
31 changes: 31 additions & 0 deletions docs/010-system-requirements.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
## Operating System

Cryptlex On-premise is deployed using Docker. Hence it can be deployed on any Linux, Mac, and Windows-based servers that can run current versions of Docker (at least version 20.10.22 or higher).

## Storage and Memory

Cryptlex requires a minimum of 5GB to function for its database and docker images. Your exact storage size requirements will vary depending on the volume of licenses and the number of activations.

Cryptlex requires at least 1GB of memory to function. If the database is also installed on the same server then at least 4GB of memory is required.

## CPU

Cryptlex requires at least a dual-core CPU, and that will work for low volume installations. For anything more than that we recommend going with a quad-core CPU.

## Software

### Docker

Cryptlex requires at least version 20.10.22 (or higher) of Docker.

### Database

Cryptlex requires PostgreSQL 13.x (or higher) for storing all the data.

### Cache

Cryptlex uses Redis for storing the cache data. If no Redis database is provided it defaults to memory.

### Filestore

It uses [Minio](https://www.minio.io/), which is an Amazon S3 compatible object storage server, for storing release files. In case you don't want to use the Cryptlex [release management](https://cryptlex.com/docs/release-management/overview) API, this is not required.
25 changes: 25 additions & 0 deletions docs/015-server-layout.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
To help you determine the best server layout, look over the diagrams below, and determine which layout works best for your dev/testing and production environments.

Each layout will require the Cryptlex Web API server, Cryptlex Release server, Cryptlex GeoIP server, Postgres, Redis, and a reverse proxy/web server for hosting the Cryptlex dashboard and routing traffic. In the Docker Compose deployment shipped with this repository, that role is provided by Traefik; Nginx is only applicable for alternative deployment models where you choose to use it.

The Cryptlex services are separated because as you will see in the diagrams below they may not all run on the same server, and each component can be horizontally scaled separately.

## Single server

![Single Server Layout](../assets/singleServer.png)

This configuration uses a single server to host all of the components for Cryptlex including the web dashboard. In this deployment model, there is no service redundancy and there is a risk of resource contention. For this reason, this model should be limited to the following purposes:

* Development servers or workstations
* Small production deployments

## Multiple servers with an external database

This configuration uses separate servers to host all the services. The method for configuring this database is outside the scope of this guide but a general guideline would be to provide some sort of storage redundancy or clustering capability to ensure a high level of availability and performance. For the file store, it is recommended to use AWS S3.

Each Cryptlex Web API service is redundant and running on a separate server, this configuration provides basic redundancy.

In this scenario, Cryptlex should be placed behind a load balancer to utilize all services equally. Cryptlex doesn't use cookies, so sticky sessions are not required to be configured in the load balancer. This configuration is best suited for the following purposes:

* Staging environments
* Production deployments
Loading