# Installing Apidog On-Premises Client


The **Apidog On-Premises** client differs from the **Apidog SaaS** client and is not available for download through the standard Apidog website. After purchasing Apidog On-Premises, the necessary client software will be provided directly by our support team.

The **Apidog On-Premises** client supports the following operating systems:
        - `Windows` 
        - `macOS`
        - `Linux`

## Installing the Client

    - **Download the Client Package:** Obtain the appropriate installation package for your operating system from the support team.

- **Windows Installation:** Silent installation is supported, making it suitable for deployment via tools like System Center Configuration Manager (SCCM). To perform a silent installation on Windows, run the following command:

    ```bash
    Apidog.exe /S /allusers
    ```
    This command will initiate a silent installation of the Apidog client for all users on the system.
    

## Running the Client

Once the Apidog On-Premises client is installed, no license key or activation file is required. The only configuration needed to start is specifying the Server Base URL, which corresponds to the `BASE_URL` environment variable of your backend container.

**Important:** Ensure that the Server Base URL does not include a trailing slash (/). 

<Background>
  ![](https://api.apidog.com/api/v1/projects/384270/resources/345970/image-preview)
</Background>

After entering the Server Base URL and establishing a connection, you can either **register** a new account or **log in** to an existing account.

## Client Updates

### Update Guidelines

Our support team will provide updated Apidog On-Premises client installation packages quarterly. These updates include all changes, improvements, and bug fixes introduced within that quarter. Once the server has been updated, you can manually download and install the latest client version.

* **Best Practice:** It is highly recommended to keep both **client** and **server** versions synchronized to ensure compatibility and optimal functionality.
* **Backward Compatibility:** In most cases, older client versions will continue to work with newer server versions. However, client updates are mandatory for specific features that require a newer version.

:::check[Example]
If your server version is `2.6.44-202501211049`, client versions `2.6.44` or earlier are compatible.
:::
:::danger[Important]
Client versions later than `2.6.44` are **incompatible** with server version `2.6.44-202501211049.`Using an incompatiable client version may result in application crashes due to missing or incompatible server endpoints..
:::

### Check for Updates

The Check for Updates feature allows the client to automatically download and install available updates. To enable this feature, the system administrator must upload `all platform client packages` to a designated storage location. The process will depend on the storage configuration used in the deployment.

#### File Storage Mode

> Prerequisite: 
> - Object Storage Mode must be disabled. 
> - The `STORAGE_DRIVER` must either be not configured or set to the default value `STORAGE_DRIVER='file'`.


1. Mount a directory to the container's `/usr/src/app/app/public/client-packages` directory. For example:

    ```shell
    -v $PWD/client-packages:/usr/src/app/app/public/client-packages
    ```

2. Place all client installation packages (including the YAML configuration file, i.e., the extracted contents of `client-apps.tar.gz`) in this mounted directory (e.g., `$PWD/client-packages`).

#### Object Storage Mode (S3)

    > Prerequisite: 
    > - Object Storage Mode must be enabled.
    > - The `STORAGE_DRIVER` environment variable must be set to `s3`. For further details, refer to the [Environment Variables documentation](https://self-hosting.apidog.com/environment-variables-405300m0.md).

When Object Storage Mode is enabled, the API service will reference files stored in the `{STORAGE_BASE_PATH}/client-packages` directory. All client packages (including the YAML configuration file, extracted from `client-apps.tar.gz`) must be placed within this directory.

For example, with the following environment variables configured:
```shell
export STORAGE_DRIVER='s3'
export STORAGE_BASE_URL='https://api.example.com'
export STORAGE_BASE_PATH='/app'
```
When a **macOS arm64** user triggers the "Check for Updates" feature, the server will check the following URL:

``` shell
https://api.example.com/app/client-packages/arm64-latest-mac.yml
```
This YAML file will contain a pre-signed URL pointing to the update package (e.g., `https://api.example.com/app/client-packages/Apidog-ee-macOS-arm64-2.6.44.dmg`). The client will use this URL to automatically download and install the update.

