Appkit is most commonly run as a lightweight Java web application that can be deployed in any Java Servlet Container (application server) such as Tomcat, Glassfish, Jetty depending on your preferences or IT standards. The Appkit application is designed to be stateless, making deployment and scaling (for example, with load balancers) a straightforward exercise.

Configuring the application server

For development and testing purposes you can deploy the Appkit web application in any modern servlet container and it will run and serve queries as long as the computer has network access to the underlying search engine. This is a non-exhaustive list of servers that have been used to run Appkit applications:

  • Tomcat 6+

  • JBoss 8+

  • Jetty 6+

  • GlassFish 4+

Java runtime environment

Appkit requires Oracle’s Java SE (version 7 or 8) to be installed on the application server. Java EE is not needed.

Appkit doesn’t support OpenJDK, which is installed by default in various Linux distributions. We recommend using the Oracle JDK only.

Memory allocation

You must make sure that the servlet container is configured with access to an adequate amount of memory and heap space. The standard Appkit application does not have specific requirements but specific modules (for example, the Social module has a larger footprint).

Typical production setup

Your production setup will be a matter of preference, because Appkit imposes no specific requirements in terms of topology or infrastructure. Some organisations choose to front the application server (servlet container) with either Apache or another webserver. In a public-facing scenario, this can yield some gains when serving static content and creates a buffer between the outside world and the execution environment.

Using Windows Integrated Authentication for internal applications

If you would like to take advantage of Integrated Windows Authentication for single sign on in your search application, the typical pattern is to front the servlet container (for example, Tomcat) with Microsoft Internet Information Services. In this pattern IIS handles the authentication with Active Directory and then forwards the request to Tomcat where it is picked up by Appkit and used by our Security module for user information, authorisation or personalisation.