# Installation and Licensing

{% hint style="warning" %}
If you use Oz Web SDK via SaaS, please contacts our engineers.
{% endhint %}

## Installation

Our engineers will help you to install Oz Web SDK using the [standalone installer](/oz-knowledge/other/old-docs/oz-modules-installation/standalone.md) (requires your technical personnel to take part) or manually (everything is done by us). Once installed, the adapter part generates the plugin files: file with styles (`ozliveness.css`) and the primary script of the plugin (`plugin_liveness.php`).

## Licensing

{% hint style="info" %}
This part covers the license update process as the license is installed during the SDK installation; but a new license can be installed in the same way.&#x20;
{% endhint %}

To generate the license, we need the domain name of the website where you are going to use Oz Forensics Web SDK, for instance, your-website.com. You can also define subdomains.

{% hint style="info" %}
To find the origin, in the developer mode, run `window.origin` on the page you are going to embed Oz Web SDK in. At localhost / 127.0.0.1, license can work without this information.
{% endhint %}

1. Unzip the file received:

```bash
unzip license.0000aaaa-00aa-00aa-00aa-00000aaaaa.WebSDK_your_website.2022-10-11.json.zip
```

2\. Copy the JSON license file to the host where you’ve deployed the container from the `ozforensics/oz-webliveness-dev:latest` image.

**Example**

```bash
scp -i ~/ozforensics/keys/id_rsa-test-hostname-vm license.0000aaaa-00aa-00aa-00aa-00000aaaaa.WebSDK_your_website.2022-10-11.json user@hostname:/opt/oz/web-sdk
```

* `-i ~/ozforensics/keys/id_rsa-test-hostname-vm` is the path to the public ssh key of your host license.
* `0000aaaa-00aa-00aa-00aa-00000aaaaa.WebSDK_your_website.2022-10-11.json` is the JSON license file.
* `user` is the username on host.
* `hostname` is the host alias.
* `/opt/oz/web-sdk` is the directory where you’ve deployed the Web SDK container.

3\. Replace the license file.

**Example**

```bash
ssh user@hostname -i ~/ozforensics/keys/id_rsa-test-hostname-vm sudo cp -v /opt/oz/web-sdk/license.license.0000aaaa-00aa-00aa-00aa-00000aaaaa.WebSDK_your_website.2022-10-11.json /opt/oz/web-sdk/license.json
```

4\. Restart the Web SDK container for the new license to be applied.

**Example**

```bash
ssh user@hostname -i ~/ozforensics/keys/id_rsa-test-hostname-vm sudo docker restart web-sdk
```

* `web-sdk` is the name of the container you’ve deployed from the `ozforensics/oz-webliveness-dev:latest` image.

Once the license is added, the system will verify its validity on launch. You can also check it manually: `[GET] /check_license.php`.&#x20;

### License Errors

| **Error**                                                                    | **Description**                                                          |
| ---------------------------------------------------------------------------- | ------------------------------------------------------------------------ |
| <p>License error. License at <> not found<br></p>                            | Cannot find the license file                                             |
| <p>License error. Cannot parse license from <>, invalid format<br></p>       | The license containing is somehow invalid: e.g., incorrect JSON          |
| <p>License error. Current date is later than license expiration date<br></p> | Your license has expired and needs renewal                               |
| License error. Origin is not in the list permitted by license                | Your domain or subdomain name can't be found in the list of allowed URLs |


---

# 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://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter/installation-and-licensing.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.
