> For the complete documentation index, see [llms.txt](https://docs.wproofreader.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.wproofreader.com/v6.18.1/deployment/installation/choose-a-self-hosted-setup.md).

# Choose a self-hosted setup

Compare the two self-hosted setups: WProofreader Server only, or WProofreader Server with admin-panel. Choose a setup before you install.

You can run self-hosted WProofreader in two setups:

* **WProofreader Server only.** You manage WProofreader with configuration files and APIs. This is the standard setup.
* **WProofreader Server with admin-panel.** You manage WProofreader in a web interface. This setup adds admin-panel and a MySQL database.

Admin-panel is optional. Both setups use the same WProofreader Server, the same license ticket and the same WProofreader frontend (`wscbundle.js`). WebSpellChecker continues to support the WProofreader Server only setup.

This page helps you choose a setup before you install. It doesn't cover server layouts, such as load balancing or separate production and test servers. For these layouts, see [Deployment options](/v6.18.1/deployment/installation/deployment-options.md). The layouts apply to both setups.

### Components of each setup

#### WProofreader Server only

| Component           | Function                                                                                                                                                   |
| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| WProofreader Server | Checks spelling, grammar and style. A web server sends the static files, such as `wscbundle.js`, to the browser. The Docker image includes the web server. |

#### WProofreader Server with admin-panel

| Component           | Function                                                                                                                                                     |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| WProofreader Server | Checks spelling, grammar and style. Keeps the service data and request statistics in MySQL. Keeps dictionaries and style guides as files in `/dictionaries`. |
| Admin-panel         | Web application for administrators. It runs as three containers from one image: the web application, the queue worker and the scheduler.                     |
| MySQL 8.4           | Keeps two databases: `admin_panel_db` for admin-panel and `cloud_service` for WProofreader Server.                                                           |
| db-manager          | Runs one time during each installation and upgrade. It creates or updates the `cloud_service` database, and then stops.                                      |

### Compare the setups

|                                  | WProofreader Server only                                                                                                                                                       | WProofreader Server with admin-panel                                                                                                  |
| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- |
| **Platforms**                    | Windows, Linux, Docker, Kubernetes                                                                                                                                             | Docker (Docker Compose) and Kubernetes (Helm) only                                                                                    |
| **Components to run and update** | WProofreader Server                                                                                                                                                            | WProofreader Server, admin-panel, MySQL                                                                                               |
| **Frontend connection**          | `serviceProtocol`, `serviceHost`, `servicePort` and `servicePath`. See [Service connection](/v6.18.1/integrations/initialization/configuration-options/service-connection.md). | The same options and the `serviceId` from the **Credentials** page                                                                    |
| **License**                      | You activate the license ticket on WProofreader Server. See [Licensing](/v6.18.1/deployment/licensing.md).                                                                     | You activate the license ticket on WProofreader Server. Then the owner activates the products in admin-panel.                         |
| **Languages**                    | You install languages and turn them on in the server configuration. See [Languages setup](/v6.18.1/deployment/configuration/languages-setup.md).                               | You install languages on WProofreader Server. Administrators select the languages to use from the installed languages in admin-panel. |
| **Organization dictionaries**    | Files on the server or the [Custom dictionary API](/v6.18.1/api-reference/custom-dictionary-api.md)                                                                            | **Custom dictionary** page. WProofreader Server keeps the dictionaries as files.                                                      |
| **Style guide rules**            | CSV files on the server or the [Style guide API](/v6.18.1/api-reference/style-guide-api.md)                                                                                    | **Style guide** page. WProofreader Server keeps the rules as files.                                                                   |
| **Allowed domains**              | No built-in list. Limit access with your web server or network settings.                                                                                                       | **Domains permissions** on the **Settings** page                                                                                      |
| **Access key**                   | You set it in `AppServerX.xml` or in a Docker environment variable. See [Access key](/v6.18.1/deployment/configuration/application-server/access-key.md).                      | **Credentials** page. You can regenerate it there.                                                                                    |
| **Team and roles**               | Not available                                                                                                                                                                  | Owner, administrator, developer and user roles, invitations and two-factor authentication                                             |
| **Usage analytics**              | Not available                                                                                                                                                                  | **Analytics** page                                                                                                                    |
| **Backups**                      | Dictionaries, style guides and configuration files                                                                                                                             | The MySQL databases, dictionaries and style guides                                                                                    |

### Which setup to choose

{% columns %}
{% column %}

#### WProofreader Server only

Choose this setup when:

* You install on Windows or Linux without containers.
* Developers or DevOps engineers manage WProofreader. Configuration files and APIs are sufficient for them.
* You want the smallest number of components to run, update and back up.
* You already use WProofreader and don't need the admin-panel features.

Limitations:

* All changes need a file edit or an API request.
* No usage analytics.
* No built-in list of allowed domains.
  {% endcolumn %}

{% column %}

#### WProofreader Server with admin-panel

Choose this setup when:

* Persons without access to the server manage dictionaries, style guides and languages.
* You want usage analytics.
* You want to limit the domains that can use WProofreader.
* You already run Docker or Kubernetes.

Limitations:

* Runs only in Docker or Kubernetes.
* You operate a MySQL database: backups, upgrades and passwords.
* Admin-panel and MySQL need additional CPU and RAM.
  {% endcolumn %}
  {% endcolumns %}

### Dictionaries and style guides

In both setups, WProofreader Server keeps organization dictionaries and style guide rules as files. When you use admin-panel, you edit them on the admin-panel pages. Admin-panel sends the changes to WProofreader Server, and WProofreader Server writes them to the files.

{% hint style="warning" %}
In Docker and Kubernetes, attach a persistent volume to `/dictionaries` in the WProofreader Server container. If you don't, you lose all dictionaries and style guides when the container is replaced.
{% endhint %}

### Install a setup

#### WProofreader Server only

* [Linux](/v6.18.1/deployment/installation/linux.md)
* [Windows](/v6.18.1/deployment/installation/windows.md)
* [Docker](/v6.18.1/deployment/installation/docker.md)
* Kubernetes: [wproofreader-helm](https://github.com/WebSpellChecker/wproofreader-helm) chart

#### WProofreader Server with admin-panel

| Option                     | Use it for                                          | Guide                                                                                                             |
| -------------------------- | --------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| Docker Compose on one host | Evaluation, demonstrations and small installations  | [Docker Compose example](https://github.com/WebSpellChecker/wproofreader-docker/tree/master/examples/admin-panel) |
| Kubernetes with Helm       | Production installations                            | [Kubernetes](/v6.18.1/deployment/installation/kubernetes.md)                                                      |
| Kubernetes with GitOps     | Repeatable deployments for one or more environments | [GitOps examples](https://github.com/WebSpellChecker/wproofreader-gitops)                                         |

After the installation, create the owner account. See [Admin panel: self-hosted](/v6.18.1/admin-panel/self-hosted.md).

### Requirements for the admin-panel setup

The admin-panel setup needs more software and resources than WProofreader Server only. See:

* [Software requirements](/v6.18.1/deployment/installation-requirements/software-requirements.md#admin-panel-setup)
* [Hardware requirements](/v6.18.1/deployment/installation-requirements/hardware-requirements.md#admin-panel-setup)
