Applies to AnyLogic Cloud 2.8.0. Last modified on May 19, 2026.
The controller folder contains several configuration files in the JSON format. The example content snippets below include comments that identify the purpose of each JSON field.
This file lists all the service components — applications — of Cloud in the form of a JSON array.
Each service component is represented as a separate JSON object which has the following format:
{
"deployOrder": 55, // The order in which this application will be started by controller.
"name": "rest", // The name of the application.
"image": "com.anylogic.cloud/rest:2.2.0", // A Docker image to use to build the application.
"cmdArgs": "", // Arguments to append to the Docker run command in the very end.
"volume": null, // A Docker volume to attach to the application container.
"envVars": [ ], // Environment variables to set using the -e run option of Docker. Example: "envVars": [ "var1=xx", "var2=yy" ]
"portMappings": [ { // An array of ports to redirect to the container using Docker’s -p run option.
"host": 9101, // The port to open on the node (the machine hosting the application).
"container": 9101, // The port inside the container.
"protocol": null // A protocol to use — can be tcp or udp, set to null to use both.
} ],
"stateEndpoint": null, // If the application has a REST endpoint that can be used to identify its state, put it there. Example: "/state".
"javaArgs": [ ], // an array of the Java virtual machine arguments that you want to append to the Java command executed inside the container. Example: "javaArgs": [ "-Xmx256M", "-Xms128M" ].
"dockerArgs": [ ] // An array of Docker arguments that you want to be passed within the container launch command. Example: "dockerArgs": [ "--cidfile=/tmp/rest-cid", "--net=host" ].
}
Some examples of environment variables:
- envVars
- "ANYLOGIC_DELETION_RETENTION_MODEL_VERSION_GRACEPERIOD='P7D'" — Defines how long the model and model version files are stored in the instance after a model or model version is deleted via the UI or API, in the ISO 8601 duration format. By default, this period is 1 week; you can set another duration using this environment variable.
This file contains an array of JSON objects representing nodes — host machines running Cloud service components. Each of these objects also contains a list of services running on that particular machine.
The format of the node object is as follows:
[ {
"host": "10.0.103.66", // The DNS name or IP address of the host.
"sshAccess": {
"method": "PRIVATE_KEY", // The method to use to connect to the host’s SSH interface. Possible options: PRIVATE_KEY, PASSWORD.
// Default value: PRIVATE_KEY — it is highly recommended to use this option.
"user": "alcadm", // The username used when connecting to the host.
"key": "id_rsa" // If method is set to "PRIVATE_KEY", this value specifies the name of the key file you want to use to connect to the host.
// These files can be found in the keys directory. If method is set to "PASSWORD", this value specifies a plain text password you want to use when connecting to the host.
},
"volumeRoot": "/home/alcadm/alc/cache", // The directory in which the container volumes are stored on the node itself. If such a directory does not exist, it will be created.
// An array of the names of applications to run on this node:
"labels": [ "controller", "rest", "balancer", "fileserver", "experiment-results", "executor", "executor-multi-run", "dynproxy", "rabbitmq", "postgres", "frontend"],
"stoppable": false, // This is ignored in Private Cloud.
"manageable": true // Whether or not controller should monitor this node and start services on it. It is not recommended to change this value in Private Cloud instances.
} ]
Private Cloud supports the following types of encryption: RSA-2048, RSA-3072, ECDSA, Ed25519.
This file stores passwords for the PostgreSQL and MinIO file servers that are used across updates.
If during an update other configuration files are recreated, the passwords from this file will be used.
{
"postgres": "%random string%",
"minioAccess": "%random string%",
"minioSecret": "%random string%"
}
The main configuration file of the controller component.
The file has the following format:
{
"registry": "local.cloud.registry:5000", // The Docker registry server. The controller service pulls Cloud Docker images from there. By default, local.cloud.registry in /etc/hosts points to 127.0.0.1.
"environment": "private", // Do not change this value in Private cloud.
"controllerAddress": { // The address of the node running controller and the controller port. These values are passed to other Cloud services as environment variables.
"host": "10.0.103.66",
"port": 9000
},
"logServiceAddress": { // The RabbitMQ log server address.
"host": "-", // The - character, when specified as a value of host, indicates the absence of a dedicated log server. In this case, logs are obtained by executing the Docker logs command.
"port": 0
},
"nodeCheck": { // The interval at which the periodic service status checks occur.
"period": 10, // At such interval the controller service will connect to the nodes via the SSH interface and check whether any service needs to be started.
"unit": "SECONDS"
},
"nodesMonitorCheck": { // The interval for periodically checking nodes.
"period": 5, // Not used in Private Cloud.
"unit": "SECONDS"
}
}
The controller folder contains the following subdirectories:
- keys — Contains private SSH keys for the nodes.
- email-templates — Contains the service email notification templates that can be sent from Cloud.
-
preload — Contains service files that are copied to the cache directory of the running application. Each subdirectory in preload must be named after its application.
Currently, this subdirectory only contains the frontend directory. In there, the NGINX configuration of the Cloud web interface resides.
-
How can we improve this article?
-