Create PsAdmin framework

PsAdmin uses a dedicated TCP port to allow for remote queries and
command to be sent to the running World/Login server. Commands are a
single command followed by zero or more arguments.

Commands may require access to the ActorSystem, so they will get their
own dedicated actors to be able to handle the different messages
required that can be sent in response to a query. The return line is in
JSON to allow for easy parsing by applications, such as web servers.
An interactive client is easy as being able to parse json and buffer
command input.

Some basic commands are implemented for now:

* shutdown - kills the actor system
* list_players - gets a list of players on the interstellar cluster
* dump_config - get the running config
* thread_dump - dumps all thread backtraces (useful for prod debugging)

More advanced commands like kick/ban will require additional testing.
This commit is contained in:
Chord 2020-01-26 02:04:17 +01:00
parent ceb58ed39a
commit 82e8840176
16 changed files with 418 additions and 7 deletions

View file

@ -119,7 +119,7 @@ ServerType = Released
# Important: Must be different from the worldserver.ListeningPort. Ports below 1024 are
# privileged on Linux and may require root.
# Range: [1, 65535] - (UDP port 1, UDP port 65535)
# Default: 51000 - (Listen on UDP port 5100)
# Default: 51000 - (Listen on UDP port 51000)
ListeningPort = 51000
@ -134,6 +134,22 @@ ListeningPort = 51000
CreateMissingAccounts = yes
###################################################################################################
# PSADMIN SETTINGS
###################################################################################################
[psadmin]
# ListeningPort (int)
# Description: The TCP listening port for the server admin interface.
# Important: Must be different from the worldserver and loginserver ListeningPort.
# Ports below 1024 are privileged on Linux and may require root.
# NEVER EXPOSE THIS PORT TO THE INTERNET! CHECK YOUR FIREWALL CONFIG.
# Range: [1, 65535] - (TCP port 1, TCP port 65535)
# Default: 51002 - (Listen on TCP port 51002)
ListeningPort = 51002
###################################################################################################
# NETWORK SETTINGS
###################################################################################################