# Automated installation on Linux

This step-by-step guide is intended to outline the main steps for the automated WebSpellChecker application installation on Linux utilizing Apache HTTP Server or NGINX. In this guide we will run you through the whole installation process from creating configuration file to embedding spell/grammar checking functionality to your web-based system.

Before you begin:

1. Check if your environment configuration meets [Installation requirements](/v6.12.0/deployment/installation-requirements/installation-requirements.md).
2. Acknowledge with [Architecture diagram](/v6.12.0/deployment/installation-requirements/architecture-diagram.md).
3. Make sure that you have a valid license:

   First of all you need to get a valid License Ticket ID to proceed with the license activation. Depending on the server license type, it may be a commercial (e.g. 1 year) or a 30-day trial license. Except the validity period, there is no difference between ticket types from the technical perspective.

   **Good to know:**

   * If you do not have a license yet, you can obtain it using one of the following ways:
     * request [a 30-day trial license](https://webspellchecker.com/free-trial/) for evaluation and testing purposes;
     * acquire a commercial license by contacting our [sales department](https://webspellchecker.com/contact-us/).
   * Starting from v5.8.1 released on December 30, 2020, the license is no longer validated by or tied to the hardware characteristics of a machine or server. License for older versions of the packages is hardware-dependent.
   * If you are migrating WebSpellChecker from one server to another, you will need to deactivate (detach) a license on the current server and then reactivate it on a new one. Check carefully the **Migrating License to New Server** guide under the Licensing section.
   * If you have problems with your license, [contact us](https://webspellchecker.com/contact-us/).

{% hint style="info" %}
Automated installation process is also covered in silent\_install\_manual.txt file which is included with the package
{% endhint %}

### 1. Create configuration file

Before you run the [**automated\_install.pl**](http://automated_install.pl) script, you need to prepare a special configuration file and specify proper values for all the required installation parameters. This information will be used by the script for the automated installation of the WebSpellChecker application on your server.

**1.1. Configuration file syntax**

* Configuration file has a simple structure resembling **\*.ini** files.
* Each row of the file should contain one parameter with an assigned corresponding value.
* You are allowed to use indentation, spaces, and tabs and add blank lines.
* You can comment some of the parameters using a hash sign “**#**” at the very beginning of the row with a parameter name (e.g. #activate\_license = 1).

Below is an example of a simple configuration file that can be used for the automated installation of the application on a Linux-based server using NGINX assuming that you will be using the WProofreader add-on for RTEs product or WebSpellChecker API over HTTPS.

\
**install\_config.ini**

```ini
install_path = /opt/WebSpellChecker/
languages = en_US,en_GB,en_CA,en_AU
ai_models = 1,2
products = 1
file_owner = 33:33
protocol = 1
service_port = 2880
web_port = 443
virtual_dir = wscservice
web_server_type = 2
restart_web_server = 1
activate_license = 1
license_ticket_id = ***************
```

**1.2. Configuration file parameters**

Table below lists all available parameters and their possible values that you can use in the configuration file. Some of the parameters are mandatory and must be defined. The rest of the parameters are optional. If you do not define values for the optional parameters, they will be either auto-defined by the script, or the default values will be used accordingly.

| Parameter                     | Parameter Type | Default Value                                            | Possible Values                                                                                                                                                                                                  | Description                                                                                                                                                                                                                                                                                                  |
| ----------------------------- | -------------- | -------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| install\_path                 | Optional       | /opt/WebSpellChecker                                     | <ul><li>/opt/WebSpellChecker/</li><li>Any other appropriate location on the server</li></ul>                                                                                                                     | The parameter defines the installation path for the application.                                                                                                                                                                                                                                             |
| rewrite\_old\_installation    | Optional       | 1                                                        | <ul><li>0 – Do not create a backup file</li><li>1 – Create a backup directory (.Backup)</li></ul>                                                                                                                | The parameter is responsible for a backup file creation. If you have an existing copy of the application in the specified install\_path, the script will reserve the whole folder in a **.Backup** directory.                                                                                                |
| file\_owner                   | Mandatory      | None                                                     | <ul><li>user:group (e.g. 33:33)</li></ul>                                                                                                                                                                        | The parameter sets the application's files ownership for selected user and group.                                                                                                                                                                                                                            |
| products                      | Mandatory      | 1                                                        | <ol><li>WProofreader add-on for RTEs and HTML controls (CKEditor 4/5, Froala Editor, TinyMCE, Quill, etc.)</li><li>WebSpellChecker API</li><li>SCAYT plugin for CKEditor 4</li><li>Select all products</li></ol> | <p>The parameter defines which product and components to install. It is not recommended to install all products but make your choice carefully.</p><p>Use coma as a separator for multiple options.</p>                                                                                                      |
| ai\_models                    | Optional       | 1,2                                                      | <ul><li>0 - None</li><li>1. English language model</li><li>2. English autocomplete model</li><li>3. German language model</li><li>4. Spanish language model</li></ul>                                            | Specifies what languages to install. Use coma as a separator for multiple options.                                                                                                                                                                                                                           |
| languages                     | Optional       | en\_US                                                   | Comma-separated list of languages codes to install. Available languages can be found in [list of supported languages with their shortcodes](/v6.12.0/features/supported-languages.md)                            | Specifies what languages to install. Use coma as a separator for multiple options.                                                                                                                                                                                                                           |
| install\_samples              | Optional       | 1                                                        | <ul><li>0 – Do not install Demo Samples and Documentation.</li><li>1 – Install Demo Samples and Documentation.</li></ul>                                                                                         | The parameter defines whether the demo samples and documentation should be installed.                                                                                                                                                                                                                        |
| protocol                      | Optional       | 1                                                        | <ul><li>1 – HTTPS</li><li>2 – HTTP</li></ul>                                                                                                                                                                     | <p><br></p>                                                                                                                                                                                                                                                                                                  |
| service\_port                 | Optional       | 2880                                                     | <ul><li>Any available port number in a range \[1-65535]</li></ul>                                                                                                                                                | The parameter defines the WebSpellChecker service port number. This is the internal port of AppServer.                                                                                                                                                                                                       |
| web\_port                     | Optional       | <ul><li>443 for HTTPS</li><li>80 for HTTP</li></ul>      | <ul><li><p>Any available port number in a range \[1-65535] of your web server or Java application server. Here are some common ports:</p><ul><li>443</li><li>80</li><li>8443</li><li>8080</li></ul></li></ul>    | The parameter specifies the port number of web server.                                                                                                                                                                                                                                                       |
| virtual\_dir                  | Optional       | wscservice                                               | <ul><li>Any string</li></ul>                                                                                                                                                                                     | <p><br></p>                                                                                                                                                                                                                                                                                                  |
| web\_server\_type             | Mandatory      | None                                                     | <ol><li>Apache HTTP Server</li><li>NGINX</li><li>Other (Skips web-server configuration)</li></ol>                                                                                                                | The parameter specifies a type of web or application server which will be used for the application server running.                                                                                                                                                                                           |
| path\_to\_jvm                 | Optional       | <p><br></p>                                              | <ul><li>Path to Java Virtual Machine (JVM)</li></ul>                                                                                                                                                             | The parameter defines the pass to Java Virtual Machine (JVM) that is mandatory for the grammar engine. During the final steps of setup, the AppServer will try to autodetect the path to JVM and add it to the settings. However, using the parameter you can predefine which version of JVM should be used. |
| activate\_license             | Optional       | 0                                                        | <ul><li>0 – Skip the license activation step.</li><li>1 – Run the license activation step.</li></ul>                                                                                                             | The parameter defines whether to run the license activation process. You can skip the license activation step if you have already activated a license or you prefer to proceed with the [license activation](https://docs.webspellchecker.net/display/WSDK/License+activation+on+Linux) step later.          |
| license\_ticket\_id           | Optional       | <p><br></p>                                              | <ul><li>Your valid license ticket ID. It can be a trial (30 day) or a commercial license (1 year).</li></ul>                                                                                                     | The parameter specified a License Ticket ID that will be used during the license activation procedure.                                                                                                                                                                                                       |
| apache\_version               | Optional       | Current Apache HTTP Server version installed             | <ul><li>2.2.x</li><li>2.4.x</li></ul>                                                                                                                                                                            | <p>The parameter defines the current version of Apache HTTP Server.<br>Applies only if Apache HTTP Server is chosen as a web-server.</p>                                                                                                                                                                     |
| apache\_auto\_enable\_modules | Optional       | 1                                                        | <ul><li>0 – Do not enable extra modules.</li><li>1 – Enable all required extra modules.</li></ul>                                                                                                                | The parameter enables additional Apache HTTP Server [mod\_mime](https://httpd.apache.org/docs/current/mod/mod_mime.html) and [mod\_headers](https://httpd.apache.org/docs/current/mod/mod_headers.html) modules. They are required for a proper work of the application.                                     |
| web\_server\_config\_dir      | Optional       | Current Apache HTTP Server/NGINX configuration directory | <ul><li>/etc/apache2</li><li>/etc/apache2/conf.d</li><li>/etc/nginx/conf.d</li></ul>                                                                                                                             | The parameter defines location of the chosen web-server configuration directory.                                                                                                                                                                                                                             |
| restart\_web\_server          | Optional       | 0                                                        | <ul><li>0 – Do not restart web-server.</li><li>1 – Restart web-server.</li></ul>                                                                                                                                 | The parameter is responsible for restart of web-server. It is required for changes to take effect.                                                                                                                                                                                                           |
| enable\_proxy                 | Optional       | 0                                                        | <ul><li>0 - Do not enable proxy server.</li><li>1 - Enable proxy server.</li></ul>                                                                                                                               | Enable proxy server connection.                                                                                                                                                                                                                                                                              |
| proxy\_host                   | Optional       | <p><br></p>                                              | <p><br></p>                                                                                                                                                                                                      | Proxy server host name or IP address.                                                                                                                                                                                                                                                                        |
| proxy\_port                   | Optional       | <p><br></p>                                              | <p><br></p>                                                                                                                                                                                                      | TCP port number for proxy server.                                                                                                                                                                                                                                                                            |
| proxy\_user\_name             | Optional       | <p><br></p>                                              | <p><br></p>                                                                                                                                                                                                      | User name to access proxy server.                                                                                                                                                                                                                                                                            |
| proxy\_password               | Optional       | <p><br></p>                                              | <ul><li>password if any</li></ul>                                                                                                                                                                                | User password to establish connection with proxy server.                                                                                                                                                                                                                                                     |
| service\_files\_dir           | Optional       | /var/lib                                                 | Any available path on the system.                                                                                                                                                                                | <p>Defines the path where license file and additional resources are stored.<br>Always creates WebSpellChecker directory, so by default path will be: <code>/var/lib/WebSpellChecker</code></p>                                                                                                               |
| create\_systemd\_service      | Optional       | 0                                                        | <ul><li>0 - Do not create systemd service.</li><li>1 - Create systemd service.</li></ul>                                                                                                                         | Creates systemd service to control the application. For more information see [Systemd service on Linux](/v6.12.0/deployment/installation/linux/systemd-service-on-linux.md)                                                                                                                                  |

### 2. Run automated install script <a href="#automatedinstallonlinux-2.runautomatedinstallscript" id="automatedinstallonlinux-2.runautomatedinstallscript"></a>

As soon as a configuration file with all the required parameters is defined, you need to run the **automated\_install.pl** script with the **install\_config.ini** configuration file as a first parameter as follows:

```javascript
sudo ./automated_install.pl install_config.ini
```

OR

```javascript
sudo perl automated_install.pl install_config.ini
```

Troubleshooting

If you specified a non-existing parameter in the configuration file, the automated installation will instantly fail, and throw an error message indicating an incorrect parameter. Moreover, with an incorrect parameter, the script may suggest possible valid parameters and their default values. However, if there is an error in a specified value, the installation will fail only on the specific step and might not give you a clear message for error handling.

### 3. Activate license <a href="#automatedinstallonlinux-3.activatelicense" id="automatedinstallonlinux-3.activatelicense"></a>

If you assigned “**1**” as a value for the **activate\_license** parameter, the installer will attempt to activate a license automatically using a license ticket ID.

The automatic license activation mode requires the Internet connection available on the machine where you are trying to install WebSpellChecker.

Otherwise, you need to proceed with the license activation procedure according to the [License activation on Linux](/v6.12.0/deployment/licensing/license-activation-on-linux.md) manually.

### 4. Verify operability <a href="#automatedinstallonlinux-4.verifyoperability" id="automatedinstallonlinux-4.verifyoperability"></a>

Now you are ready to check if the installation process of the application went well, and all the components are functioning properly. Check the application version, status, and access to the demo samples to verify if the application works properly after the installation.

* Check version: [https://localhost:443](https://localhost:2880/?cmd=ver)[/wscservice/api](https://localhost:2880/?cmd=status)[/?cmd=ver](https://localhost:2880/?cmd=ver)
* Check status: [https://localhost:443/wscservice/api/?cmd=status](https://localhost:2880/?cmd=status)
* Access default demo samples: [https://localhost:443/wscservice/samples/](https://localhost/wscservice/samples/)

Here is a correct status response for Spell Check, Grammar and all installed AI-based engines of WebSpellChecker Server:

```json
{
    "SpellCheckEngine": {
        "active": true
    },
    "GrammarCheckEngine": {
        "active": true
    },
    "EnglishAIModel": {
        "active": true
    },
    "GermanAIModel": {
        "active": true
    },
    "SpanishAIModel": {
        "active": true
    },
    "EnglishAutocomplete": {
        "active": true,
    }
}
```

Here is a correct version response for WebSpellChecker Server 6.x.x.x:

```javascript
{
    "Copyright": "(c) 2000-2026 WebSpellChecker LLC",
    "ProductWebsite": "webspellchecker.com",
    "ProgramVersion": "6.x.x.x x64 master:xxxxxxxx (xxxx) #xx",
    "PackageVersion": "6.x.x.x master:xxxxxxx (xxx) #xx"
}
```

### 5. Integrate WebSpellChecker <a href="#automatedinstallonlinux-5.integratewebspellchecker" id="automatedinstallonlinux-5.integratewebspellchecker"></a>

As soon as backend components are up-and-running, you need to integrate WebSpellChecker frontend components (plugins, JavaScript libraries) into your web application.

**Option A. Integration guides**

Visit [Integrations](/v6.12.0/integrations/supported-browsers.md) to learn more about how to get started with WebSpellChecker products, one of them being [WProofreader](https://webspellchecker.com/wsc-proofreader/).

**Option B. Demo samples**

Depending on the type of elements, namely HTML native elements or rich text editors where the spelling and grammar check is needed, you may choose and use the demo samples that are shipped with the package.

To access the default samples, go to http(s)://your\_host\_name/wscservice/samples/ where port is the **port** of your web server or Java application server. The default samples contain all the necessary samples and instructions that will help with the integration of the WebSpellChecker products. Moreover, each sample contains detailed development documentation with a list of methods and parameters available.


---

# 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://docs.wproofreader.com/v6.12.0/deployment/installation/linux/automated-installation-on-linux.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.
