-
MathType
-
WirisQuizzes
-
Nubric
-
CalcMe
-
MathPlayer
-
Store FAQ
-
MathFlow
-
BF FAQ
-
Miscellaneous
-
Wiris Integrations
Deploy MathType on-premises with Docker
Reading time: 3minUse this guide when you want to deploy MathType services entirely within your own infrastructure using Docker. This deployment model allows organizations to host MathType services on-premises and reduce or eliminate dependencies on WIRIS-hosted services.
After completing this guide, you will have a Docker-based deployment that includes:
- MathType Editor Services.
- MathType Hand Services.
- MathType Integration Services.
Your frontend integrations will be able to connect to these locally hosted services instead of using the default cloud deployment.
Before you begin
Requirements
Make sure you have:
- Docker and Docker Compose installed.
- A valid MathType server license.
- Access to the MathType On-Premises Docker repository: https://github.com/jguillen-at-wiris/mt-onpremises-docker.
- The required MathType WAR files.
- A basic understanding of the MathType integrations architecture.
For an overview of how Integration Services fit into the MathType architecture, see MathType integrations architecture.
Applies to
Fully self-hosted MathType deployments · Docker
Steps
Obtain the deployment package
Clone or download the MathType On-Premises Docker repository:
git clone https://github.com/jguillen-at-wiris/mt-onpremises-docker.gitThe repository contains the Docker configuration, deployment scripts, frontend demos, and configuration templates required for the deployment.
Obtain the required WAR files
The deployment requires the following WAR files:
licensed_editor.warlicensed_hand.warpluginwiris_engine.war
The editor and handwriting WAR files are provided as part of your licensed MathType server components. The Integration Services package (pluginwiris_engine.war) must also be available before deployment.
Replace the placeholder WAR files
Locate the mathtype-wars directory and replace the placeholder files with the actual WAR files. Expected structure:
mathtype-wars/
├── licensed_editor.war
├── licensed_hand.war
└── pluginwiris_engine.warConfigure your license keys
Update the configuration files provided with the deployment package:
configurations/editor-web.xmlconfigurations/hand-web.xml
Replace the placeholder license keys with your licensed product keys.
Start the Docker deployment
From the backend directory, start the services:
docker compose up -dDocker builds the MathType image and starts the required services.
Verify the backend services
Open the Integration Services configuration endpoint:
http://localhost:8080/pluginwiris_engine/app/configurationjsA successful deployment returns a JSON response describing the available services and configuration.
Next, open the Integration Services test page:
http://localhost:8080/pluginwiris_engine/app/testAll tests should complete successfully.
For more information about validating Integration Services deployments, see Test Integration Services.
You can also verify that Editor Services are available by opening:
http://localhost:8080/editor/tests/en/test.htmlThe MathType editor should load successfully.
Verify a frontend demo
The Docker deployment package includes frontend demo scenarios that can be used to validate the local services. Serve the frontend directory over HTTP. Do not open the HTML files directly with file://. Example:
cd ../frontend
python -m http.server 3000Open one of the available demo scenarios in your browser. Example:
http://localhost:3000/froala/Some frontend demos may load editor libraries or MathType connectors from public CDNs. This does not affect the validation of the local MathType services, provided that all MathType service requests are handled by the local deployment.
To validate the local deployment, make sure the frontend points to the local Integration Services endpoint:
mathTypeParameters: {
serviceProviderProperties: {
URI: 'http://localhost:8080/pluginwiris_engine/app/configurationjs',
server: 'java'
}
}To avoid dependencies on WIRIS-hosted rendering services, make sure the frontend uses the locally hosted rendering script:
<script src="http://localhost:8080/pluginwiris_engine/app/WIRISplugins.js?viewer=image"></script>Then verify that the editor loads correctly, the MathType and ChemType buttons appear and you can interact with it.
Optional: Verify the Render Engine
The deployment package includes a standalone Render Engine demo that can be used to validate MathML rendering without an editor integration. Open:
http://localhost:3000/render-engine/To use the local deployment, configure the page to load:
<script src="http://localhost:8080/pluginwiris_engine/app/WIRISplugins.js?viewer=image"></script>instead of the WIRIS-hosted version. The MathML content should be rendered correctly using the local services.
Verify it worked
A successful deployment should meet all of the following conditions:
- Docker containers start without errors.
- The
configurationjsendpoint returns a valid response. - The Integration Services test page reports successful results.
- The MathType editor test page loads successfully.
- Frontend integrations can open the MathType editor.
- Formulas can be inserted and edited.
- No requests are sent to WIRIS-hosted services. Browser network requests are served from
localhostinstead ofwww.wiris.net.
Common issues
The services fail to start after deployment
Verify that the WAR files match the servlet container version used by the Docker image.
The default deployment uses Tomcat 9 and requires the Java Integration Services package. Java Jakarta packages require Tomcat 10 or later.
License validation errors
Verify that the configured product keys match your licensed MathType components.
Frontend integrations cannot connect
Verify that:
- Docker is running.
- Port
8080is accessible. - The frontend points to the correct
configurationjsendpoint.
Formulas do not render correctly
Verify that the deployment completed successfully and that Integration Services can communicate with the editor services.
Related articles
- MathType integrations architecture.
- MathType integrations deployment models.
- Test Integration Services.
- Configure Integration Services.