IsTheServerUp
Expose the health status of individual backend servers for the uptime monitor of your choice.
IsTheServerUp is a Velocity plugin for uptime monitors like Uptime Kuma and Gatus to answer the question asked by your friends since time immemorial: "Is the server up?"
This plugin was compiled against Velocity 3.5.0-SNAPSHOT and requires Java 21+.
Features
- Easily expose your individual backends' health status through your Velocity proxy - if Velocity can reach your server, your players can reach it.
- Bring your own uptime monitor to poll
/health/{backend_name}endpoints for uptime. - Simple, lightweight, and zero extra dependencies (other than Velocity of course).
How can this plugin help me?
saya: "miss elaina, is the Minecraft server up yet?"
elaina: "check the uptime monitor it's at uptime.unitedmagic.org"
saya: "but i want to hear it from you"
elaina: "i'm flattered but you should really just check the status page"
saya: "but miss elaina i love you so much that i don't want to hear it from anyone else"
elaina: "riiiight okay then well have a good one, saya"
saya: "wait miss elaina please wait! i need to know if the server is up"
elaina: "no"
saya: "no as in you don't want to tell me or no as in the server is not up"
elaina: "no"
How do I use it?
- Install this plugin into your Velocity proxy's
plugins/folder. - (Re)start Velocity to let the plugin autopopulate the config, then stop Velocity.
- Edit the configuration to your liking then start Velocity.
- Point the uptime checker of your choice at the backend endpoint. If it's
200, it's up. If it's503, it's not. - Done.
If you want to use TLS, you should front the webserver with a proper reverse proxy like NGINX or Caddy.
Caddy and Gatus example

Below are snippets that I use for my friend group's Velocity network. IsTheServerUp is running on Velocity with its HTTP server proxied behind Caddy. Gatus is my uptime monitor polling IsTheServerUp through Caddy.
I am running Caddy on the same machine as my Velocity proxy. I am using it to reverse proxy my localhost-bound IsTheServerUp web server. The config for Caddy is below:
metrics.unitedmagic.org:80 {
handle_path /velocity* {
reverse_proxy http://127.0.0.1:8080
}
}
I use Gatus on another machine through a VPN tunnel to monitor the endpoints. Here is a snippet of my Gatus configuration relevant to this plugin:
endpoints:
- name: UMA SMP
group: Minecraft Servers
url: "http://metrics.unitedmagic.org/velocity/health/smp"
interval: 60s
conditions:
- "[STATUS] == 200"
- name: UMA Skyblock
group: Minecraft Servers
url: "http://metrics.unitedmagic.org/velocity/health/skyblock"
interval: 60s
conditions:
- "[STATUS] == 200"
Configuration
This plugin uses a HOCON configuration file. You can find the default generated configuration below.
# The IP the web server will bind to.
bind-address="127.0.0.1"
# The port the web server will bind to.
bind-port=8080
# Maximum time (in seconds) to wait for active requests to finish when stopping the web server.
webserver-shutdown-delay-seconds=5
# The HTTP Content-Type header value sent with the response.
response-content-type="text/plain; charset=utf-8"
# The body text returned when the backend server is online.
response-up-text="UP\n"
# The body text returned when the backend server is offline or unreachable.
response-down-text="DOWN\n"
# Time (in milliseconds) to cache backend status results to prevent hammering backend servers with pings.
ping-cache-duration-ms=1000
# How long to wait (in milliseconds) for a backend server to respond to a ping before timing out.
ping-timeout-ms=1000
License
Unless otherwise noted, all source code in this repository is licensed under the Mozilla Public License 2.0 (SPDX: MPL-2.0). Please view the LICENSE file for the terms you are afforded under the MPL-2.0.
| Version | Minecraft | Loader | Download |
|---|---|---|---|
|
IsTheServerUp v0.2.0 for Velocity 3.5.0-SNAPSHOT 0.2.0 |
1.7.2, 1.7.3, 1.7.4, 1.7.5, 1.7.6, 1.7.7, 1.7.8, 1.7.9, 1.7.10, 1.8, 1.8.1, 1.8.2, 1.8.3, 1.8.4, 1.8.5, 1.8.6, 1.8.7, 1.8.8, 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3
|
velocity
|
Download |
|
IsTheServerUp v0.1.0 for Velocity 3.5.0-SNAPSHOT 0.1.0 |
1.7.2, 1.7.3, 1.7.4, 1.7.5, 1.7.6, 1.7.7, 1.7.8, 1.7.9, 1.7.10, 1.8, 1.8.1, 1.8.2, 1.8.3, 1.8.4, 1.8.5, 1.8.6, 1.8.7, 1.8.8, 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2
|
velocity
|
Download |