Setting up a dedicated NxCloud VM
AWS EC2
- Login to your AWS Console and select the top image published here
- Launch a new instance from that AMI
- Recommended instance type: t3.2xlarge
- You will need to SSH into the instance once it's created:- Use an existing SSH key-pair that you already have installed locally.
- Or create a new one and download the keys locally- Then select your new SSH pair from the list
 
 
- Networking:- Allow the instance to receive HTTP and HTTPS traffic
- Allow SSH from your current IP
 
- Leave the storage options as they are
- "Launch instance"
- Wait 10 minutes, then navigate to your instance's IP in the browser. You should see the NxCloud dashboard!

Your NxCloud URL
- At this point, your instance will have a public IP accessible from the browser.- You can consider this IP the URL of NxCloud, and proceed with the below steps and all will work fine!
 
- You might want, however, to add a Load Balancer in front of the instance, with an explicit domain (e.g. https://my-nxcloud.my-org.com).- This is strongly recommended because you will be able to upgrade/restart/re-configure your NxCloud EC2 instance while keeping the NxCloud URL static.
- Create an application load balancer
- You will need to create a certificate for your domain to assign to the LB
- And you will need to target your EC2 instance from the LB
- You should now have a permanent domain pointing to your NxCloud instance
 
Once you have your NxCloud URL proceed to the below steps!
Configuring your NxCloud instance
- Create a new myconfiguration.yamlfile with the below contents
# This is all you need to get the baseline of your nx-cloud instance configured!
# Set the external URL your instance is running on. This is the URL from the previous step
nxCloudAppURL: 'https://nx-cloud.on.my-domain.ca'
secret:
  # set your initial admin password for logging into the app
  adminPassword: 'correcthorsebatterystaple'
- Apply the configuration:
scp -i ./<path-to-your-ssh-pem-file>.pem -r ./myconfiguration.yaml nx-cloud@<your-instance-ip>:~/config/user/update.yaml
That's it! After a few minutes, you should be able to log-in with:
- username: admin
- password: <the-password-you-set-above>
Applying the license
Once you log-in, you will see an organisation has been created for you.
- You can rename it or create a new organization.
- Navigate to your new organization's page and send us it's id- It should look something like this: https://your-url.com/orgs/649f240f7fb955000c1fd10b/workspaces
 
- We will then give you a License Key which you can apply on your org's billing page
Connecting to your NxCloud instance
In your Nx workspace, you can enable NxCloud by running:
NX_CLOUD_API="https://nx-cloud.on.my-domain.ca" npx nx connect
If it doesn't work, there might be an issue with unrecognized certificates on your instance. You can try running with:
NODE_TLS_REJECT_UNAUTHORIZED=0 NX_CLOUD_API="https://nx-cloud.on.my-domain.ca" npx nx connect
Although we have a full guide here for dealing with self-signed certificates.
Advanced configuration and auth
You can optionally enable authentication using your preferred SSO provider:
- GitHub
- Bitbucket
- GitLab
- SAML (Okta, Azure AD etc.)
# This is all you need to get the baseline of your nx-cloud instance configured!
# only use this if you'd like to use any of the newer NxCloud version from here: https://nx.dev/nx-cloud/reference/release-notes#docker-containers
# global.imageTag: ''
# Set the external URL your instance is running on
nxCloudAppURL: 'https://nx-cloud.on.my-domain.ca'
# Uncomment (along with github secrets below) to enable working with GitHub pull requests or github auth
#github:
#  auth:
#    enabled: false
#  pr:
#    apiUrl: '' # this is only needed if you have a self-hosted github instance
#gitlab:
#  apiUrl: '' # this is only needed if you have a self-hosted gitlab instance
#  auth:
#    enabled: false
# we do not support self-hosted bitbucket instances
#bitbucket:
#  auth:
#    enabled: false
#saml:
#  auth:
#    enabled: false
# Provide plaintext values for your application to use. We will extract them,
# store them within the application runtime, and scrub the plaintext ones from
# the filesystem
secret:
  # set your initial admin password for logging into the app
  # see here: https://nx.dev/nx-cloud/private-cloud/auth-single-admin
  adminPassword: 'correcthorsebatterystaple'
  # If you want to enable GitHub Login, just provide your client id & secret, we handle the rest
  # see here: https://nx.dev/nx-cloud/private-cloud/auth-github
  githubAuthClientId: 'my_client_id'
  githubAuthClientSecret: 'my_client_secret'
  # The same goes for GitLab authentication
  # see here: https://nx.dev/nx-cloud/private-cloud/auth-gitlab
  # gitlabAppId: 'my_gitlab_app_id'
  # gitlabAppSecret: 'my_gitlab_app_secret'
  # Bitbucket too! If these are uncommented, BB auth is automatically enabled
  # see here: https://nx.dev/nx-cloud/private-cloud/auth-bitbucket
  # bitbucketAppId: 'bitbucket_app_id'
  # bitbucketAppSecret: 'bitbucket_app_secret'
  # SAML auth
  # see here: https://nx.dev/nx-cloud/private-cloud/auth-saml
  # samlEntryPoint: 'your_saml_entry_point'
  # samlCert: 'saml_cert'
Upgrades
We send out emails with every new NxCloud release to all our Enterprise customers:
- You can view your current version at the /versionroute: https://your-nx-cloud-url.com/version
- And these are the latest NxCloud releases
To upgrade to a newer version, add the below line to your myconfiguration.yml file:
global.imageTag: '2306.01.2' # set the version of nx-cloud you'd like
And apply the changes:
scp -r ./myconfiguration.yaml nx-cloud@<your-instance-ip>:~/config/user/update.yaml