A Node.js web application that allows LaTeX math equations to be entered and converted to PNG/JPG/SVG images.
For each conversion, an isolated Docker container with a LaTeX installation is started; it compiles the generated .tex file and converts it to an SVG vector image. If required, the SVG file is then converted to a raster image format for PNG/JPG.
Bootstrap and jQuery are used in the web interface, with AJAX calls made to the conversion API endpoint.
[Docker CE](https://docs.docker.com/install/linux/docker-ce/ubuntu/) with [non-root user support](https://docs.docker.com/install/linux/linux-postinstall/#manage-docker-as-a-non-root-user).
LaTeX is powerful, with the reading and writing external files and executing commands possible. It was decided a new isolated Docker container be launched for every conversion.
The container is only able to access the local `temp/<id>/` directory and has no network access.
Additionally, the compilation process will be killed after 5 seconds if not complete; this is to safeguard against infinite loops and other troublesome LaTeX quirks.
*`temp/` stores temporary `.tex`, `.dvi`, and `.svg` files during compilation in an inner `temp/<id>/` directory, which is deleted upon completion of the conversion.