purgatorio is a small, lightweight service to distribute Multicast control and monitoring messages between subnets.
The server simply distributes messages it receivers to all clients except the one it received from.
Simply specifiy the PORT environment Variable or leave it untouched to use it's default of 8080.
The client listens for a specified set of multicast-addresses and redistributes them to other clients via the server. Simultaneously it redistributes received Multicast messages from other clients that it receives from the server.
NOTE do not put more than one client on a subnet as this might lead to message loops.
node.js v20.15 ltsnpm
You may simply run
npm run buildthis will clean the directory, install dependencies via npm and compile typescript files to ./build.
The Client is configured via a handful of environment Variables
INTERFACE_ADDRESSspecifies the ip-address on which it listens for multicastSERVER_ADDRspecifies the URL of the distribution-server.TARGETSis a comma seperated list of multicast-addresses and ports for which the client listens
For Example:
TARGETS="225.0.1.1:5004,225.0.1.2:5004" INTERFACE_ADDRESS="172.16.220.13" SERVER_ADDR="ws://127.0.0.1:8080" node build/client.jsvia Docker:
Server:
docker run --net=host --rm --name server -e PORT=8080 purgatorio-server:latestClient:
docker run --net=host --rm --name client -e TARGETS="225.0.1.1:5004,225.0.1.2:5004" -e INTERFACE_ADDRESS="172.16.220.13" -e SERVER_ADDR="ws://127.0.0.1:8080" purgatorio-client:latestPre-Built Images (linux/amd64) for both Client and Server can be found here: