Server requirements - kwantu/platformconfiguration GitHub Wiki
This article discusses the server requirements for hosting the Kwantu platform. The platform is split into an application server and one or more database servers.
Application server
The application server manages the the application the transaction management. It accesses the data capture servers as required. We recommend Linux 24GB, 8 cores (Note that the ram levels are related to caching of content, and is a factor of performance requirements.
| Software | Notes |
|---|---|
| Redis-stack server for the transaction manager and the processing queue | This is a critical performance tool. |
| Apache Artemis | Message queue for secure communications with clients and components |
| Node.js | v18.20.4 To run the application |
| Nginx | Reverse proxy server |
| HaProxy | Load balancer |
Database server (s)
The database servers holds a database per community. This means that we can easily separate different communities onto different servers, or we can cluster the servers and add a load-balancer in front. The optimal scenario will depend on your context. We recommend three servers running in a cluster with Linux 24GB, 8 cores depending on the loads. This may be extended into multiple clusters, one for main databases and search indexes on SSD drives, one cluster for document management, and multiple clusters for user account buckets (Note that the ram levels are related to caching of content, and is a factor of performance requirements.
| Software | Notes |
|---|---|
| CouchDB server version 3.5.2 | Clustered into at least 3 servers, with multiple clusters for higher load requirements. |
| Java | For use by the Lucene indexer |
| Clouseau indexer | |
| Mariadb 10.6 | For storing key state data and reporting database for simplified reporting |
Reports server (s)
The report servers holds an elasticsearch database for fast search and dashboards. And an exist-db instance, with a linked in jasperReports engine to perform etl and report generation. (Note that the ram levels are related to caching of content, and is a factor of performance requirements.
| Software | Notes |
|---|---|
| Exist-db 6.2 | Report server and etl processors |
| ElasticSearch / Opensearch | Drives the dashbaords |
| Java | For use by the etl and reporting engines |
Minimum requirements
The minimum recommended requirements are:
CPU - 3.2GHz Quad-Core Xeon RAM - 24 GB DDR3 1333MHz Hard Drives - 2x 1 TB Enterprise RAID Level - RAID 1 Linux Almalinux 8 or higher
Example specifications
Incorporate use case config examples as per https://confluence.atlassian.com/doc/server-hardware-requirements-guide-30736403.html
Software stack
The Kwantu platform is based on the following stack.
| Product type | Product | Version | License |
|---|---|---|---|
| Web server | nginx | 1.10.2 | 2-clause BSD |
| Database | Couch DB | 2.3.0 | Apache License 2.0 |
| Database | Mariadb Community Edition | 10.6.0 | [GPL License] |
| JavaScript | Node.js | 9.4.0 | MIT license |
| Jasper reports | Ireport | 6.3.0 | GPLv3 |
| Low latency storage engine | Redis-stack | 3.2.12 | Three clause BSD license |
| Message queue | Apache Artemis | Latest | Apache License 2.0 |
| Java | Oracle Java OpenJDK | 1.8.0_181-b13 | GPLv2 |
| Search engine | Elasticsearh / Opensearch | 7.6.0 | Apache License 2.0 |
| Git | 1.7.1 |