Configuration file
The main platform configuration file main.json is located by default in the /opt/akd/config/ folder.
It contains parameters for placing control server components, access settings, and other configuration options.
Basic configuration
Below is an example of a standard configuration with local component placement.
{
"BASEDIR": "/opt/akd",
"MONGO_AUTH_DB": "admin",
"CONTROLDB_IP": "127.0.0.1",
"CONTROLDB_PORT": 27017,
"CONTROLDB_NAME": "control",
"CONTROLDB_USER": "altcraft",
"CONTROLDB_PASS": "abcdefghijklmnopqrstuvwxyzABCDEF",
"FILEDB_ENABLE": true,
"FILEDB_IP": "127.0.0.1",
"FILEDB_PORT": 27017,
"FILEDB_USER": "altcraft",
"FILEDB_PASS": "abcdefghijklmnopqrstuvwxyzABCDEF",
"FILEDB_NAME": "filedb",
"DEFAULT_LOG_LEVEL": "INFO",
"PRIVATE_KEY": "abcdefghijklmnopqrstuvwxyzABCDEF",
"PRODUCT_NAME": "Altcraft Platform",
"CLICKHOUSE_SYSTEM": {
"HOST": "127.0.0.1",
"PORT": 9000,
"USER": "altcraft",
"DATABASE_NAME": "altcraft_system",
"PASSWORD": "abcdefghijklmnopqrstuvwxyzABCDEF",
"IS_DEBUG": false
},
"SSDB_HBSUPP_IP": "127.0.0.1",
"SSDB_HBSUPP_PASS": "abcdefghijklmnopqrstuvwxyzABCDEF",
"SSDB_HBSUPP_PORT": 4420,
"SSDB_NOTIFY_IP": "127.0.0.1",
"SSDB_NOTIFY_PASS": "abcdefghijklmnopqrstuvwxyzABCDEF",
"SSDB_NOTIFY_PORT": 4430,
"RABBITMQ_HOST": "127.0.0.1",
"RABBITMQ_VHOST": "altcraft",
"RABBITMQ_USER": "altcraft",
"RABBITMQ_PASS": "abcdefghijklmnopqrstuvwxyzABCDEF",
"CAMP_DUPLICATESDB": {
"MODE": "standalone",
"PASSWORD": "abcdefghijklmnopqrstuvwxyzABCDEF",
"NODES": [
{
"HOST": "127.0.0.1",
"PORT": 6666
}
]
},
"PROCWORKFLOW_DISTRIBUTED_CACHE_DB": {
"MODE": "standalone",
"PASSWORD": "abcdefghijklmnopqrstuvwxyzABCDEF",
"NODES": [
{
"HOST": "127.0.0.1",
"PORT": 6666
}
]
},
"WEBAPI_PRIVATE_KEY": "abcdefghijklmnopqrstuvwxyzABCDEF",
"WEBCONTROL_HOSTNAME": "altcraft.domain.com",
"WEBCONTROL_PUBLIC_IP": "192.168.0.1",
"WEBCONTROL_PUBLIC_PORT": 80,
"TRACKING_CRYPT_KEY": "abcdefghijklmnopqrstuvwxyzABCDEF",
"TRACKING_HOSTNAME": "click.domain.com",
"TRACKING_PREFIX": "click",
"TRACKING_PUBLIC_IP": "192.168.0.2",
"TRACKING_PUBLIC_PORT": 80,
"COOKIESAVER_PUBLIC_HOSTNAME": "pxl.domain.com",
"COOKIESAVER_PUBLIC_IP": "192.168.0.3",
"COOKIESAVER_PUBLIC_PORT": 80,
"COOKIESAVER_SSL_ON": false
}
General settings
General parameters
PRODUCT_NAME string
Description: Product name
Default: "ALTCRAFT"
Required: Yes
INSTANCE_NAME string
Description: Platform instance name
Default: "MAIN"
Required: No
TARIF_CHECK_PERIOD_SEC int
Description: Interval to check expiration of limits for tariffs
Default: 60
Required: No
Network
DEFAULT_HTTP_RETRY_COUNT int
Description: Number of HTTP reconnection attempts
Default: 3
Required: No
DEFAULT_HTTP_RETRY_DELAYSEC int
Description: Interval between HTTP reconnection attempts
Default: 5
Required: No
HTTP_PROXY string
Description: Proxy server for HTTP connections
Default: None
Required: No
LICENSE_PROXY string
Description: Proxy server for HTTP connections with the License server
Default: "HTTP_PROXY"
Required: No
LONG_REQUEST_TIMEOUT_SEC int
Description: Timeout for long-running requests
Default: 840
Required: No
SSH_CONNECTION_TIMEOUT int
Description: SSH connection timeout in seconds, 0 = infinite
Default: 60
Required: No
SSH_CACHE_CONNECTION_TIMEOUT int
Description: Timeout for cached SSH connections, 0 = infinite
Default: 60
Required: No
File paths
BASEDIR string
Description: Platform installation directory
Default: "/opt/akd/"
Required: Yes
UPLOAD_PATH string
Description: Directory for temporary storage of uploaded files
Default: "{BASED}/tmp"
Required: No
PIDS_PATH string
Description: Directory for storing PID files
Default: "{BASED}/pids"
Required: No
LOGS_PATH string
Description: Directory for storing log files
Default: "{BASED}/logs"
Required: No
GEODB_PATH string
Description: Directory for storing geodata database
Default: "{BASED}/geo"
Required: No
JSON_CONSTS_PATH string
Description: Directory for storing system constants
Default: "{BASED}/json_consts"
Required: No
TEMPLATES_PATH string
Description: Directory for storing web interface templates
Default: "{BASED}/templates"
Required: No
LANGUAGE_PATH string
Description: Directory for storing localization files
Default: "{BASED}/klukva/languages"
Required: No
UNIX_SOCKETS_PATH string
Description: Directory for storing UNIX sockets
Default: "{BASED}/socks"
Required: No
CUTYCAPT_PATH string
Description: Directory for the Cutycapt utility
Default: The platform will try to find the path via the PATH variable, searching for "cutycapt" or "CutyCapt"
Required: No
Temporary file cleanup
AUTOCLEAN_TMP_DAYS int
Description: Frequency of automatic cleanup of temporary files
Default: 30 (days)
Required: No
AUTOCLEAN_EXPORT_API_DAYS int
Description: Frequency of automatic cleanup of API export files
Default: 7 (days)
Required: No
Unix domain sockets
PREFER_UNIX_SOCKETS bool
Description: Enable UNIX sockets for all available processes
Default: false
Required: No
UNIX_SOCKETS_USER string
Description: Username for UNIX sockets
Default: "nginx"
Required: No
UNIX_SOCKETS_GROUP string
Description: Access group for UNIX sockets
Default: "nginx"
Required: No
Password requirements
PASSWORDS_MIN_LENGTH int
Description: Minimum password length
Default: 8
Required: No
PASSWORDS_MAX_LENGTH int
Description: Maximum password length
Default: 32
Required: No
PASSWORDS_STRENGTH int
Description: Password complexity level:
- 0 — any characters
- 1 — excludes dictionary words and usernames
- 2 — all of the above, plus must contain digits and special characters
Default: 2
Required: No
PASSWORDS_MAX_AGE int
Description: Maximum password lifetime (in seconds), 0 means no limit
Default: 0
Required: No
RPC connection settings
RPC_TOKEN string
Description: RPC server authorization token
Default: "abcdefghiasdwqedwqjklmnopqrstuvwxyzABCDEF"
Required: No
RPC_HOST string
Description: RPC server address
Default: "127.0.0.1"
Required: No
RPC_PORT string
Description: RPC server port
Default: "8972"
Required: No
RPC_SELECT_MODE int
Description: RPC connection selection mode:
- 0 — Random
- 1 — Round Robin
- 2 — Weighted Round Robin
- 3 — Weighted ICMP (selection by weighted ping time)
- 4 — Consistent Hash
- 5 — Closest
Default: 0
Required: No
Task server settings
PROC_TASK_RPC_TIMEOUT int
Description: RPC connection timeout with the task handler
Default: 5
Required: No
PROC_TASK_COUNT_WORKERS int
Description: Number of handlers in each group. No more than 1 per CPU core
Default: 2
Required: No
PROCTASK_READER_GROUP_SIZE int
Description: Number of handler groups
Default: 4
Required: No
PROCTASK_TASK_READING_PERIOD_MS int
Description: Interval between task requests from MongoDB. To remove pauses between requests, set this parameter to -1
Default: 3000
Required: No
PROC_TASK_TTL_HOUR int
Description: Task processing timeout
Default: 720 (hours)
Required: No
PROC_TASK_PROGRESS_PERIOD int
Description: Task progress update interval
Default: 5 (seconds)
Required: No
PROC_TASK_RPC_CONNECTION_TIMEOUT int
Description: Connection timeout duration
Default: 15 (seconds)
Required: No
PROC_TASK_RPC_READ_TIMEOUT int
Description: Request wait time after which the connection closes (0 = no timeout)
Default: 60 (seconds)
Required: No
PROC_TASK_SELECT_MODE string
Description: Handler operation mode:
- RoundRobin — cyclic operation
- RandomSelect — random handler selection
Default: "RoundRobin"
Required: No
PROC_TASK_COPY_HISTORY_RANGE_MODE string
Description: Profile history copy mode:
- full_period_mode — copies history for the entire period
- range_period_mode — copies history for a specified range (in days)
Default: "full_period_mode"
Required: No
PROC_TASK_COPY_HISTORY_RANGE_DAYS int
Description: Number of days for range_period_mode
Default: 3
Required: No
PROC_TASK_RESERVED_TASK_IDLE_TIME_LIMIT_MIN int
Description: Max idle time in reserved status
Default: 5
Required: No
"CLUSTER": — clustered deployment of the platform control server
HOST_ID string
Description: ID of the current cluster replica
Default: None
Required: Yes
PROC_TASKS array
Description: List of system task handlers on cluster replicas:
"PROC_TASKS": [{
"HOST_ID": "", // unique replica ID
"RPCHOST": "", // RPC replica address
"RPCPORT": "", // RPC replica port
"FORCE_MASTER_ROLE": false // use as master server
}]
Default: None
Required: Yes
PROC_WORKFLOW array
Description: List of automation Scenario handlers on cluster replicas:
"PROC_WORKFLOW": [{
"HOST_ID": "", // unique replica ID
"RPCHOST": "", // RPC replica address
"RPCPORT": "", // RPC replica port
"FORCE_MASTER_ROLE": false // use as master server
}]
Default: None
Required: Yes
ATTEMPTS_FOR_EACH_CONNECTION int
Description: Number of attempts to establish a connection
Default: 2
Required: No
CONNECTION_FAIL_SLEEP_SEC int
Description: Interval between connection attempts
Default: 5
Required: No
Audit Log
AUDIT_LOG_ENABLE bool
Description: Enables the audit log for user actions
Default: true
Required: No
AUDIT_LOG_TTL int
Description: Retention time for audit log records in days
Default: 90
Required: No
Asynchronous audit log processing
AUDIT_RMQ_PROCESSING_ENABLE bool
Description: When enabled, audit log events are sent to the RabbitMQ queue ak_audit_events and processed asynchronously
Required: No
RabbitMQ audit log consumer settings
AUDIT_RMQ_CONSUMER_MAX_WORKERS int
Description: Number of workers started in the consumer to process audit log events from the RabbitMQ queue
Default: 8
Required: No
AUDIT_RMQ_CONSUMER_PREFETCH_SIZE int
Description: Prefetch queue size for the audit log RabbitMQ consumer
Default: 8000
Required: No
RabbitMQ audit log publisher settings
AUDIT_RMQ_PUBLISHER_MAX_WORKERS int
Description: Number of publisher workers used to send audit log events to RabbitMQ
Default: 8
Required: No
AUDIT_RMQ_PUBLISHER_PREFETCH_SIZE int
Description: Internal buffer size of the audit log publisher
Default: 8000
Required: No
Batch processing of audit log events
AUDIT_LOG_BATCH_PROCESSOR_MAX_WORKERS int
Description: Number of workers processing batches of audit log events
Default: 8
Required: No
AUDIT_LOG_BATCH_SEND_INTERVAL_MS int
Description: Wait time during batch assembly. If no new events arrive within this interval, the batch processing starts
Default: 1000
Required: No
AUDIT_LOG_BATCH_MAX_SEND_INTERVAL_MS int
Description: Maximum wait time before sending a batch, even if it is not fully filled
Default: 1000
Required: No
AUDIT_LOG_MAX_BATCH_LENGTH int
Description: Maximum number of events in a single batch. Affects how often insert requests are sent to the database
Default: 10000
Required: No
AUDIT_LOG_MAX_BATCH_WORKER_BUFFER int
Description: Buffer size of a batch processing worker. Used to tune processing for low or high load scenarios
Default: 1000
Required: No
HTTP connection settings
DEFAULT_CONN_DIAL_TIMEOUT_SEC int
Description: Timeout for calling a remote server
Default: 15
Required: No
DEFAULT_CONN_TIMEOUT_SEC int
Description: Connection timeout with a remote server
Default: 120
Required: No
DEFAULT_CONN_IDLE_TIMEOUT_SEC int
Description: Lifetime of blocked connections in the pool
Default: 60
Required: No
SENDER_QUEUE_SIZE int
Description: Sender queue size
Default: 8 (no more than 8 per CPU core)
Required: No
Sender settings
SENDER_QUEUE_SIZE int
Description: Sender queue limit
Default: 2000
Required: No
SENDER_WORKER_SIZE int
Description: Number of sender workers
Default: 1
Required: No
IP address and range exclusions
BLOCKIPRANGES array
Description: Exclude IP subnets from sending
Default: None
Required: No
TRK_BLOCK_IPS array
Description: Exclude IP subnets from sending
Default: None
Required: No
Data storage
With these parameters you can override system settings of platform databases — for deployment on remote servers, including as a cluster for fault-tolerant platform operation.
RESCAN_DB_SEC int
Description: Frequency of subscriber counter updates in databases
Default: 900
Required: No
RESCAN_DB_COUNT_WORKERS int
Description: Number of profile database recalculation workers
Default: 4
Required: No
SQL_ACCOUNT_POOL_SIZE int
Description: Limit of connections in the PostgreSQL account database pool
Default: 10
Required: No
CAMPAIGN_LEDIS_DB_PATH string
Description: Path to mailing ledis_db database
Default: "{BASED}/data/ledis_db"
Required: No