Go to file
2025-06-28 22:58:34 +05:00
.gitignore New Minecraft module; filter function overhaul 2025-06-26 03:54:53 +03:00
config.json't.example add preread to example 2025-06-27 03:43:24 +03:00
index.js small change 2025-06-28 22:58:34 +05:00
LICENSE Explain wtf this is also license 2025-06-27 03:36:55 +03:00
package-lock.json New Minecraft module; filter function overhaul 2025-06-26 03:54:53 +03:00
package.json New Minecraft module; filter function overhaul 2025-06-26 03:54:53 +03:00
README.md Explain wtf this is also license 2025-06-27 03:36:55 +03:00

confiltermon

Gateway/proxy and super-server. Given a set of services, each assigned a number of UDP or TCP ports, confiltermon shall listen on all of the ports, waiting for a client to connect, and then will:

  • call the preread function of the port, allowing it to communicate with the client
  • if the preread function indicates that the upstream service should handle the connection, it will start the service and wait for it, after which it will flush all data received from the client so far to the upstream server and begin proxying
  • all data will be passed through the filter function of the port if one is present
  • once all connections close/time out, the service will be stopped again.

This code package also includes service/port template functions for Luanti and Minecraft. The Luanti Docker template can respond to pings from the serverlist without involving the Luanti server and keep announcing the server while it is offline. The Minecraft Podman template can respond to status requests without involving Minecraft, and will use checkpointing instead of actually restarting the server, as some Minecraft setups can take a very long time to start.

Usage: node . [path to config.json't] -- execute the passed file as an async javascript function and use the returned object as the confiltermon configuration. The file can use functions defined in confiltermon code. None are documented yet.