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

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.

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:

Prerequisites

Procedure

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

  1. Go to Tiny Account > My Downloads and download either:

    • Tiny Enhanced Media Embed, or

    • Tiny Link Checker.

  2. 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.

  3. Extract the contents of ephox-hyperlinking_<version>.zip, such as:

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

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

    unzip ephox-hyperlinking-docker-starter-kit.zip

    The structure of the current directory (tinymce-hyperlinking-service/) will be:

    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
  6. Set the permissions on the extracted files to executable.

    chmod +x *.sh
  7. 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:

    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.

  8. Optional: Update the link-checking cache configuration, as described in Link Checker self-hosted quick setup.

  9. Optional: Configure the Enhanced Media Embed Service, as described in Configure Enhanced Media Embed Server.

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

  11. 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:

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

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

  12. As the root user or Administrator, build the TinyMCE Hyperlinking Docker image using the following command:

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

    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.

  14. To verify that the Docker container is deployed and the hyperlinking service is running, execute:

    curl http://localhost:8083/ephox-hyperlinking/

    The response from the curl command should be:

    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, Docker Swarm or OpenShift.