Printer icon

nAxiom Installation from CLI

📅 2026-05-21 sygnet.svg 1.15.6.5 👤 mmy, dbo 39 min.

Table of contents

1. Introduction

TL;DR

   .\AppInstaller.exe it=:file iv=:".\install.json" nogui

Example configuration to save as install.json here. In the configuration, you must provide your own values for at least the following parameters:

  • CertificateThumbprint: certificate thumbprint for Host
  • CertificateStore: certificate store (if other than My)
  • Server, Port, Instance: SQL Server address, port, instance name (three occurences)
  • Username, Password: database admin name and password (GlobalSettings.DatabaseConnectionSA)
  • MessageBrokerConfiguration: all parameters in the section

The nAxiom installer can be run from the command line to automatically perform a full nAxiom installation or update an existing nAxiom website, including changing configuration parameters. The installation process includes the following steps:

  • configuring the IIS website and application pools,
  • extracting application packages (ZIP) to the web server,
  • configuring connections to SQL Server databases,
  • setting database schemas,
  • configuring the RabbitMQ message broker,
  • configuring diagnostics (logs, OpenTelemetry),
  • setting IP restrictions for individual applications,
  • configuring resource locations (attachments, e-mail, OCR).

2. System requirements

The installer automatically verifies the requirements below in the first step. Requirements marked as mandatory block the installation if they are not met.

Requirement Mandatory Description
Windows operating system Windows is required
.NET Framework 4.8 Used by Crystal Reports
.NET 8 Runtime environment for DotNetCore applications
ANCM (ASP.NET Core Hosting Bundle) Hosting module for IIS
IIS 8+ Internet Information Services
IIS — Directory Browsing HTTP feature: Directory Browsing
IIS — IP Security Security module: IP Address and Domain Restrictions
IIS — Static Content HTTP feature: Static Content
IIS — Application Initialization Application Initialization
IIS — WebSocket Protocol WebSocket support
URL Rewrite (IIS extension) URL Rewrite module
Microsoft SQL Server 2016+ Database (can be a remote server)
SAP Crystal Reports Runtime 13 Only if the Crystal module is installed
Administrator permissions Required to manage IIS
Erlang/OTP Required for RabbitMQ (version 27.0–27.3.4.2)
RabbitMQ Message broker (version 4.0–4.1.3)

Note: The installer requires escalated permissions (Run as Administrator).

3. Command line parameters (CLI)

3.1 Syntax

AppInstaller.exe [it=:<input_type>] [iv=:"<value>"] [nogui|noguiupdate]

3.2 Parameter list

Parameter Required Description
it=:<input_type> Yes* Configuration input type. Allowed values: file, json
iv=:"<value>" Yes* Input value — path to the JSON file (for it=:file) or minified JSON (for it=:json)**
nogui No Runs the installer in silent mode — full installation without GUI
noguiupdate No Runs the installer in silent mode — file update without changing configuration - it retrieves configuration settings from the website running on the IIS server

Notes

* Parameters it and iv are required when nogui or noguiupdate is provided.

