Install Server-side Components

Power your premium plugins like spelling as-you-type.

Contribute to this page

Server-side component installation

Some TinyMCE Enterprise features require a server-side component. If you're using the TinyMCE cloud solution, we've done all the hard work for you and you can skip this page. Alternatively, if you've purchased our Self-hosted solution then please read on.

Server-side components must be deployed onto a Java Servlet 3.0 compatible application server. We currently support Jetty, Apache Tomcat, and WebSphere Application Server. To discuss support for additional Java application servers, please contact us at sales@ephox.com

The following server-side components are included in the TinyMCE Self-hosted package:

Component File Description
Spellchecking ephox-spelling.war Spell checking service for TinyMCE Enterprise.
Image Tools Proxy ephox-image-proxy.war Image proxy service for the Image Tools plugin.
Enhanced Media Embed, Link Checker ephox-hyperlinking.war Link Checker and Enhanced Media Embed service for TinyMCE Enterprise.

Note: The "Allowed Origins" service (ephox-allowed-origins.war) has been deprecated. Trusted domains should now be specified directly in the configuration file.

This guide will help you get these server-side components up and running.

Step 1. Install a Java application server

If you've already got a Java application server like Jetty or Tomcat installed, skip to Step 2.

If you don't, pick either Tomcat or Jetty and install one of these with their default settings using the instructions on their website.

Memory requirement: Please ensure that you configure your Java Server (Tomcat/Jetty etc) with a minimum of 4GB. Please refer to Out of memory errors section of the Troubleshoot page if you require instructions on how to explicitly define how much RAM will be allocated to your Java server.

Step 2. Deploy server-side components

Deploy all the WAR files that came packaged with the TinyMCE Enterprise Self-hosted package to your newly installed Java application server:

The easiest way to deploy these files is to copy them into the webapps directory of your Tomcat/Jetty installation and then restart the application server.

More information can be found in the documentation of your chosen application server:

Step 3. Create a configuration file

Refer to the Configure page for the details and come back here when you're done.

Step 4. Pass the configuration file to the Java application server

HTTP proxy: If you are relying on an HTTP proxy for outgoing HTTP/HTTPS connections to the Internet, consider configuring use of the proxy by the application server by setting JVM system properties at this point. These can be set in the same manner as ephox.config.file using the instructions below (using the -D option to the java command). Please refer to Networking Properties for Java for details on the relevant proxy system properties. The system properties http.proxyHost, http.proxyPort, http.nonProxyHosts, https.proxyHost, https.proxyPort are recognized as well as http.proxyUser and http.proxyPassword to support authenticating proxies. Alternatively, use of a proxy for server-side components can be set directly in their configuration file as discussed on the Configure page.

Tell the services about the configuration file by setting the ephox.config.file JVM system property to the absolute path of the configuration file. The exact method for doing this varies depending on your operating system, application server and whether the application server is being run as a system service. The authoritative reference for configuring any application server is the vendor documentation, but we'll do our best to get you started below.

Windows

All Windows examples will assume the name of your configuration file is application.conf and it is located in the directory C:\config\file\location\. You'll need to set the JVM system property -Dephox.config.file=C:\config\file\location\application.conf.

Tomcat
From the command line

The following assumes you've downloaded the Tomcat 9.0 zip archive from the Tomcat website, unpacked it and you're working from the unpacked Tomcat directory.

Create or edit the script .\bin\setenv.bat to contain the following line:

set "CATALINA_OPTS= -Dephox.config.file=C:\config\file\location\application.conf"

There should only be a single line in this file defining the CATALINA_OPTS environment variable.

You may also need to add another line with the path to your Java Runtime Environment installation (replace with the actual path on your system) such as:

set "JRE_HOME=C:\Program Files\Java\jre1.8.0_131"

After editing setenv.bat, run the following command to start Tomcat:

.\bin\startup.bat

For further information see the documentation on running Tomcat 9.0.

As a Windows service

If you download the Windows installer, Tomcat 9.0 will always be installed as a Windows system service. See the notes on Windows setup for Tomcat 9.0 and the instructions for setting JVM system properties in the Tomcat 9.0 Windows Service HOW-TO.

As a minimal example, if the installer installed Tomcat to C:\Program Files\Apache Software Foundation\Tomcat 9.0\ (default option):

