Nx Private Cloud Advanced Configuration

Configure Memory Limits

By default, the Nx Cloud container is configured to run on an instance with 8GB of RAM.

If you have a container with 4GB of RAM, you can decrease the memory limits by setting the following env variables:

  • NX_CLOUD_FILE_SERVER_MEMORY_LIMIT=500
  • NX_CLOUD_API_MEMORY_LIMIT=800
  • NX_CLOUD_DATABASE_MEMORY_LIMIT=1

Example:

> docker create --name cloud \
    -p 80:8081 \
    -e NX_CLOUD_APP_URL="https://cloud.myorg.com" \
    -e ADMIN_PASSWORD=admin \
    -e NX_CLOUD_FILE_SERVER_MEMORY_LIMIT=500 \
    -e NX_CLOUD_API_MEMORY_LIMIT=800 \
    -e NX_CLOUD_DATABASE_MEMORY_LIMIT=1 \
    -v /data/private-cloud:/data nxprivatecloud/nxcloud:latest

The right amount of RAM depends heavily on how you run Nx Cloud.

  • The NX_CLOUD_FILE_SERVER_MEMORY_LIMIT value is only relevant if you use the built-in file server.
  • The NX_CLOUD_DATABASE_MEMORY_LIMIT value is only relevant if you use the built-in database.

For instance, if you use S3 to store the cached artifacts and you host Mongo DB yourself, even 2GB might be sufficient. You can set the following limit:

  • NX_CLOUD_API_MEMORY_LIMIT=800

If you run everything in the Nx Cloud container, then 8GB is much preferred.

Configure Artifact Expiration When Using Built-in File Server

By default, the Nx Cloud container is going to remove cached artifacts after two weeks. You can change it by setting NX_CACHE_EXPIRATION_PERIOD_IN_DAYS when starting the container.

Example:

> docker create --name cloud \
    -p 80:8081 \
    -e NX_CLOUD_APP_URL="https://cloud.myorg.com" \
    -e ADMIN_PASSWORD=admin \
    -e NX_CACHE_EXPIRATION_PERIOD_IN_DAYS=5 \
    -v /data/private-cloud:/data nxprivatecloud/nxcloud:latest

Self-Signed Certificates

If you have a self-signed certificate, you will have to provision NODE_EXTRA_CA_CERTS. The env variable should point to a PEM file with either your certificate, or the root certificate your certificate was created from. Though this can be accomplished with a CLI command like NODE_EXTRA_CA_CERTS=./tools/certs/cert.crt nx test myapp, you will most likely want to configure it as a global env variable (for instance in your .bashrc file).

A self-sign certificate registered in your OS won't be picked up by Node. Node requires you to provision NODE_EXTRA_CA_CERTS.

Troubleshooting and Verbose Logging

To help troubleshoot installations, add the following env variables when starting the container:

-e NX_VERBOSE_LOGGING=true -e NX_API_LOG_LEVEL=DEBIG -e NX_MONGO_LOG_LEVEL=DEBUG