** For inline JSON, use a minified format and correctly apply escape characters (\") in cmd/PowerShell.

3.3 Separator format

Key-value parameters use the =: separator (equals sign + colon):

it=:file
iv=:"C:\config\install.json"

3.4 Supported JSON file paths

Path type Example Description
Absolute C:\nAxiom\install.json Full path on disk
Relative (.\) .\install.json Relative to the installer’s directory
Parent (..\) ..\config\
install.json
Parent directory (with recursive support)

3.5 Example usage

  1. Running the command with the nogui parameter.

    .\AppInstaller.exe it=:file iv=:".\install.json" nogui
    

    In the example above, all settings will be read from the install.json file saved in the installer’s folder. During program execution, messages will be displayed in the console. Example file contents are provided in section 5.

  2. Running the command with the noguiupdate parameter.

    AppInstaller.exe it=:file iv=:".\install.json" noguiupdate
    

    Existing website update mode. It updates application files only (extracts new ZIP packages) without modifying configuration (databases, IIS, schemas, etc.). In this mode, only the Packages section is required from the JSON file.

    Important

    The noguiupdate parameter is intended for use in environments where exactly one nAxiom website is running on the IIS server, because it retrieves configuration settings from it.

3.6 Mode comparison

Function nogui noguiupdate
IIS configuration ❌ (skips)
Database configuration ❌ (skips)
Package extraction
Schema configuration ❌ (skips)
IP restrictions ❌ (skips)
RabbitMQ ❌ (skips)
Diagnostics ⚠️ partial ❌ (skips)
Console output
Requires full JSON ❌ (Packages only)

4. JSON configuration — full specification

The JSON file contains the complete installation configuration. Each section is described below together with data types and allowed values.

4.1 Main structure

{
  "IISApplication": { ... },
  "Environment": { ... },
  "Packages": [ ... ],
  "Databases": [ ... ],
  "GlobalSettings": { ... },
  "ResourceLocations": [ ... ],
  "Schemas": { ... },
  "Restrictions": { ... },
  "MessageBrokerConfiguration": { ... },
  "DiagnosticsConfiguration": { ... }
}

4.2 IISApplication — IIS website configuration

{
  "IISApplication": {
    "MainBinding": {
      "Host": "mysite.com",
      "Port": 443,
      "IpAddress": "*",
      "Protocol": "https",
      "CertificateThumbprint": "03C7D02F959CDEBB4C...",
      "CertificateStore": "My"
    },
    "OptionalLocalBinding": {
      "Host": "localhost",
      "Port": 8082,
      "IpAddress": "*",
      "Protocol": "http"
    },
    "InstallationType": "Global",
    "WebsiteName": "naxiom.mysite",
    "WebsitePath": "C:\\inetpub\\naxiom",
    "CompanyName": "MyCompany",
    "PoolIdentityType": "ApplicationPoolIdentity",
    "IdentityUser": "",
    "IdentityPassword": ""
  }
}
Field Type Values Description
MainBinding.
Host
string Host name (domain)
MainBinding.
Port
int 1–65535 Website port
MainBinding.
IpAddress
string * or IP address Listening IP address
MainBinding.
Protocol
string https Only the https protocol is supported
MainBinding.
Certificate
Thumbprint
string hex SSL certificate thumbprint (required)
MainBinding.
Certificate
Store
string My, Root, etc. Windows certificate store
Optional
Local
Binding
object/null Optional additional binding (for example localhost over HTTP)
Installation
Type
string Local, Global Local — local access; Global — Internet access
Website
Name
string Website name in IIS
Website
Path
string Disk path to the website files
Company
Name
string License key name
Pool
Identity
Type
string ApplicationPoolIdentity, SpecificUser Application pool identity
Identity
User
string User name (required for SpecificUser)
Identity
Password
string Password (required for SpecificUser)

Global installation: the Host value cannot be localhost or 127.0.0.1.

4.3 Environment — Environment type

{
  "Environment": {
    "EnvironmentType": "Production"
  }
}
Value Description
Development Development environment
Test Test environment
Production Production environment

4.4 Packages — Installation packages

List of ZIP packages to install. Each entry corresponds to one application in the nAxiom platform. If the configuration file is saved in the folder with the installation packages, relative paths can be used.

{
  "Packages": [
    {
      "Name": "Front",
      "ZipPath": ".\\front.zip"
    },
    {
      "Name": "Api",
      "ZipPath": ".\\api.zip"
    }
  ]
}

Available package names (Name):

Name Application type Description DB required
Front Angular Main website
Admin Angular Administrator panel
Api .NET Core Application Programming Interface (API)
Auth .NET Core Authorization panel
TenantsApi .NET Core Tenant management API
TenantsAdmin Angular Tenant management application
Crystal .NET Framework Crystal Reports generator
Workflow Angular Graphical document flows
TaskService .NET Core Scheduled task service
PublicApi .NET Core Public API
OcrApi .NET Core Text recognition API
Ocr Angular OCR application
Syncfusion .NET Core PDF file converter
ReportsApi .NET Core Reports module
MobileApi .NET Core API for the mobile application
DocApi .NET Core Documentation module
DocPdf Content PDF documentation
Word Angular MS Word add-in
Outlook Angular MS Outlook add-in
MobileTools Content Mobile application generator files
Bpmn Angular BPMN/DMN editor

Skipping packages: To skip installation of a specific package, simply remove it from the Packages section (and from Databases, if applicable).

4.5 Databases — Database connections

List of database configurations for applications that require them.

{
  "Databases": [
    {
      "Name": "Api",
      "DatabaseConnection": {
        "Server": "localhost",
        "UsePort": false,
        "Port": 1433,
        "Timeout": 15,
        "Instance": "SQLEXPRESS",
        "IntegratedSecurity": false,
        "Username": "tenant1user",
        "Password": "!Q2w3e4r",
        "Database": "nAxiom"
      }
    },
    {
      "Name": "TenantsApi",
      "DatabaseConnection": {
        "Server": "localhost",
        "UsePort": false,
        "Port": 1433,
        "Timeout": 15,
        "Instance": "SQLEXPRESS",
        "IntegratedSecurity": false,
        "Username": "tenantadmin",
        "Password": "!Q2w3e4r",
        "Database": "nAxiom_tenantsAdmin"
      }
    }
  ]
}
Field Type Default Description
Name string Api, TenantsApi Name of the service using the database: Api - database used by all services, TenantsApi - tenants database
Server string localhost SQL server address
UsePort bool false Whether to use a custom port
Port int 1433 SQL Server port
Timeout int 120 Connection timeout (seconds)
Instance string SQLEXPRESS SQL instance name (empty = default)
Integrated
Security
bool true Whether to use Windows authentication
Username string "" SQL login (when IntegratedSecurity = false)
Password string "" SQL password (when IntegratedSecurity = false)
Database string nAxiom Database name

4.6 GlobalSettings — Administrator connection

If the login provided for the TenantsApi database in Databases node exists on the server and has permissions to create databases and logins (dbcreator and securityadmin or sysadmin), providing credentials in this section is not required. The DatabaseConnectionSA structure is identical to DatabaseConnection described in section 4.5.

Info

The minimum permissions for the login provided in this section are dbcreator and securityadmin. It does not have to be the sa login.

{
  "GlobalSettings": {
    "DatabaseConnectionSA": {
      "Server": "localhost",
      "UsePort": false,
      "Port": 1433,
      "Timeout": 15,
      "Instance": "SQLEXPRESS",
      "IntegratedSecurity": false,
      "Username": "sa",
      "Password": "saPassword!@89",
      "Database": ""
    }
  }
}

4.7 ResourceLocations — Resource locations

Defines where individual application resource types are stored.

{
  "ResourceLocations": [
    {
      "ResourceType": "Attachments",
      "Location": "DataBaseTable",
      "DatabaseConnection": {
        "Server": "localhost",
        "UsePort": false,
        "Port": 1433,
        "Instance": "SQLEXPRESS",
        "Username": "sa",
        "Password": "!Q2w3e4r",
        "Database": "nAxiom.TESTOWY"
      },
      "TableName": "dbo.my_attachments",
      "FolderPath": ""
    },
    {
      "ResourceType": "EmailMessages",
      "Location": "InstallationFolder",
      "DatabaseConnection": null,
      "TableName": "",
      "FolderPath": ""
    },
    {
      "ResourceType": "Ocr",
      "Location": "NoChange",
      "DatabaseConnection": null,
      "TableName": "",
      "FolderPath": ""
    },
    {
      "ResourceType": "AdditionalLibrary",
      "Location": "InstallationFolder",
      "DatabaseConnection": null,
      "TableName": "",
      "FolderPath": ""
    }
  ]
}

Resource types (ResourceType):

Value Description
Attachments Document attachments
EmailMessages E-mail messages
Ocr Recognized OCR files
AdditionalLibrary Additional libraries

Location (Location):

Value Usage Description
InstallationFolder First installation / update Website installation folder
SelectedFolder First installation / update Selected folder on disk (requires FolderPath)
DataBaseTable First installation / update Table in the database (requires DatabaseConnection and TableName)
NoChange Update only Keeps current settings (does not change configuration)

4.8 Schemas — Database schemas

{
  "Schemas": {
    "AppCoreSchema": "core",
    "AppAuthSchema": "auth",
    "AppUserSchema": "*"
  }
}
Field Default Description
AppCoreSchema core System tables schema
AppAuthSchema auth Authorization tables schema
AppUserSchema * User tables schema (* = all)

4.9 Restrictions — IP restrictions

Configuration of IP traffic filtering at the IIS application level.

{
  "Restrictions": {
    "ClearRestrictions": false,
    "Applications": [
      {
        "Name": "front",
        "Restrictions": [
          {
            "Ip": "192.168.1.1",
            "Mask": "255.255.255.255",
            "HasMask": false,
            "Traffic": "Allow"
          }
        ]
      },
      {
        "Name": "api",
        "Restrictions": [
          {
            "Ip": "192.168.1.0",
            "Mask": "255.255.255.0",
            "HasMask": true,
            "Traffic": "Deny"
          }
        ]
      }
    ]
  }
}
Field Type Description
ClearRestrictions bool true = clear existing restrictions before adding new ones
Applications\[].
Name
string Application name (lowercase, e.g. front, api)
Restrictions\[].
Ip
string IP address
Restrictions\[].
Mask
string Subnet mask
Restrictions\[].
Has
Mask
bool Whether to apply the subnet mask
Restrictions\[].
Traffic
string Allow or Deny

4.10 MessageBrokerConfiguration — RabbitMQ

{
  "MessageBrokerConfiguration": {
    "HostName": "amqps://rabbitmq.mycompany.com",
    "VirtualHostName": "/",
    "UserName": "naxiom",
    "Password": "secretPassword",
    "StartLocalServices": false,
    "UseSsl": true,
    "RabbitNodePort": 0,
    "RabbitDistPort": 0,
    "RabbitManagementConsolePort": 0,
    "ErlangEpmdPort": 0
  }
}
Field Type Description
HostName string RabbitMQ host address
Virtual
Host
Name
string Virtual host name in RabbitMQ
UserName string RabbitMQ user
Password string RabbitMQ password
Start
Local
Services
bool true = start local RabbitMQ services (local installation)
UseSsl bool ‘true’ = use a secure connection (amqps)
Rabbit
Node
Port
int RabbitMQ node port (default 5672)
Rabbit
Dist
Port
int Erlang distribution port
Rabbit
Management
Console
Port
int RabbitMQ management console port (default 15672)
Erlang
Epmd
Port
int Erlang EPMD port (default 4369)

When StartLocalServices = true, the installer configures the ports and starts local RabbitMQ services. When false, provide the address of the remote RabbitMQ server.

4.11 DiagnosticsConfiguration — Diagnostics and telemetry (optional)

{
  "DiagnosticsConfiguration": {
    "LogLevel": "Info",
    "LogsTarget": "Db3",
    "ElasticEndpoint": "",
    "ElasticUserName": "",
    "ElasticPassword": "",
    "TelemetryEnabled": false,
    "TracesEndpoint": "",
    "TracesProtocol": "",
    "LogsEndpoint": "",
    "LogsProtocol": "",
    "MetricsEndpoint": "",
    "MetricsProtocol": ""
  }
}
Field Type Values Description
LogLevel string Trace, Debug, Info, Warn, Error, Fatal Logging level (NLog)
LogsTarget string Db3, ElasticSearch Log target: SQLite files (Db3) or ElasticSearch
Elastic
Endpoint
string URL ElasticSearch endpoint
Elastic
User
Name
string ElasticSearch user
Elastic
Password
string ElasticSearch password
Telemetry
Enabled
bool Enable OpenTelemetry
Traces
Endpoint
string URL OTLP traces endpoint
Traces
Protocol
string grpc, http/protobuf OTLP traces protocol
Logs
Endpoint
string URL OTLP logs endpoint
Logs
Protocol
string grpc, http/protobuf OTLP logs protocol
Metrics
Endpoint
string URL OTLP metrics endpoint
Metrics
Protocol
string grpc, http/protobuf OTLP metrics protocol

Important

The DiagnosticsConfiguration section is supported only in nogui mode. In noguiupdate mode it is ignored. Additional limitations are described in section 8.

5. Example JSON configuration file

Below is a complete configuration file for installation in nogui mode:

{
  "IISApplication": {
    "MainBinding": {
      "Host": "localhost",
      "Port": 1575,
      "IpAddress": "*",
      "Protocol": "https",
      "CertificateThumbprint": "17653d6ccf0f16b0.....",
      "CertificateStore": "My"
    },
    "OptionalLocalBinding": null,
    "InstallationType": "Local",
    "WebsiteName": "naxiom",
    "WebsitePath": "C:\\inetpub\\naxiom",
    "CompanyName": "nAxiom",
    "PoolIdentityType": "ApplicationPoolIdentity",
    "IdentityUser": "",
    "IdentityPassword": ""
  },
  "Environment": {
    "EnvironmentType": "Development"
  },
   "Packages": [
    { "Name": "Front", "ZipPath": ".\\front.zip" },
    { "Name": "Admin", "ZipPath": ".\\admin.zip" },
    { "Name": "Api", "ZipPath": ".\\api.zip" },
    { "Name": "Auth", "ZipPath": ".\\auth.zip" },
    { "Name": "TenantsApi", "ZipPath": ".\\tenantsApi.zip" },
    { "Name": "TenantsAdmin", "ZipPath": ".\\tenantsAdmin.zip" },
    { "Name": "Workflow", "ZipPath": ".\\workflow.zip" },
    { "Name": "TaskService", "ZipPath": ".\\taskservice.zip" },
    { "Name": "PublicApi", "ZipPath": ".\\publicApi.zip" },
    { "Name": "Syncfusion", "ZipPath": ".\\syncfusion.zip" },
    { "Name": "ReportsApi", "ZipPath": ".\\reportsApi.zip" },
    { "Name": "DocApi", "ZipPath": ".\\docApi.zip" },
    { "Name": "Bpmn", "ZipPath": ".\\bpmn.zip" }
  ],
  "Databases": [
    {
      "Name": "Api",
      "DatabaseConnection": {
        "Server": "localhost",
        "UsePort": false,
        "Port": 1433,
        "Timeout": 30,
        "Instance": "SQLEXPRESS",
        "IntegratedSecurity": false,
        "Username": "naxiom_user",
        "Password": "p@assword",
        "Database": "naxiom"
      }
    },
    {
      "Name": "TenantsApi",
      "DatabaseConnection": {
        "Server": "localhost",
        "UsePort": false,
        "Port": 1433,
        "Timeout": 30,
        "Instance": "SQLEXPRESS",
        "IntegratedSecurity": false,
        "Username": "naxiom_tenantadmin",
        "Password": "p@assword!",
        "Database": "naxiom_tenantsAdmin"
      }
    }
  ],
  "GlobalSettings": {
    "DatabaseConnectionSA": {
      "Server": "localhost",
      "UsePort": false,
      "Port": 1433,
      "Timeout": 30,
      "Instance": "SQLEXPRESS",
      "IntegratedSecurity": false,
      "Username": "sa",
      "Password": "$trongP@ssword",
      "Database": ""
    }
  },
  "ResourceLocations": [
     {
      "ResourceType": "Attachments",
      "Location": "InstallationFolder",
      "DatabaseConnection": null,
      "TableName": "",
      "FolderPath": ""
    },
    {
      "ResourceType": "EmailMessages",
      "Location": "InstallationFolder",
      "DatabaseConnection": null,
      "TableName": "",
      "FolderPath": ""
    },
     {
      "ResourceType": "Ocr",
      "Location": "InstallationFolder",
      "DatabaseConnection": null,
      "TableName": "",
      "FolderPath": ""
    },
    {
      "ResourceType": "AdditionalLibrary",
      "Location": "InstallationFolder",
      "DatabaseConnection": null,
      "TableName": "",
      "FolderPath": ""
    }
  ],
  "Schemas": {
    "AppCoreSchema": "core",
    "AppAuthSchema": "auth",
    "AppUserSchema": "*"
  },
  "Restrictions": {
    "ClearRestrictions": false,
    "Applications": [
      { "Name": "front", "Restrictions": [{ "Ip": "", "Mask": "255.255.255.255", "HasMask": false, "Traffic": "Allow" }] },
      { "Name": "api", "Restrictions": [{ "Ip": "", "Mask": "255.255.255.255", "HasMask": false, "Traffic": "Allow" }] },
      { "Name": "auth", "Restrictions": [{ "Ip": "*", "Mask": "255.255.255.255", "HasMask": false, "Traffic": "Allow" }] },
      { "Name": "workflow", "Restrictions": [{ "Ip": "127.0.0.1", "Mask": "255.255.255.255", "HasMask": false, "Traffic": "Allow" }] }
    ]
  },
  "MessageBrokerConfiguration": {
    "HostName": "amqp://localhost:8762",
    "VirtualHostName": "naxiom",
    "UserName": "naxiomRabbitUser",
    "Password": "!Q2w3e4r",
    "UseSsl": false,
    "StartLocalServices": false,
    "RabbitNodePort": 8762,
    "RabbitDistPort": 28762,
    "RabbitManagementConsolePort": 18762,
    "ErlangEpmdPort": 4369
  },
  "DiagnosticsConfiguration": {
    "LogLevel": "Error",
    "LogsTarget": "Db3",
    "TelemetryEnabled": false
  }
}

6. Exit codes (Exit Codes)

Code Meaning
0 Installation completed successfully
1 An error occurred during installation
10 Installation interrupted before the installation step

In nogui/noguiupdate mode, the exit code is available via:

  • cmd: echo %ERRORLEVEL%
  • PowerShell: $LASTEXITCODE

7. Limitations and known gaps

7.1 nogui mode limitations

Limitation Description
No input data validation The installer does not verify the correctness of values in the JSON file before starting the installation. Incorrect data may cause unpredictable behavior.
Diagnostics — partial support The DiagnosticsConfiguration section in nogui mode is only partially supported — the SetSettings method accepts the model, but does not apply all values to the controls. The main diagnostics configuration is read from existing appsettings.json files, environment variables, and the TenantAdmin database. Default settings may be applied instead of those from the JSON.
No --help parameter The installer does not provide built-in CLI help.

7.2 noguiupdate mode limitations

Limitation Description
One website noguiupdate mode works correctly only when exactly one nAxiom website exists in IIS.
No configuration change Only files are updated — IIS settings, databases, schemas, restrictions, etc. remain unchanged.

7.3 General limitations

Limitation Description
Windows only The installer works only on Windows.
Administrator permissions required IIS operations require running as an administrator.
Passwords in plain text Passwords in the JSON file are stored in plain text. Connection strings are encrypted only after they are written to configuration files.
No JSON validation There is no JSON Schema to validate the configuration file. Errors in the JSON structure cause deserialization exceptions.
No file logging In nogui mode, messages are displayed in the console — there is no dedicated installation log file (only summary.json after completion).
No rollback mechanism In the event of an installation error — changes are not automatically rolled back (configuration is restored from backup, but the IIS website may remain in an inconsistent state).

8. Best practices

  1. Validate JSON — before running, check the correctness of the JSON syntax (for example python -m json.tool install.json or any editor with highlighting).
  2. Do not leave passwords in the file — after installation, delete the configuration file or secure it with appropriate permissions.
  3. JSON file permissions — restrict access to the configuration file (it contains passwords in plain text).
  4. Delete the file after installation — after a successful installation, delete the JSON file containing credentials.
  5. IP restrictions — for backend applications (Api, TaskService, Crystal), consider restricting access to internal traffic.
  6. Application pool account — in a production environment, consider using a dedicated account (SpecificUser) instead of ApplicationPoolIdentity.
  7. Backup before update — the installer creates .backup files, but it is worth having a full copy of the website directory.
  8. Use noguiupdate to update files — (applies to environments with one website) it does not change configuration, minimizing risk.
  9. summary.json file — after installation, check the summary.json file in the installer’s directory — it contains the website URL.
  10. Relative paths — use relative paths in the JSON file (.\front.zip) — this makes moving between environments easier.
  11. Check the exit code — in scripts, always verify $LASTEXITCODE / %ERRORLEVEL%.
  12. Output redirection — in nogui mode, output is directed to the console:

    .\AppInstaller.exe it=:file iv=:".\install.json" nogui 2>&1 | Tee-Object -FilePath "install.log"
    
  13. Separate JSON per environment — prepare separate configuration files for dev/test/prod.
  14. To skip installation of optional modules (e.g. OcrApi, Crystal, PublicApi):
    • Remove the package entry from the Packages section.
    • Remove the entry from the Databases section (if the application requires a database).
    • Make sure no other section refers to the skipped package.

9. FAQ / Troubleshooting

The installer exits immediately with code 1

Cause: Missing correct JSON configuration when using the nogui/noguiupdate flag. Solution: Make sure the it and iv parameters are correctly formatted. The separator is =: (not =).

Error: “No website found for automatic update”

Cause: noguiupdate mode did not find any nAxiom website in IIS. Solution: Make sure there is a website in IIS with an application pool whose name starts with naxiom..

Error: “Automatic update cannot be performed if more than one website exists”

Cause: More than one nAxiom website exists in IIS. Solution: Use nogui mode with full JSON configuration instead of noguiupdate.

The SSL certificate was not found

Cause: The provided CertificateThumbprint does not match any certificate in the store. Solution: Check the certificate thumbprint in MMC (Certificates → Local Computer) and make sure the CertificateStore value is correct (usually My for Personal).

The JSON file cannot be found

Cause: The path in the iv parameter is incorrect. Solution:

  • Use an absolute path: iv=:"C:\config\install.json"
  • The relative path .\ refers to the directory where AppInstaller.exe is located, not to the current working directory.

Copyright © 2025 OPTEAM SA. Theme Copyright © 2017-2020 Patrick Marsceill. Distributed by an MIT license.