67 lines
2.5 KiB
Markdown
67 lines
2.5 KiB
Markdown
# 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:
|
|
|
|
```bash
|
|
> 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:
|
|
|
|
```bash
|
|
> 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
|
|
```
|