Premium self-hosted bundle - Spelling service container

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.

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:

Procedure

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

This procedure assumes that a TinyMCE self-hosted enterprise bundle has been extracted as described in Download and extract the TinyMCE Self-hosted Bundle.
  1. Navigate into the tinymce-services folder.

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

    unzip ephox-spelling-docker-starter-kit.zip -d spelling-service-dockerfile

    The structure of the extracted files will be:

    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:

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

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

    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:

    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.

  7. Optional: Configure the service to use a HTTP proxy by updating config/ephox-spelling-docker-env.conf. See: Configure server-side components.

  8. Optional: Add a custom dictionary, as described in Adding custom dictionaries.

  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:

    ORIGIN0=example.net
    ORIGIN1=example
    ORIGIN2=http://example.org

    For information on allowed-origins, see: Configure server-side components - allowed-origins.

  10. As the root user or Administrator, build the TinyMCE Spelling Service Docker image using the following command:

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

    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:

    curl http://localhost:8082/ephox-spelling/

    The response from the curl command should be:

    Spelling service is running.

The TinyMCE Spelling Service Docker image can now be pushed to a private container registry for deployment on Kubernetes, Docker Swarm or OpenShift.