System requirements
User PC requirements
Operating systems
- Windows Vista/7/8/10
- Mac OS X 10.5 - 11.x
- Linux, any family OS
Browsers
- Google Chrome, version 101 and up
- Mozilla Firefox, version 102 and up
- Microsoft Edge, version 101 and up
- Opera, version 91 and up
- Chromium, version 101 and up
- Safari, version 15.0 and up
- Yandex Browser, version 23.2 and up
Hardware requirements
Altcraft platform can be installed on a physical server as well as on a virtual machine.
It is necessary to choose hardware based on the specific needs of your tasks. To clarify the requirements in your case, please send a request to support@altcraft.com.
Deployment architecture
It is recommended to place key components on separate servers:
- Database server — PostgreSQL and MongoDB
- Message queue server — RabbitMQ
- Control module server — AKD
- Sending module server — AKMTA
Each database has its own memory requirements that must be taken into account when planning resources.
NUMA architecture is not recommended for database servers. NUMA can lead to uneven memory distribution and performance degradation during intensive database operations.
Processor
- Benchmark: AMD EPYC 9354 or equivalent in performance
- Minimum: 8 cores / 16 threads
- Recommended: 16 cores / 32 threads
Memory
- Recommended capacity: 96 GB
- Type: DDR4 (high-performance modules)
Each database (PostgreSQL, MongoDB) has its own memory requirements. When hosting multiple databases on a single server, sum their requirements.
Disk subsystem
For servers with databases and message queues:
- IOPS (4K random): > 15,000 operations/sec for both read and write
- Recommended type: NVMe SSD — 4K random ≥ 500K IOPS read / ≥ 300K IOPS write, 512K sequential ≥ 3500 MB/s read / ≥ 3000 MB/s write
- Minimum level: Enterprise SATA SSD — 4K random ≥ 75K IOPS read / ≥ 20K IOPS write, 512K sequential ≥ 500 MB/s read / ≥ 450 MB/s write
For the sending module server (AKMTA spool):
- Standard SATA/SAS disks or network storage are acceptable
Network requirements
- Between services: 10 Gbit/s
- To the internet: minimum 250 Mbit/s, recommended 1 Gbit/s
Server requirements table
| Server / Resource | Minimum requirements | Recommended requirements |
|---|---|---|
| Customer database size | Up to 5 million | Up to 10 million |
| Daily message sending volume | Up to 1 million | Up to 5 million |
| Control server - CPU | 8 dedicated cores * | 16 dedicated cores * |
| Control server - RAM | 64 GB ** | 96 GB ** |
| Control server - Disk | 1 TB NVMe *** | 1 TB NVMe *** |
| Sending server - CPU | 4 dedicated cores * | 8 dedicated cores * |
| Sending server - RAM | 16 GB | 32 GB |
| Sending server - Disk | 0.5 TB **** | 1.5 TB **** |
* Assumes core allocation without considering hyper-threading level of AMD EPYC 9354 or equivalent in performance.
** Additional memory allocation may be required when building suboptimal segments and automation mechanics.
*** Assumes IOPS (4K random) > 15,000 for both read and write. Recommended type — NVMe SSD: 4K random ≥ 500K IOPS read / ≥ 300K IOPS write, 512K sequential ≥ 3500 MB/s read / ≥ 3000 MB/s write. Minimum level — Enterprise SATA SSD: 4K random ≥ 75K IOPS read / ≥ 20K IOPS write, 512K sequential ≥ 500 MB/s read / ≥ 450 MB/s write. Server-class disks are preferred. The calculation is made without considering the storage of generated content on the platform side. The number of operations and inodes on disks should not be limited.
**** The disk size is calculated for an average Email message size of 70 KB and a message lifetime of up to 72 hours. Standard SATA/SAS disks or network storage are acceptable. The number of operations and inodes on disks should not be limited.
For cluster deployment
For cluster deployment, at least a threefold increase in resources will be required, taking into account the desirable separation of data storage locations (MongoDB, PostgreSQL).
Infrastructure requirements
A frequent question concerns public IPv4 addresses, so the requirement is explained as a separate paragraph.
In its standard configuration, the AKD server uses three public (white) IP addresses. One is intended for the control panel, the second is needed for the user action tracking system in email and SMS messages (tracking), and the third is required for the user action tracking system in push notifications and web, as well as for implementing web layer functions, displaying forms, and popups. An SSL certificate will be required for the user action tracking system on websites.
The AKMTA email sender can use the same IP addresses as the control host for operation if it is hosted directly on it, but this configuration is not recommended. The number of required addresses depends on the individual configuration of the system and the approach to message distribution. For precise determination, consultation with a marketer specializing in email mailings is required. For a volume of up to 1 million per day, 2-4 IP addresses are recommended. For a volume of 5-10 million per day, it is recommended to have 4 to 16 IP addresses.
Here and in the following, we are talking about IPv4 addresses, as IPv6 is currently not fully supported by network service providers for sending email.
License access requirements
To operate the application, continuous access to Altcraft license servers must be organized:
- lic1.altkraft.com:443 TCP
- lic2.altkraft.com:443 TCP
- lic3.altkraft.com:443 TCP
Access can be organized through a proxy server and must be provided with each platform update and license renewal (payments). In the absence of access, the platform will stop launching new mailings, but the mechanics of already sent messages will continue to work.
Software requirements
The control and sending servers are designed to work reliably in the following environments:
- Ubuntu Server 22.04 LTS
- Ubuntu Server 24.04 LTS
The platform is compatible with the following operating systems:
- CentOS 7+
- Red Hat Enterprise Linux 7+
- Debian 9+
- Astra Linux Common Edition 1.7+
- Astra Linux Special Edition 1.8+ (
certified) - SUSE Linux Enterprise Server 12+
- RED OS 7.3+ (
certified)
You can install it either directly on the system or using containers (see Running the platform in a Docker container), depending on your preference.
The following open-source software is used during the system installation:
| Software | Version | Source |
|---|---|---|
| MongoDB | 8.0 | https://www.mongodb.com |
| PostgreSQL | 16.1 | https://www.postgresql.org |
| RabbitMQ | 3.12.9 (4.0+ versions are also supported) | https://www.rabbitmq.com |
| ClickHouse | 24.8+ (LTS) | https://clickhouse.com |
| Kvrocks | Latest | https://github.com/apache/kvrocks |
| SSDB | 1.8.0 | https://github.com/ideawu/ssdb |
| xvfb | Latest | Ubuntu repository ** |
| cutycapt | Latest | Ubuntu repository ** |
** The ability to install this software from official repositories must be ensured during system installation.
TCP/IP port access requirements
AKD Ports (Control module)
| Description | TCP Ports * | Access |
|---|---|---|
| RabbitMQ Message Broker - Message Exchange | 5672 (AMQP), 25672 (Cluster) | For the control server, for the sending server |
| RabbitMQ Message Broker - control | 15672 (HTTP) | For administrators |
| Tracking user actions in messages (dedicated IP) | 80 (HTTP), 443 (HTTPS) | Public, for everyone |
| Control panel (dedicated IP) | 80 (HTTP), 443 (HTTPS) | Public or internal network |
| Tracking actions in web and web layer (dedicated IP) | 443 (HTTPS) | Public, for everyone |
| MongoDB for storing all system configurations | 27017 | For the control server |
| PostgreSQL | 5432 | For the control server |
| SSDB for storing email addresses that cannot be delivered | 4420 | For the control server |
| SSDB for storing notifications | 4430 | For the control server |
| ClickHouse for storing profile history | 9000 | For the control server |
| Notification of reports and security system | 25 (SMTP) or 465 (SMTPS) | Used to connect to SMTP for sending notifications |
| Kvrocks for checking duplicates (contacts) in mailings | 6666 | For the control server |
AKMTA ports (Sending module)
| Description | Ports | Access |
|---|---|---|
| For send messages | 25 (SMTP) | Ensure that all IP addresses from which you send |
| For receive and process complaints and FBL | 110 (POP3) | Ensure that all IP addresses from which you send |
| For auto remote interact with the sender | 22 (SSH) | Ensure that the control server communicates with the sending server |
* All ports can be reassigned.
** The choice of HTTPS or SSH senders management method is optional.