# Manually downloading resources (offline installation)

WebSpellChecker Server downloads several language resources during installation. This requires outbound access to WebSpellChecker file storage.

### Related topics

Use these when you’re planning an install in a restricted network.

* [Installation](/deployment/installation.md)
* [Installation requirements](/deployment/installation-requirements.md)
* [Internet connectivity requirements](/deployment/installation-requirements/internet-connectivity-requirements.md)
* [Build without internet connection](/deployment/installation/docker/build-without-internet-connection.md) (Docker workflow)
* [Manage AI language models](/deployment/configuration/ai-engine-setup/manage-ai-language-models.md)
* [Configure NER models](/deployment/configuration/spell-check-engine/configure-ner-models.md)
* [License activation through proxy server](/deployment/licensing/license-activation-through-proxy-server.md)
* [How do I contact support?](/faq/general/support/how-do-i-contact-support.md)

### What gets downloaded during installation

Depending on your selected languages and components, the installer may download:

* Hunspell dictionaries
* Additional dictionaries
* NER models
* n-gram models
* AI models
  * GEC models (English, German, Spanish)
  * Autocomplete model (English)

### Recommended approach: allow downloads during installation

If possible, allow outbound access to `https://files.webspellchecker.com/` during the installation.

This is the most reliable option. It ensures all dependencies are pulled automatically.

For general guidance, see [Internet connectivity requirements](/deployment/installation-requirements/internet-connectivity-requirements.md).

### Fully offline installation (no outbound Internet)

If outbound access is impossible, install with an offline resource package. Support prepares this package for your exact configuration.

{% stepper %}
{% step %}

#### Request an offline resource package from support

Contact support and provide:

* your **license ticket ID**
* your **application version**
* a list of **languages** you want to install
* a list of **AI models** you want to install
  * GEC: English / German / Spanish
  * Autocomplete: English

Support will provide an archive containing these directories:

* `Resources/`
* `Hunspell/`
* `grammar/`
* `autocomplete/`
  {% endstep %}

{% step %}

#### Run the installer as usual

Run the installer for your OS as you normally would. Select the same languages and AI models you requested from support.

The application will install successfully. Some language and AI files will be missing until you copy them manually.
{% endstep %}

{% step %}

#### Copy resources from the offline package to the server

Unpack the archive on a machine that can access your server. Copy the files to the target host by your standard offline process.

In `Resources/` and `Hunspell/`, you will see language group directories. Examples: `en/`, `de/`, `es/`. Keep these directories intact when copying.

{% hint style="warning" %}
Do not rename language group folders. Do not flatten the directory structure.
{% endhint %}

**Copy locations**

`<WebSpellChecker_Installation_Path>` is the installation directory you selected in the installer. Defaults are listed below.

Hunspell dictionaries are stored under the service files directory. This directory is controlled by `PathToServiceFilesDirectory`. See [AppServer parameters](/deployment/configuration/application-server/appserver-parameters.md#pathtoservicefilesdirectory).

{% tabs %}
{% tab title="Windows" %}
`<WebSpellChecker_Installation_Path>` default: `C:\Program Files\WebSpellChecker\` `<PathToServiceFilesDirectory>` default: `C:\ProgramData\`

* Copy **all files and folders** from `Resources/` to:\
  `<WebSpellChecker_Installation_Path>\AppServer\Resources\`
* Copy **all files and folders** from `Hunspell/` to:\
  `<PathToServiceFilesDirectory>\WebSpellChecker\Resources\Hunspell\`
* Copy `grammar\neural\` to:\
  `<WebSpellChecker_Installation_Path>\AppServer\grammar\neural\`
* Copy `autocomplete\neural\` to:\
  `<WebSpellChecker_Installation_Path>\AppServer\autocomplete\neural\`
  {% endtab %}

{% tab title="Linux" %}
`<WebSpellChecker_Installation_Path>` default: `/opt/WebSpellChecker/` `<PathToServiceFilesDirectory>` default: `/var/lib/`

* Copy **all files and folders** from `Resources/` to:\
  `<WebSpellChecker_Installation_Path>/AppServer/Resources/`
* Copy **all files and folders** from `Hunspell/` to:\
  `<PathToServiceFilesDirectory>/WebSpellChecker/Resources/Hunspell/`
* Copy `grammar/neural/` to:\
  `<WebSpellChecker_Installation_Path>/AppServer/grammar/neural/`
* Copy `autocomplete/neural/` to:\
  `<WebSpellChecker_Installation_Path>/AppServer/autocomplete/neural/`

{% hint style="info" %}
If you copy files as `root`, keep ownership and permissions consistent. Make sure the AppServer process can read the new files.
{% endhint %}
{% endtab %}
{% endtabs %}

{% hint style="info" %}
If the destination already contains some resources, merge directories. Overwrite only when you intentionally update the same model/dictionary version.
{% endhint %}
{% endstep %}

{% step %}

#### Restart the service (recommended)

Restart the WebSpellChecker AppServer after copying resources. This ensures newly copied models are picked up.
{% endstep %}

{% step %}

#### Activate the license (manual mode)

Offline environments must use manual license activation. Follow the guide for your OS:

* [License activation on Windows](/deployment/licensing/license-activation-on-windows.md)
* [License activation on Linux](/deployment/licensing/license-activation-on-linux.md)
  {% endstep %}
  {% endstepper %}


---

# 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/deployment/installation/manually-downloading-resources-offline-installation.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.
