Using BlueMap on Server-Networks (BungeeCord/Velocity)
You can use BlueMap on Server-Networks (BungeeCord/Velocity) and show all your maps from multiple server on a single webapp. There are multiple ways to achieve this.
General Setup
For all setups you will need to install BlueMap like normally on every game-server in your network that you want to render maps on.
Make sure that the map-configs are NAMED DIFFERENTLY across the entire network!
Since the map’s identifier is derived from the config-file’s name, you need to make sure that each map has a unique identifier!
(You can’t install BlueMap on the Proxy-Server directly, so don’t try that)
Using a combined storage
Either you have an SQL-Server to which you can connect from all your game-servers, or you have some way to access the same folder from them all (e.g. mounting a shared drive/folder). Either of them can be used to combine all the map-data from different servers.
Steps
- configure either the
storages/sql.conf
on all server to the same sql-server, or thestorages/file.conf
on all server to the same (shared) folder - configure all maps on all servers to use that storage
- choose one of those servers to be the server that will host the web-app.
On this server: create an extra map-config like here: “Hosting static maps” for each map that is on the other servers. (example below)
Now the maps from the other servers should be visible on the web-app of this one server.
Example
Assuming your servers/maps look like this:
server1/... s1_map1.conf s1_map2.conf server2/... s2_map1.conf s2_map2.conf
the maps are all stored on the same database … now if you want to see the maps from
server2
also on the webapp fromserver1
, then you need to add these files:server1/... s1_map1.conf s1_map2.conf s2_map1.conf <<- s2_map2.conf <<- server2/... s2_map1.conf s2_map2.conf
to your
server1
and the content of those two extra files should look like this:storage: "sql"
nothing else.
Live updates
If you want to have live updating markers and player-markers on all maps, turn on the write-markers-interval
and the write-players-interval
in each plugin.conf
on the other servers.
Or if you plan on hosting the entire map with an external-webserver you can reverse-proxy each maps live-interface to the correct game-server. See: External Webserver (File-Storage) and External Webserver (SQL-Storage).
Using an external-webserver and different storages
If you can’t store all maps on the same storage, you can also use an external-webserver to host the webapp, and just reverse-proxy all maps to the webserver on each of the game-servers.
Steps
- copy the webapp from one of the game-servers to the webroot of the external-webserver => Copy everything in
./bluemap/web
except the./bluemap/web/maps
folder - open the
settings.json
file that you just copied and add all map-identifiers to themaps
array (the name of the map-config-files on all game-servers without the.conf
ending, and special-characters are to be replaced with a_
) - configure your webserver so that it reverse-proxies all requests going to
/maps/<map-identifier>
to the webserver of the correct game-server
If that is all done correctly, you should now see the web-app with all your maps on the external-webserver.