The Manager application ships with every Tomcat installation and provides both a browser-based HTML interface and a machine-readable text HTTP API for managing deployed web applications. It allows operators to deploy new applications, stop or reload running ones, inspect session counts, and collect diagnostics — all without restarting Tomcat. The Manager itself is deployed as a privileged web application atDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apache/tomcat/llms.txt
Use this file to discover all available pages before exploring further.
/manager and relies on Tomcat’s security framework to restrict access.
Enabling the Manager
The Manager application is included in the default Tomcat distribution underwebapps/manager, but it ships with no authorized users. You must add user entries to conf/tomcat-users.xml before you can log in.
There are four distinct Manager roles, each granting access to a different interface:
| Role | Access Granted |
|---|---|
manager-gui | HTML browser interface at /manager/html |
manager-script | Text (machine-readable) HTTP API at /manager/text |
manager-jmx | JMX proxy at /manager/jmxproxy |
manager-status | Server status pages at /manager/status |
conf/tomcat-users.xml:
Remote Access Configuration
By default, Tomcat restricts Manager access to connections originating fromlocalhost (127.0.0.1 and ::1). This is enforced by a RemoteAddrValve in the context descriptor at conf/Catalina/localhost/manager.xml.
Default conf/Catalina/localhost/manager.xml:
192.168.1.0/24), extend the allow regex:
allow attribute with a permissive pattern — but only do this behind a firewall or VPN:
HTML Manager Interface
Navigate tohttp://localhost:8080/manager/html in a browser and authenticate with a manager-gui account. The HTML interface provides:
- A table of all deployed applications showing context path, display name, running state, and active session count.
- Per-application action buttons: Start, Stop, Reload, Undeploy, and Expire Sessions.
- A deploy panel for uploading a WAR file from your local machine or specifying a server-side path.
- Links to the Server Status page and the application session detail views.
HTMLManagerServlet, which extends ManagerServlet and renders the same underlying operations as formatted HTML rather than plain text responses.
Text API Commands
The text API is available at/manager/text/ and is designed for scripted access. Every response begins with OK - on success or FAIL - on error, making it easy to parse from shell scripts or CI/CD pipelines.
Endpoint Reference
| Endpoint | Method | Description |
|---|---|---|
/manager/text/list | GET | List all deployed applications with path, status, and session count |
/manager/text/deploy?path=&war= | GET | Deploy a WAR from a file: or jar: URL on the server filesystem |
/manager/text/deploy?path= | PUT | Upload and deploy a WAR from the request body |
/manager/text/undeploy?path= | GET | Undeploy the application at the given path and remove it from appBase |
/manager/text/start?path= | GET | Start a previously stopped application |
/manager/text/stop?path= | GET | Stop a running application (keeps it registered) |
/manager/text/reload?path= | GET | Reload the application (stop + start the context) |
/manager/text/sessions?path= | GET | Deprecated. Use /expire instead. Displays session idle time distribution |
/manager/text/expire?path=&idle= | GET | Expire sessions idle for more than idle minutes |
/manager/text/findleaks | GET | Find applications that triggered memory leaks on previous reload/undeploy |
/manager/text/serverinfo | GET | Display Tomcat version, OS, JVM, and hostname |
/manager/text/vminfo | GET | Detailed JVM memory, GC, and thread pool information |
/manager/text/threaddump | GET | Full JVM thread dump |
/manager/text/save | GET | Save current server configuration to server.xml |
/manager/text/save?path= | GET | Save a context’s configuration to conf/Catalina/<host>/<app>.xml |
curl Examples
List all deployed applications:Use
path=/ (not path=) to target the ROOT context. For example: curl ".../manager/text/stop?path=/".Status App
The Status application at/manager/status (also accessible as /manager/status/all for extended output) provides a real-time server health overview. It requires only the manager-status role, making it safe to grant to monitoring systems.
The status page displays:
JVM Memory
Heap usage, non-heap, and individual memory pool statistics from the running JVM.
Thread Pools
Current thread count, maximum threads, and queue depth for each Connector’s executor.
Connector Statistics
Request count, error count, bytes sent/received, and processing time per Connector.
JVM Version Info
Tomcat version, Java version, OS name/version/architecture, and hostname.
