# User dictionary: self-hosted management

This guide covers how to manage user dictionaries on self-hosted deployments, including Docker. It focuses on where dictionary files are stored, how they persist, and what admins can manage directly on the server.

For an overview of how user dictionaries work in the product, how users create and use them, and API access, refer to the [User dictionary overview →](/features/custom-dictionary/user-dictionary.md).

### Storage location

User dictionaries are stored as plain text files in UTF-8 encoding.

{% tabs %}
{% tab title="Windows/Linux installation" %}

```
<WebSpellChecker_Installation_Path>/AppServer/UserDictionaries/
```

{% endtab %}

{% tab title="Docker" %}

```
/dictionaries/UserDictionaries/
```

{% endtab %}
{% endtabs %}

In Docker, mount a persistent host directory to `/dictionaries` so dictionary files survive container replacement and restarts.

```bash
docker run -v <host_directory_path>:/dictionaries <image_name>
```

### How dictionaries are stored

Each named user dictionary is stored as a separate file.

* The file name is the dictionary name.
* Files use UTF-8 encoding.
* Dictionary files do not use an extension.
* Each word is stored on a separate line.

User dictionaries are language-agnostic. One dictionary can contain words from different languages.

### Admin-managed access

Admins can inspect and manage dictionary files directly on the server when needed.

Typical use cases:

* verify that a predefined dictionary is being created on disk
* back up dictionary files
* move dictionary files to shared or persistent storage

If you edit files directly, keep the original file name and UTF-8 encoding.

### Predefined dictionaries

If your integration sets `userDictionaryName`, the dictionary is stored server-side from the start.

This applies to both standard self-hosted deployments and Docker. In Docker, the file is created under `/dictionaries/UserDictionaries/`.

If several users share the same `userDictionaryName`, they share the same dictionary file.

### Persistence across servers and containers

If you run multiple application instances, store the `UserDictionaries` directory on shared persistent storage.

This helps all instances use the same dictionary files.

Examples:

* Linux servers: NFS or similar shared storage
* Windows servers: SMB or CIFS shared folder
* Docker: mounted persistent volume such as Amazon EFS

### FAQ

#### Do user dictionaries require XML configuration?

No. User dictionaries are discovered by file name. No XML registration is required.

#### Do I need to restart AppServer after user dictionary changes?

No restart is typically needed for normal dictionary usage through the product UI or API.

If you are troubleshooting direct file changes, verify the result in the application after saving the file.

#### Where should I store user dictionaries in Docker?

Store them under `/dictionaries/UserDictionaries/` and mount `/dictionaries` to persistent storage.

#### Can admins edit user dictionary files directly?

Yes. Admins can access the files directly on self-hosted deployments. Keep the file name, one-word-per-line format, and UTF-8 encoding intact.


---

# 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/features/custom-dictionary/user-dictionary-self-hosted-management.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.
