# Self hosting

* **Where can I find the Docker image?**
  * The Docker image is available in our image registry. You can find it at `crncdeployment.azurecr.io/web-app-ng:main`.
    * From version 1.25 and forward version specific will also be available by tag in format of:\
      `crncdeployment.azurecr.io/web-app-ng:1.25`
* **What components does the docker image contain?**
  * The image includes two components:
    * All static files associated with the web client.
    * An NGINX web server, already configured to accurately serve the static files.
* **Hosting options (choose between):**
  * HTTP-based hosting, allowing connections to flow servers via HTTP.
  * HTTPS-based hosting, a secure method requiring the server to employ HTTPS, thus enhancing security (recommended).
* **Suggested Proxy Configuration:**
  * It's recommended to set up an extra proxy layer before the NGINX web server in our image. This step enables customization of the security settings to suit your IT infrastructure requirements.
* **Exposed Port:**
  * The bundled NGINX operates exclusively over HTTP on port 80, which needs to be exposed to any port of your choosing.

{% hint style="info" %}
For a secure connection between the client and server, it is strongly advised to run it over HTTPS. This not only ensures security but also allows you to fully leverage the service-worker, which the new web client utilizes for caching. To explore more about the service-worker, visit: [Mozilla Developer Network - Service Worker API](https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API).
{% endhint %}

{% hint style="info" %}
You can pre-define a server by configuring the environment variable ´SERVER\_ADDRESS\` of the container. This will pre-fill the desired flow server for the end user to connect to (Supported from version v1.23 and above)
{% endhint %}

{% hint style="danger" %}
The content served by our image should always be delivered as is, without any automatic compression. If the content is not served correctly, the client will fail to start due to security integrity checks.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.novacuraflow.com/clients/web-client/self-hosting.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
