Go to file
HimbeerserverDE 9c5f827fc8
Ignore RPC packets on error
2021-02-28 21:39:53 +01:00
.gitignore Resolve conflicts properly 2021-01-24 15:18:10 +01:00
LICENSE Add second copyright notice 2021-01-16 22:32:06 +01:00
README.md Make command prefix configurable 2021-02-28 19:56:44 +01:00
active_object.go Fix #31 2021-02-22 08:15:49 +01:00
auth.go Add ban feature 2021-02-28 13:12:28 +01:00
ban.go Accept IP addresses in ban commands 2021-02-28 13:33:30 +01:00
blockdata.go Fix #31 2021-02-22 08:15:49 +01:00
chat.go Make command prefix configurable 2021-02-28 19:56:44 +01:00
command.go Swap hands on redirect 2021-02-25 09:11:37 +01:00
config.go Make command prefix configurable 2021-02-28 19:56:44 +01:00
end.go Merge branch 'main' into main 2021-01-24 15:11:23 +01:00
go.mod Swap hands on redirect 2021-02-25 09:11:37 +01:00
go.sum Swap hands on redirect 2021-02-25 09:11:37 +01:00
hand.go Only send meta caps if hand list has been modified by MT 2021-02-25 12:16:22 +01:00
igutils.go Accept IP addresses in ban commands 2021-02-28 13:33:30 +01:00
init.go Add ban feature 2021-02-28 13:12:28 +01:00
itemdef.go Fix map2array 2021-02-25 11:21:32 +01:00
listen.go Cache player inventories 2021-02-23 20:09:00 +01:00
media.go Send hand without capabilities in ItemDefs 2021-02-21 15:40:04 +01:00
multiserver.go Revert "Hand update fixes (still not working)" 2021-02-22 17:09:16 +01:00
nodedef.go Fix #30 2021-02-28 11:47:30 +01:00
peer.go Cache player inventories 2021-02-23 20:09:00 +01:00
player.go Use Peer.Username method 2021-02-08 22:06:08 +01:00
privs.go Use Peer.Username method 2021-02-08 22:06:08 +01:00
proxy.go Update to Go 1.16 2021-02-20 18:06:34 +01:00
redirect.go Revert "Add hand list updates (not working)" 2021-02-22 17:10:39 +01:00
rpc.go Ignore RPC packets on error 2021-02-28 21:39:53 +01:00
signal.go Move everything to main package 2021-01-24 13:00:26 +00:00
storage.go Move everything to main package 2021-01-24 13:00:26 +00:00

README.md

multiserver

Minetest reverse proxy supporting multiple servers and media multiplexing

Credits

This project was made possible by anon55555's Minetest RUDP package.

Modchannel RPC API

There is a modchannel-based RPC API for minetest servers: click here.

Installation

Go 1.16 or higher is required

go get github.com/HimbeerserverDE/multiserver

Updating

go get -u github.com/HimbeerserverDE/multiserver

How to use

Note: This shouldn't be used with existing minetest servers without moving authentication data (not the database files) to the proxy and then deleting the auth databases on the minetest servers! Not doing so can cause proxy <-> mt_server authentication to fail.

Running

The go get command will create an executable file in ~/go/bin/multiserver. This file should always be run from the same working directory. If you don't do this, the program will be unable to read the old data and will create the default files in the new working directory.

Configuration

The configuration file is located in WORKING_DIR/config/multiserver.yml

  • Default config file
host: "0.0.0.0:33000"
servers:
  lobby:
    address: "127.0.0.1:30000"
default_server: lobby
force_default_server: true

host

Type: String
Description: The IP address and port the proxy will be running on

player_limit

Type: Integer
Description: Maximum number of concurrent connections, unlimited if not set

servers

Type: Dictionary
Description: List of all servers

servers.*

Type: Dictionary
Description: Contains server details

servers.*.address

Type: String
Description: The IP address and port this server is running on

servers.*.priv

Type: String
Description: If this is set, players need this privilege (on the proxy) to connect to this server.
Leave this empty to require no special privilege. Note that this only affects the #server command. This means that
players can still be connected to this server if it is the default server, a minetest server requests it
or if a different command is used.

default_server

Type: String
Description: Name of the minetest server new players are sent to

force_default_server

Type: Boolean
Description: If this is false known players are sent to the last server they were connected to, not to the default server

admin

Type: String
Description: The "privs" privilege is granted to the player with this name on startup

csm_restriction_flags

Type: Integer
Description: The CSM restriction flags, default is none
* 0: No restrictions
* 1: No CSM loading
* 2: No chat message sending
* 4: No itemdef reading
* 8: No nodedef reading
* 16: Limit node lookup
* 32: No player info lookup
* 63: All restrictions
To set multiple flags at the same time add the corresponding numbers

rpc_reconnect_interval

Type: Integer
Description: Number of seconds between RPC reconnection attempts, default is 600

media_refetch_interval

Type: Integer
Description: Number of minutes between media refetching, default is 10

disable_builtin

Type: Boolean
Description: If this is true the builtin chatcommands and the redirect error message are deactivated, default is false

command_prefix

Type: Boolean
Description: Prefix of proxy chat commands, default is #