For other versions of Tomcat on Windows, check the Tomcat documentation for that version.

Jetty
From the command line

If you're following the instructions for Starting Jetty for Jetty 9.4.5, the path to the configuration file can simply be supplied as a command option:

java -D"ephox.config.file=C:\config\file\location\application.conf" -jar C:\jetty\install\directory\start.jar

For other versions of Jetty on Windows, check the Jetty documentation for that version.

As a Windows service

Follow the instructions in Startup via Windows Service for Jetty 9.4.5. Remember to append the following snippet to the line beginning with set PR_JVMOPTIONS in your install-jetty-service.bat script:

;-Dephox.config.file="C:\config\file\location\application.conf"

Note: Check the install-jetty-service.bat has the correct paths to your Java installation. The service will fail to start with some rather unhelpful errors if the paths are incorrect.

For other versions of Jetty on Windows, check the Jetty documentation for that version.

Linux

All Linux examples will assume the name of your configuration file is application.conf and it is located in the directory /config/file/location/. You'll need to set the JVM system property -Dephox.config.file=/config/file/location/application.conf.

Note: If the path to your application.conf file has spaces in it, you must ensure you prefix each white space with an escape character (\). Example: -Dephox.config.file=/config/file/location/with/white\ space/application.conf

Tomcat and/or Jetty can be obtained via the package manager for many Linux distributions. The commands for starting the service and the location of the configuration files will vary across distributions. If you installed an application server via the package manager, follow your distribution's documentation for configuring it.

Tomcat

The following assumes you've downloaded Tomcat 9.0 from the Tomcat website and unpacked the archive to /opt/tomcat.

For other versions of Tomcat on Linux, check the Tomcat documentation for that version.

If you've obtained Tomcat from your distribution's package manager, refer to your distribution's documentation for Tomcat.

From the command line

Create or edit the script /opt/tomcat/bin/setenv.sh to contain the following line:

CATALINA_OPTS=" -Dephox.config.file=/config/file/location/application.conf"

There should only be a single line in this file defining the CATALINA_OPTS environment variable.

After editing setenv.sh, run the following command to start Tomcat:

/opt/tomcat/bin/startup.sh

For further information see the documentation on running Tomcat 9.0.

Jetty

The following assumes you've downloaded Jetty 9.4.5 from the Jetty website and unpacked the archive to /opt/jetty.

For other versions of Jetty on Linux, check the Jetty documentation for that version.

If you've obtained Jetty from your distribution's package manager, refer to your distribution's documentation for Jetty.

From the command line

The path to the configuration file can simply be supplied as a command option:

java -Dephox.config.file="/config/file/location/application.conf" -jar /opt/jetty/start.jar
As a Linux service

Assuming you've followed the instructions to Startup a Unix Service using jetty.sh for Jetty 9.4.5, edit /etc/default/jetty and add the line:

JETTY_ARGS=" -Dephox.config.file=/config/file/location/application.conf"

There should only be a single line in this file defining the JETTY_ARGS variable.

Step 5: Restart the Java application server

After you've completed the steps on this page to Deploy server-side components, Create a configuration file and Pass the configuration file to the Java application server, the application server may need to be restarted to pick up all your changes. Turn it off and on again now, just to be safe.

Step 6: Set up editor client instances to use the server-side functionality

Now that the server-side components deployed and running, you'll need to tell your TinyMCE instances where to find them:

This example assume your Java application server is running on port 80 (http) on yourserver.example.com and that all the server-side components are deployed to the same Java application server. Replace yourserver.example.com with the actual domain name or IP address of your server.

Example of TinyMCE client configuration:

tinymce.init({
    selector: 'textarea', // change this value according to your HTML
    toolbar: 'image',
    plugins: 'tinymcespellchecker image imagetools media mediaembed',
    spellchecker_rpc_url: 'http://yourserver.example.com/ephox-spelling/',
    imagetools_proxy: 'http://yourserver.example.com/ephox-image-proxy/1/image',
    mediaembed_service_url: 'http://yourserver.example.com/ephox-hyperlinking/',
    linkchecker_service_url: 'http://yourserver.example.com/ephox-hyperlinking/'
});

Can't find what you're looking for? Let us know.

Except as otherwise noted, the content of this page is licensed under the Creative Commons BY-NC-SA 3.0 License, and code samples are licensed under the Apache 2.0 License.