---
title: "Containerized service deployments"
description: "Server-side components for premium plugins using Dockerfiles"
canonical_url: "https://www.tiny.cloud/docs/tinymce/latest/bundle-intro-setup/"
md_url: "https://www.tiny.cloud/docs/tinymce/5/bundle-intro-setup/index.md"
version: "5"
last_updated: "2024-04-09T10:06:54Z"
tokens: 6887
---
Important This page documents TinyMCE 5. For new projects, Tiny recommends using the latest, most up-to-date version. [See TinyMCE 8 documentation](../../latest/bundle-intro-setup/).
# Containerized service deployments

The TinyMCE Enterprise server-side components can be deployed on Docker orchestration applications such as [Kubernetes](https://kubernetes.io/), [Docker Swarm](https://docs.docker.com/engine/swarm/), or [OpenShift](https://www.openshift.com/). Tiny provides packages containing pre-configured [`Dockerfiles`](https://docs.docker.com/engine/reference/builder/) for building and deploying the TinyMCE Enterprise server-side components using Docker.

**Outline**

- [Containerized services for Self-hosted Enterprise deployments](#containerizedservicesforself-hostedenterprisedeployments)
- [Containerized services for individually licensed premium plugins](#containerizedservicesforindividuallylicensedpremiumplugins)

## Containerized services for Self-hosted Enterprise deployments

The following sections assist with containerizing the TinyMCE services for users with licenses to the Self-hosted TinyMCE Enterprise bundles:

- The **Self-hosted Essential** bundle.
- The **Self-hosted Professional** bundle.
- The **Self-hosted Premium** bundle.

### Prerequisites

- The [Docker Engine](https://docs.docker.com/engine/docker-overview/) is installed and running.
- The user has Administrative or Root user access.
- The user is either:

  - Using a Linux, Unix or macOS operating system.
  - Using Windows and has access to unix command line tools using [Git for Windows](https://gitforwindows.org/), [Cygwin](https://www.cygwin.com/), or the [Windows Subsystem for Linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10).

### Download and extract the TinyMCE Self-hosted Bundle

1. Go to **[Tiny Account Downloads](/my-account/downloads/)** and download the TinyMCE self-hosted bundle `.zip` file.
2. Open a command line and navigate to the directory containing the downloaded `.zip` file:

  - `TinyMCE-Essential_latest.zip` for **Self-hosted Essential** users.
  - `TinyMCE-Professional_latest.zip` for **Self-hosted Professional** users.
  - `TinyMCE-Premium_latest.zip` for **Self-hosted Premium** users.

Windows Users should open a Bash command line as the Administrator User.
3. Extract the contents of the `.zip` file, such as:

```sh
unzip TinyMCE-Premium_latest.zip -d tinymce-selfhosted
```
The structure of the extracted files will be:

```sh
tinymce-selfhosted/
 ├── tinymce/
 └── tinymce-services/
     ├── ephox-hyperlinking-docker-starter-kit.zip
     ├── ephox-hyperlinking.war
     ├── ephox-image-proxy-docker-starter-kit.zip
     ├── ephox-image-proxy.war
     ├── ephox-spelling-docker-starter-kit.zip
     ├── ephox-spelling.war
     └── version.txt
```
4. Navigate into the `tinymce-services` folder.

```sh
cd tinymce-selfhosted/tinymce-services/
```
Proceed to setting up and deploying the containerized services:

- For the Enhanced Media Embed and Link Checker service, see: [Deploy the TinyMCE hyperlinking server-side component using Docker (self-hosted enterprise bundles)](#deploythetinymcehyperlinkingserver-sidecomponentusingdockerself-hostedenterprisebundles).
- For the Image Tools plugin service, see: [Deploy the TinyMCE image proxy server-side component using Docker (self-hosted enterprise bundles)](#deploythetinymceimageproxyserver-sidecomponentusingdockerself-hostedenterprisebundles).
- For the Spell Checker Pro service, see: [Deploy the TinyMCE spelling service server-side component using Docker (self-hosted enterprise bundles)](#deploythetinymcespellingserviceserver-sidecomponentusingdockerself-hostedenterprisebundles).

### Deploy the TinyMCE hyperlinking server-side component using Docker (self-hosted enterprise bundles)

The TinyMCE hyperlinking server-side component can be deployed using Docker or a container orchestration application such as Kubernetes. Tiny provides a pre-configured package for creating a Hyperlinking Docker image.

> **Warning:** Do not push this docker image to a publicly accessible container registry. Doing so will constitute a breach of the Tiny Self-Hosted Software License Agreement, *including*:
> 
> - [The Tiny Self-Hosted Software License Agreement - (Enterprise Users)](/legal/tiny-self-hosted-enterprise-agreement/).
> - [The Tiny Self-Hosted Software License Agreement - (OEM & SaaS Users)](/legal/tiny-self-hosted-oem-saas-agreement/).

#### Procedure

The following procedure covers downloading, configuring, building and testing the TinyMCE Hyperlinking Docker image.

> **Note:** This procedure assumes that a TinyMCE self-hosted enterprise bundle has been extracted as described in [Download and extract the TinyMCE Self-hosted Bundle](#downloadandextractthetinymceself-hostedbundle).

1. Navigate into the `tinymce-services` folder.

```sh
cd tinymce-selfhosted/tinymce-services/
```
2. Extract the contents of `ephox-hyperlinking-docker-starter-kit.zip`, such as:

```sh
unzip ephox-hyperlinking-docker-starter-kit.zip -d hyperlinking-service-dockerfile
```
The structure of the extracted files will be:

```sh
hyperlinking-service-dockerfile/
 ├── config
 │   └── ephox-hyperlinking-docker-env.conf
 ├── docker-entrypoint.sh
 ├── Dockerfile
 └── generate-jetty-start.sh
```
3. Copy `ephox-hyperlinking.war` into the directory containing the extracted files, such as:

```sh
cp ephox-hyperlinking.war hyperlinking-service-dockerfile/
```
4. Navigate into the `hyperlinking-service-dockerfile` folder.

```sh
cd hyperlinking-service-dockerfile
```
5. Set the permissions on the extracted files to executable.

```sh
chmod +x *.sh
```
6. *Optional*: Edit the `http` configuration settings in `config/ephox-hyperlinking-docker-env.conf`. The configurable settings are in the `http` section of the file. For example:

```conf
http {
   max-connections = 100
   max-connections-per-host = 10
   max-redirects = 10
   max-retries = 3
   request-timeout-seconds = 10
   trust-all-cert = false
   websphere = {
     use-ssl-config = true
   }
 }
```
For information on the `http` configuration setting, see: [Configure server-side components - `http`](../configure-required-services/#httpoptional).
7. *Optional*: Update the link-checking cache configuration, as described in [Link Checker self-hosted quick setup](../check-links/#linkcheckerself-hostedquicksetup).
8. *Optional*: Configure the Enhanced Media Embed Service, as described in [Configure Enhanced Media Embed Server](../mediaembed-server-config/).
9. *Optional*: Configure the service to use a HTTP proxy by updating `config/ephox-hyperlinking-docker-env.conf`. See: [Configure server-side components - proxy](../configure-required-services/#proxyoptional).
10. Create an `origins.env` file in the same directory as the `Dockerfile`, and specify the Hypertext Transfer Protocol (HTTP) and domain name of sites hosting the TinyMCE editor (`allowed-origins`). Up to 99 origins can be added without editing `config/ephox-hyperlinking-docker-env.conf`.

For example:

```conf
ORIGIN0=example.net
 ORIGIN1=example
 ORIGIN2=http://example.org
```
For information on `allowed-origins`, see: [Configure server-side components - allowed-origins](../configure-required-services/#allowed-originsrequired).
11. As the root user or Administrator, build the TinyMCE Hyperlinking Docker image using the following command:

```sh
docker build -t tinymce-hyperlinking-service .
```
12. As the root user or Administrator, deploy the service using the following command:

```sh
docker run -d -p 8083:8080 --env-file origins.env tinymce-hyperlinking-service
```
Where:

  - `-p 8083:8080` maps the container port `8080` to local port `8083`.
  - `--env-file origins.env` adds the allowed origins to the container.
13. To verify that the Docker container is deployed and the hyperlinking service is running, execute:

```sh
curl http://localhost:8083/ephox-hyperlinking/
```
The response from the `curl` command should be:

```sh
Link checking and media embedding service is running.
```
The TinyMCE Hyperlinking Docker image can now be pushed to a private container registry for deployment on [Kubernetes](https://kubernetes.io/), [Docker Swarm](https://docs.docker.com/engine/swarm/) or [OpenShift](https://www.openshift.com/).

### Deploy the TinyMCE image proxy server-side component using Docker (self-hosted enterprise bundles)

The TinyMCE image proxy server-side component can be deployed using Docker or a container orchestration application such as Kubernetes. Tiny provides a pre-configured package for creating a Image Proxy Docker image.

> **Warning:** Do not push this docker image to a publicly accessible container registry. Doing so will constitute a breach of the Tiny Self-Hosted Software License Agreement, *including*:
> 
> - [The Tiny Self-Hosted Software License Agreement - (Enterprise Users)](/legal/tiny-self-hosted-enterprise-agreement/).
> - [The Tiny Self-Hosted Software License Agreement - (OEM & SaaS Users)](/legal/tiny-self-hosted-oem-saas-agreement/).

#### Procedure

The following procedure covers downloading, configuring, building and testing the TinyMCE Image Proxy Docker image.

> **Note:** This procedure assumes that a TinyMCE self-hosted enterprise bundle has been extracted as described in [Download and extract the TinyMCE Self-hosted Bundle](#downloadandextractthetinymceself-hostedbundle).

1. Navigate into the `tinymce-services` folder.

```sh
cd tinymce-selfhosted/tinymce-services/
```
2. Extract the contents of `ephox-image-proxy-docker-starter-kit.zip`, such as:

```sh
unzip ephox-image-proxy-docker-starter-kit.zip -d image-proxy-service-dockerfile
```
3. Copy `ephox-image-proxy.war` into the directory containing the extracted files, such as:

```sh
cp ephox-image-proxy.war image-proxy-service-dockerfile/
```
4. Navigate into the `image-proxy-service-dockerfile` folder.

```sh
cd image-proxy-service-dockerfile
```
5. Set the permissions on the extracted files to executable.

```sh
chmod +x *.sh
```
6. *Optional*: Edit the `image-proxy` configuration setting in `config/ephox-image-proxy-docker-env.conf`. The configurable setting is in the `image-proxy` section of the file. For example:

```conf
image-proxy {
   image-size = 10000000 // 10MB in bytes
 }
```
For information on the `image-proxy` configuration setting, see: [Configure server-side components - `image-proxy`](../configure-required-services/#image-proxyoptional).
7. *Optional*: Edit the `http` configuration settings in `config/ephox-image-proxy-docker-env.conf`. The configurable settings are in the `http` section of the file. For example:

```conf
http {
   max-connections = 100
   max-connections-per-host = 10
   max-redirects = 10
   max-retries = 3
   request-timeout-seconds = 10
   trust-all-cert = false
   websphere = {
     use-ssl-config = true
   }
 }
```
For information on the `http` configuration setting, see: [Configure server-side components - `http`](../configure-required-services/#httpoptional).
8. *Optional*: Configure the service to use a HTTP proxy by updating `config/ephox-image-proxy-docker-env.conf`. See: [Configure server-side components](../configure-required-services/).
9. Create an `origins.env` file in the same directory as the `Dockerfile`, and specify the Hypertext Transfer Protocol (HTTP) and domain name of sites hosting the TinyMCE editor (`allowed-origins`). Up to 99 origins can be added without editing `config/ephox-image-proxy-docker-env.conf`.

For example:

```conf
ORIGIN0=example.net
 ORIGIN1=example
 ORIGIN2=http://example.org
```
For information on `allowed-origins`, see: [Configure server-side components - allowed-origins](../configure-required-services/#allowed-originsrequired).
10. As the root user or Administrator, build the TinyMCE Image Proxy Docker image using the following command:

```sh
docker build -t tinymce-image-proxy-service .
```
11. As the root user or Administrator, deploy the service using the following command:

```sh
docker run -d -p 8081:8080 --env-file origins.env tinymce-image-proxy-service
```
Where:

  - `-p 8081:8080` maps the container port `8080` to local port `8081`.
  - `--env-file origins.env` adds the allowed origins to the container.
12. To verify that the Docker container is deployed and the image proxy is running, execute:

```sh
curl http://localhost:8081/ephox-image-proxy/
```
The response from the `curl` command should be:

```sh
Image proxy service is running.
```
The TinyMCE Image Proxy Docker image can now be pushed to a private container registry for deployment on [Kubernetes](https://kubernetes.io/), [Docker Swarm](https://docs.docker.com/engine/swarm/) or [OpenShift](https://www.openshift.com/).

### Deploy the TinyMCE spelling service server-side component using Docker (self-hosted enterprise bundles)

The TinyMCE spelling service server-side component can be deployed using Docker or a container orchestration application such as Kubernetes. Tiny provides a pre-configured package for creating a Spelling Service Docker image.

> **Warning:** Do not push this docker image to a publicly accessible container registry. Doing so will constitute a breach of the Tiny Self-Hosted Software License Agreement, *including*:
> 
> - [The Tiny Self-Hosted Software License Agreement - (Enterprise Users)](/legal/tiny-self-hosted-enterprise-agreement/).
> - [The Tiny Self-Hosted Software License Agreement - (OEM & SaaS Users)](/legal/tiny-self-hosted-oem-saas-agreement/).

#### Procedure

The following procedure covers downloading, configuring, building and testing the TinyMCE Spelling Service Docker image.

> **Note:** This procedure assumes that a TinyMCE self-hosted enterprise bundle has been extracted as described in [Download and extract the TinyMCE Self-hosted Bundle](#downloadandextractthetinymceself-hostedbundle).

1. Navigate into the `tinymce-services` folder.

```sh
cd tinymce-selfhosted/tinymce-services/
```
2. Extract the contents of `ephox-spelling-docker-starter-kit.zip`, such as:

```sh
unzip ephox-spelling-docker-starter-kit.zip -d spelling-service-dockerfile
```
The structure of the extracted files will be:

```sh
spelling-service-dockerfile/
├── config
│   └── ephox-spelling-docker-env.conf
├── docker-entrypoint.sh
├── Dockerfile
└── generate-jetty-start.sh
```
3. Copy `ephox-spelling.war` into the directory containing the extracted files, such as:

```sh
cp ephox-spelling.war spelling-service-dockerfile/
```
4. Navigate into the `spelling-service-dockerfile` folder.

```sh
cd spelling-service-dockerfile
```
5. Set the permissions on the extracted files to executable.

```sh
chmod +x *.sh
```
6. *Optional*: Edit the `http` configuration settings in `config/ephox-spelling-docker-env.conf`. The configurable settings are in the `http` section of the file. For example:

```conf
http {
  max-connections = 100
  max-connections-per-host = 10
  max-redirects = 10
  max-retries = 3
  request-timeout-seconds = 10
  trust-all-cert = false
  websphere = {
    use-ssl-config = true
  }
}
```
For information on the `http` configuration setting, see: [Configure server-side components - `http`](../configure-required-services/#httpoptional).
7. *Optional*: Configure the service to use a HTTP proxy by updating `config/ephox-spelling-docker-env.conf`. See: [Configure server-side components](../configure-required-services/).
8. *Optional*: Add a custom dictionary, as described in [Adding custom dictionaries](../custom-dictionaries-for-tiny-spellchecker/).
9. Create an `origins.env` file in the same directory as the `Dockerfile`, and specify the Hypertext Transfer Protocol (HTTP) and domain name of sites hosting the TinyMCE editor (`allowed-origins`). Up to 99 origins can be added without editing `config/ephox-spelling-docker-env.conf`.

For example:

```conf
ORIGIN0=example.net
ORIGIN1=example
ORIGIN2=http://example.org
```
For information on `allowed-origins`, see: [Configure server-side components - allowed-origins](../configure-required-services/#allowed-originsrequired).
10. As the root user or Administrator, build the TinyMCE Spelling Service Docker image using the following command:

```sh
docker build -t tinymce-spelling-service .
```
11. As the root user or Administrator, deploy the service using the following command:

```sh
docker run -d -p 8082:8080 --env-file origins.env tinymce-spelling-service
```
Where:

  - `-p 8082:8080` maps the container port `8080` to local port `8082`.
  - `--env-file origins.env` adds the allowed origins to the container.
12. To verify that the Docker container is deployed and the spelling service is running, execute:

```sh
curl http://localhost:8082/ephox-spelling/
```
The response from the `curl` command should be:

```sh
Spelling service is running.
```
The TinyMCE Spelling Service Docker image can now be pushed to a private container registry for deployment on [Kubernetes](https://kubernetes.io/), [Docker Swarm](https://docs.docker.com/engine/swarm/) or [OpenShift](https://www.openshift.com/).

## Containerized services for individually licensed premium plugins

The following sections assist with containerizing the TinyMCE services for users with licenses to self-hosted versions of:

- [*Tiny Enhanced Media Embed*](/tinymce/features/enhanced-media-embed)
- [*Tiny Link Checker*](/tinymce/features/link-checker)
- [*Tiny Spell Checker Pro*](/tinymce/features/spell-checker-pro)

Select from the following:

- For the Tiny Enhanced Media Embed and Tiny Link Checker service, see: [Deploy the TinyMCE hyperlinking server-side component using Docker (individually licensed)](#deploythetinymcehyperlinkingserver-sidecomponentusingdockerindividuallylicensed).
- For the Tiny Spell Checker Pro service, see: [Deploy the TinyMCE spelling service server-side component using Docker (individually licensed)](#deploythetinymcespellingserviceserver-sidecomponentusingdockerindividuallylicensed).

### Deploy the TinyMCE hyperlinking server-side component using Docker (individually licensed)

The TinyMCE hyperlinking server-side component can be deployed using Docker or a container orchestration application such as Kubernetes. Tiny provides a pre-configured package for creating a Hyperlinking Docker image.

> **Warning:** Do not push this docker image to a publicly accessible container registry. Doing so will constitute a breach of the Tiny Self-Hosted Software License Agreement, *including*:
> 
> - [The Tiny Self-Hosted Software License Agreement - (Enterprise Users)](/legal/tiny-self-hosted-enterprise-agreement/).
> - [The Tiny Self-Hosted Software License Agreement - (OEM & SaaS Users)](/legal/tiny-self-hosted-oem-saas-agreement/).

#### Prerequisites

- The [Docker Engine](https://docs.docker.com/engine/docker-overview/) is installed and running.
- The user has Administrative or Root user access.
- The user is either:

  - Using a Linux, Unix or macOS operating system.
  - Using Windows and has access to unix command line tools using [Git for Windows](https://gitforwindows.org/), [Cygwin](https://www.cygwin.com/), or the [Windows Subsystem for Linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10).

#### Procedure

The following procedure covers downloading, configuring, building and testing the TinyMCE Hyperlinking Docker image.

1. Go to [Tiny Account](/my-account) > My Downloads

and download either:

  - *Tiny Enhanced Media Embed*, or
  - *Tiny Link Checker*.

    1. Open a command line and navigate to the directory containing `ephox-hyperlinking_<version>.zip`. Windows Users should open a Bash command line as the Administrator User.
    2. Extract the contents of `ephox-hyperlinking_<version>.zip`, such as:

```sh
unzip ephox-hyperlinking_<version>.zip -d tinymce-hyperlinking-service
```
    3. Navigate into the extracted folder.

```sh
cd tinymce-hyperlinking-service
```
    4. Extract the contents of `ephox-hyperlinking-docker-starter-kit.zip`, such as:

```sh
unzip ephox-hyperlinking-docker-starter-kit.zip
```
The structure of the current directory (`tinymce-hyperlinking-service/`) will be:

```sh
tinymce-hyperlinking-service/
 ├── config
 │   └── ephox-hyperlinking-docker-env.conf
 ├── docker-entrypoint.sh
 ├── Dockerfile
 ├── ephox-hyperlinking-docker-starter-kit.zip
 ├── ephox-hyperlinking.war
 ├── generate-jetty-start.sh
 ├── license.txt
 ├── readme.txt
 └── version.txt
```
    5. Set the permissions on the extracted files to executable.

```sh
chmod +x *.sh
```
    6. *Optional*: Edit the `http` configuration settings in `config/ephox-hyperlinking-docker-env.conf`. The configurable settings are in the `http` section of the file. For example:

```conf
http {
   max-connections = 100
   max-connections-per-host = 10
   max-redirects = 10
   max-retries = 3
   request-timeout-seconds = 10
   trust-all-cert = false
   websphere = {
     use-ssl-config = true
   }
 }
```
For information on the `http` configuration setting, see: [Configure server-side components - `http`](../configure-required-services/#httpoptional).
    7. *Optional*: Update the link-checking cache configuration, as described in [Link Checker self-hosted quick setup](../check-links/#linkcheckerself-hostedquicksetup).
    8. *Optional*: Configure the Enhanced Media Embed Service, as described in [Configure Enhanced Media Embed Server](../mediaembed-server-config/).
    9. *Optional*: Configure the service to use a HTTP proxy by updating `config/ephox-hyperlinking-docker-env.conf`. See: [Configure server-side components - proxy](../configure-required-services/#proxyoptional).
    10. Create an `origins.env` file in the same directory as the `Dockerfile`, and specify the Hypertext Transfer Protocol (HTTP) and domain name of sites hosting the TinyMCE editor (`allowed-origins`). Up to 99 origins can be added without editing `config/ephox-hyperlinking-docker-env.conf`.

For example:

```conf
ORIGIN0=example.net
 ORIGIN1=example
 ORIGIN2=http://example.org
```
For information on `allowed-origins`, see: [Configure server-side components - allowed-origins](../configure-required-services/#allowed-originsrequired).
    11. As the root user or Administrator, build the TinyMCE Hyperlinking Docker image using the following command:

```sh
docker build -t tinymce-hyperlinking-service .
```
    12. As the root user or Administrator, deploy the service using the following command:

```sh
docker run -d -p 8083:8080 --env-file origins.env tinymce-hyperlinking-service
```
Where:

      - `-p 8083:8080` maps the container port `8080` to local port `8083`.
      - `--env-file origins.env` adds the allowed origins to the container.
    13. To verify that the Docker container is deployed and the hyperlinking service is running, execute:

```sh
curl http://localhost:8083/ephox-hyperlinking/
```
The response from the `curl` command should be:

```sh
Link checking and media embedding service is running.
```
The TinyMCE Hyperlinking Docker image can now be pushed to a private container registry for deployment on [Kubernetes](https://kubernetes.io/), [Docker Swarm](https://docs.docker.com/engine/swarm/) or [OpenShift](https://www.openshift.com/).

### Deploy the TinyMCE spelling service server-side component using Docker (individually licensed)

The TinyMCE spelling service server-side component can be deployed using Docker or a container orchestration application such as Kubernetes. Tiny provides a pre-configured package for creating a Spelling Service Docker image.

> **Warning:** Do not push this docker image to a publicly accessible container registry. Doing so will constitute a breach of the Tiny Self-Hosted Software License Agreement, *including*:
> 
> - [The Tiny Self-Hosted Software License Agreement - (Enterprise Users)](/legal/tiny-self-hosted-enterprise-agreement/).
> - [The Tiny Self-Hosted Software License Agreement - (OEM & SaaS Users)](/legal/tiny-self-hosted-oem-saas-agreement/).

#### Prerequisites

- The [Docker Engine](https://docs.docker.com/engine/docker-overview/) is installed and running.
- The user has Administrative or Root user access.
- The user is either:

  - Using a Linux, Unix or macOS operating system.
  - Using Windows and has access to unix command line tools using [Git for Windows](https://gitforwindows.org/), [Cygwin](https://www.cygwin.com/), or the [Windows Subsystem for Linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10).

#### Procedure

The following procedure covers downloading, configuring, building and testing the TinyMCE Spelling Service Docker image.

1. Go to **link:https://www.tiny.cloud/my-account** **Tiny Account** [My Downloads] and download *Tiny Spell Checker Pro*.
2. Open a command line and navigate to the directory containing `ephox-spelling_<version>.zip`. Windows Users should open a Bash command line as the Administrator User.
3. Extract the contents of `ephox-spelling_<version>.zip`, such as:

```sh
unzip ephox-spelling_<version>.zip -d tinymce-spelling-service
```
4. Navigate into the extracted folder.

```sh
cd tinymce-spelling-service
```
5. Extract the contents of `ephox-spelling-docker-starter-kit.zip`, such as:

```sh
unzip ephox-spelling-docker-starter-kit.zip
```
The structure of the current directory (`tinymce-spelling-service/`) will be:

```sh
tinymce-spelling-service/
├── config
│   └── ephox-spelling-docker-env.conf
├── docker-entrypoint.sh
├── Dockerfile
├── ephox-spelling-docker-starter-kit.zip
├── ephox-spelling.war
├── generate-jetty-start.sh
├── license.txt
├── readme.txt
└── version.txt
```
6. Set the permissions on the extracted files to executable.

```sh
chmod +x *.sh
```
7. *Optional*: Edit the `http` configuration settings in `config/ephox-spelling-docker-env.conf`. The configurable settings are in the `http` section of the file. For example:

```conf
http {
  max-connections = 100
  max-connections-per-host = 10
  max-redirects = 10
  max-retries = 3
  request-timeout-seconds = 10
  trust-all-cert = false
  websphere = {
    use-ssl-config = true
  }
}
```
For information on the `http` configuration setting, see: [Configure server-side components - `http`](../configure-required-services/#httpoptional).
8. *Optional*: Configure the service to use a HTTP proxy by updating `config/ephox-spelling-docker-env.conf`. See: [Configure server-side components](../configure-required-services/).
9. *Optional*: Add a custom dictionary, as described in [Adding custom dictionaries](../custom-dictionaries-for-tiny-spellchecker/).
10. Create an `origins.env` file in the same directory as the `Dockerfile`, and specify the Hypertext Transfer Protocol (HTTP) and domain name of sites hosting the TinyMCE editor (`allowed-origins`). Up to 99 origins can be added without editing `config/ephox-spelling-docker-env.conf`.

For example:

```conf
ORIGIN0=example.net
ORIGIN1=example
ORIGIN2=http://example.org
```
For information on `allowed-origins`, see: [Configure server-side components - allowed-origins](../configure-required-services/#allowed-originsrequired).
11. As the root user or Administrator, build the TinyMCE Spelling Service Docker image using the following command:

```sh
docker build -t tinymce-spelling-service .
```
12. As the root user or Administrator, deploy the service using the following command:

```sh
docker run -d -p 8082:8080 --env-file origins.env tinymce-spelling-service
```
Where:

  - `-p 8082:8080` maps the container port `8080` to local port `8082`.
  - `--env-file origins.env` adds the allowed origins to the container.
13. To verify that the Docker container is deployed and the spelling service is running, execute:

```sh
curl http://localhost:8082/ephox-spelling/
```
The response from the `curl` command should be:

```sh
Spelling service is running.
```
The TinyMCE Spelling Service Docker image can now be pushed to a private container registry for deployment on [Kubernetes](https://kubernetes.io/), [Docker Swarm](https://docs.docker.com/engine/swarm/) or [OpenShift](https://www.openshift.com/).
