> For the complete documentation index, see [llms.txt](https://docs.servoy.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.servoy.com/guides/deploy/ngclient-deployment.md).

# NGClient deployment

## Overview

NGClient is one of the ways to deploy Solutions to end users.

NGClient is a browser-based application of which the UI is rendered in the browser using pure HTML, CSS and a bit of JavaScript for event handling and communication with the Servoy Application Server (HTML5, CSS3 and websockets communication is used). The business logic of the Solution that is running in the NGClient is executed on the Application Server for security reasons: the code of the business logic is not exposed in the webpage markup.

## Starting Servoy NG Clients (giving arguments or using a deeplink)

Servoy NGClients run in a browser and can be started by accessing a URL on the Servoy Application Server, which are plain start urls with the solution name in it (with or without arguments for the onsolution open) or direct deeplinks for calling directly a method with arguments.

NG Client Start URL:

### {serverURL}/servoy-ngclient

Opens a page that lists all available ng-client solutions. It is available only if solution browsing is enabled; see [Solution browsing](/guides/deploy/server-configuration/server-settings.md#solution-settings).

### {serverURL}/solution/{mySolutionName}/index.html

Opens the specified solution.

The old NGClient (NG1) does have the url on {serverURL}/solutions/{mySolutionName}/index.html, it will auto redirect to "solution" when NG1 is not deployed (standard from 2024.06 on)

### {serverURL}/solution/{mySolutionName}/index.html?a={value}

Opens the specified solution. The argument value is passed into the Solutions onOpen event handler.

### {serverURL}/solution/{mySolutionName}/index.html?a={value}&{name1}={value1}&{name2}={value2}

The same as the previous scenario, but with additional custom keys for additional arguments.

### {serverURL}/solution/{mySolutionName}/index.html?m={myMethodName}

Opens the specified solution and executed the specified method after the solution is opened.

### {serverURL}/solution/{mySolutionName}/index.html?m={myMethodName}\&a={value}

The same as the previous scenario, but specifying a single value to be passed as an argument into the onOpen event handler and deeplink method.

{% hint style="info" %}
Please note that if the solution is not loaded, the `onSolutionOpen` method is called before the deeplink method and only the deeplink method gets the arguments.
{% endhint %}

### {serverURL}/solution/{mySolutionName}/index.html?m={myMethodName}&{name1}={value1}&{name2}={value2}

The same as the previous scenario, but with custom keys for additional arguments.

{% hint style="warning" %}
**Parameters encoding**\
In order to make sure UTF-8 encoding is used for url parameters, you must look for value of URIEncoding setting from Tomcat connector. Beware that if useBodyEncodingForURI setting is used as well, it will have higher priority for used encoding. See Tomcat documentation for more details.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.servoy.com/guides/deploy/ngclient-deployment.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
