Skip to main content
Before installing Nuon BYOC, you will need to prepare the following dependencies.

Cloud Account

You will need an AWS or GCP account to run Nuon BYOC in. The installation process is the same on both platforms. Platform-specific architecture is covered in Architecture.
If you are hosting Nuon BYOC on GCP, a public S3 bucket is still required to support CloudFormation Quick create links for customer AWS install stacks. By default, we will provision a bucket for you, but if you would like to own the bucket yourself, you will need an AWS account.

DNS

Root DNS

In order to serve Nuon BYOC at your own domain — for example, nuon.my-domain.com — you will need a DNS zone to place the records in.
1
Before creating the install, create the DNS zone my-domain.com in your preferred hosting provider, if it does not already exist.
2
While provisioning the install stack, provide nuon.my-domain.com as the value for the Root Domain input.
3
Once Nuon BYOC has fully provisioned, the nameservers for the install will be available in the outputs.
4
Create an NS record named nuon.my-domain.com using the nameserver values from the install outputs.
5
Once propagation is complete, your Nuon BYOC install will be available at nuon.my-domain.com.
Nuon will provision the following subdomains under nuon.my-domain.com. Only the runner API needs to be public. The rest can be private to your internal network.
The Nuon Dashboard uses cookies for authentication, and they will be shared on all subdomains of the provided root domain. We strongly recommend creating a Nuon-specific subdomain to avoid leaking auth cookies.

Install Delegation DNS (Optional)

If you don’t want your customers to have to set up DNS when installing your app, you can configure DNS delegation. A subdomain is provisioned for each install under a subdomain you control. Nuon Cloud, for example, creates a subdomain for each install at <install_id>.nuon.run by default. For details, see Custom Domains.

GitHub App

Create a GitHub App so Nuon can access your GitHub org. This allows it to access private repos and receive webhook events.
1
Go to GitHub App Settings and click New GitHub App.
2
Configure the app with the following settings.
3
Configure the following permissions.Repository permissionsOrganization permissions
The Webhooks permission lets Nuon register a webhook to trigger app branch runs. If you do not want to grant this access, you can instead trigger runs from your own CI using the Nuon GitHub Action.
4
Under “Where can this GitHub App be installed?”, select Only on this account (unless you need to access repos in other GitHub organizations).
5
Click Create GitHub App.
6
After creation, scroll to the bottom of the page and click Generate a private key. Save the PEM file to provide as a secret.
The GitHub App PEM key must be base64 encoded to preserve newlines.
7
Save the App ID and Client ID from the app settings page to provide as inputs.

Identity Provider

Configure your preferred identity provider to control user access to Nuon.

Google

To use Google as your IdP, set up an OAuth client in the Google Cloud Console.
1
Go to the Google Cloud Console and create or select a project.
2
Navigate to APIs & Services > Credentials.
3
Click Create Credentials > OAuth client ID and select Web application as the application type.
4
Configure the OAuth client.
5
Click Create.
6
After creation, save the Client ID to provide as an input, and the Client Secret to provide as a secret. You will also need the Issuer URL for Google. It is always https://accounts.google.com.

Okta

To use Okta as your IdP, set up an OIDC Application in Okta.
1
In the Okta Admin Console, navigate to Applications and create a new OIDC application.
  1. For Sign-in method, select OIDC - OpenID Connect
  2. For Application type, select Web Application
2
Set the Sign In Redirect to https://auth.<your-root-domain>/auth
3
Set Trusted Origins to <your-root-domain>
4
Click Save.
5
After creation, save the Issuer URL and Client ID to provide as an input, and the Secret to provide as a secret.

Auth0 (Legacy)

This section does not document using Auth0 as a regular auth provider. Nuon BYOC previously required Auth0 for authentication. This is no longer the case. This documentation is retained for anyone still using the legacy Auth0 integration.New Nuon BYOC installs should use one of the IdP integrations documented above.
To use Auth0 for authentication, you will need to configure an API, applications, and a custom action in your Auth0 tenant. Nuon provides a Terraform module to automate Auth0 configuration. We recommend this over manual configuration. Apply the following Terraform to use it.
After applying, the module outputs the values you will need for the install inputs. If you would prefer to configure Auth0 manually, follow the steps below.
1
Add an action to enrich the access token with the user’s email.
  1. Go to Actions > Library in your Auth0 dashboard
  2. Click Create Action > Build from scratch
  3. Name it AddScope and select the latest runtime
  4. Replace the code with:
  1. Deploy the action
  2. Go to Actions > Triggers > Post Login
  3. Drag the AddScope action into the flow and save
2
Create an API with the following settings.
The Identifier must match your API URL exactly. It cannot be changed after creation.
3
Create a Single Page Application for the Dashboard UI.
4
Create a Native Application for CLI authentication.