Nuon offers multiple ways to create installs, allowing to implement and manage this important process in the way that best suits your business needs.
Installers
If you want to offer your customers a self-serve experience, you can create an installer.
Installers bundle together all the config required to present a friendly UX your customers can use to install your app.
Reference the Installers guide to learn more.
CLI
Installs can be created via the Nuon CLI .
nuon installs create --name=auto-deploy --region=us-east-1 --role=iam-role
Installs can be created and managed using Terraform .
Example of creating an install using Terraform:
resource "nuon_install" "install" {
app_id = nuon_app .< your - app >. id
name = " nuon-test-install "
iam_role_arn = var . install_role_arn
API and SDKs
Installs can be created directly via our API, or by using an SDK:
An example of using nuon-go to create an install as part of a signup endpoint:
type CreateInstallRequest struct {
Name string ` json:"name" validate:"required" `
Region string ` json:"region" `
IAMRoleARN string ` json:"iam_role_arn" validate:"required" `
} ` json:"aws_account" validate:"required" `
AppName string ` json:"app_name" validate:"required" `
func ( c * CreateInstallRequest) Validate ( v * validator.Validate) error {
if err := v . Struct ( c ); err != nil {
return fmt . Errorf ( " invalid request: %w " , err )
func ( s * app) signup ( ctx * gin.Context) {
var req CreateInstallRequest
if err := ctx . BindJSON ( & req ); err != nil {
ctx . Error ( fmt . Errorf ( " unable to parse request: %w " , err ))
if err := req . Validate ( s . v ); err != nil {
app , err := s . apiClient . GetApp ( ctx , req . AppName )
install , err := s . apiClient . CreateInstall ( ctx , app . ID , & models.ServiceCreateInstallRequest{
AwsAccount : & models.ServiceCreateInstallRequestAwsAccount{
IamRoleArn : & req . AWSAccount . IAMRoleARN ,
Region : req . AWSAccount . Region ,
ctx . JSON ( http . StatusCreated , install )