1. When making a thread, please tag your thread accordingly using the menu to the left of the textfield where you name your thread where applicable. Server Advertisements and Mod Releases should be contained to their respective subforums.

Tutorial Starbound Server Management Console Release

Discussion in 'Multiplayer' started by Icer, Dec 16, 2013.

  1. Icer

    Icer Tentacle Wrangler

    Icer's Starbound Server Management Console

    Like many people hosting servers for Starbound I found myself wanting more details about various things happening on my server.

    Short version: This is a wrapper around their current server system and parses the console for various lines that indicate player / world / server status. The TCP Redirect feature enables access control to your server by enabling kicking and banning locally.

    I am open to reasonable suggestions for improvements / features that are not currently implemented with the understanding that the current console system I can access is still limited.

    If this has been useful to you and you want to buy me a drink, here is a link. Thank you.
    Donate

    Latest known compatibility with Starbound Release:
    'Beta v. Angry Koala' '628' '428'

    Download
    https://googledrive.com/host/0B5a6CpXW311jVHZ0RTRFUzNGTFE

    v0.46
    1PM EST 12/31/2013

    • More bug fixes
      • Added more safety features to prevent accidental disconnects
    v0.45
    7PM EST 12/30/2013

    • Commands
      • Admins
        • Commands no longer require Admin Password!
        • Messages are displayed regarding the success of the command
        • "Command not found" no longer sent to client when valid command is used
      • All players
        • /players
          • Prints out a list of currently connected users
        • /version
          • Prints out the version of the server
    • Server status JSON
      • Servers can now be queried for their status with an HTTP call
      • JSON includes
        • Player Count
        • List of players
        • Console version
        • Server IP
        • Server version
        • Server Status
        • Server Name
          • Set in ISSMConsole.properties file; SERVER_NAME={name of server}
          • Only currently used in status JSON
        • Server Message
          • Set in ISSMConsole.properties file; SERVER_MESSAGE={server message}
          • Only currently used in status JSON
    v0.44
    1230PM EST 12/30/2013

    • Global announce when players join and leave
      • Disable it by editing the ISSMConsole.properties file and setting "ANNOUNCE_PLAYERS_JOINING_LEAVING=false"
    • More bug fixes
      • Long packets are now properly encoded, this fixes MOTD length bug
      • Player file properly created again
    v0.43
    930AM EST 12/30/2013

    • Packet Injection
      • Global system messages
        • Server restart broadcast countdown
      • Message Of The Day
        • Set it by editing the ISSMConsole.properties file and setting "MESSAGE_OF_THE_DAY={Whatever_you_want_to_say}"
      • Custom messages sent when a client is denied access
        • Not on white-list
        • Banned temporarily
        • Banned permanently
    • Restart on fatal error
      • Added 4 more errors to the restart list
    • More bug fixes
      • Multiple worlds should no longer appear

    Features
    • Headless mode
      • Start ISSMConsole by adding the argument -headless, ie. java -jar /path/to/ISSMConsole.jar -headless
      • No GUI prompts, everything run through command line
    • Web interface
      • Can be run on a local server as well as a remote one
      • Port can be changed in the .property file
    • Players
      • Count
      • Names
      • IP Address
    • Player Removal
      • Kick
      • Ban for 1 hour
      • Ban for 1 day
      • Ban permanently
    • Failed Logins
      • Timestamps
      • IP Address
      • Reason
        • Banned
        • Not on whitelist
        • Invalid password
    • Admin slash command, requires user to be a server admin
      • /kick {player}
        • Removes player from server
      • /banhour {player}
        • Bans player for one hour
      • /banday {player}
        • Bans player for one day
      • /ban {player}
        • Bans player permanently
    • Chat
      • Logs usernames and messages
      • Timestamps
    • Worlds
      • Current list of loaded worlds
    • Server
      • Displays console log
      • Different log events colored
      • Automatic timed restarts
        • Warnings are set to clients with a countdown
      • Message of the day
      • Global messages when players connect / disconnect

    Upcoming features
    • GUI for changing server config files
    • Better support for adding / removing from whitelists and ban lists
    • Done Admin commands typed from a client
    • Player stats, time spent on server, etc
    • Done Possible insertions of server chat message (player logins, etc)
    • Done Message of the day
    • Done Restart of the server without closing the management console
    • Done Possibly a headless version to be placed on hosts without a graphical interface (Depends on user demand)
    • More configuration options for the TCP redirect, i.e. different ports
    Installation
    Requires Java7 installed
    • Download jar file 'ISSMConsole.jar'
    • Double click to run, or open a command window and type java -jar "path_to_Jar/ISSMConsole.jar"
    • A dialog box will prompt you for the installation path of the starbound_server.exe
      • (Windows) Steam_directory/SteamApps/common/Starbound/win32/starbound_server.exe
        • This will be auto-filled in for you if you place the jar in the /Starbound/win32/ directory
      • (Linux) Steam_directory/SteamApps/common/Starbound/linux64/launch_starbound_server.sh
    • ISSMConsole will scan your starbound.config file and request permission to make the needed port adjustments
    • Thats it! Sit back, relax, and enjoy playing the game with friends
    Screenshots

    [​IMG]

    Cavets

    While it is a Java application and should be able to run on any Operating System (Windows, Linux, Mac), I have only tested is on Windows 7 so far.

    It has been reported to be functioning on the following systems, thanks supernet2!
    • Windows 7 32/64bit
    • Windows 7 home premium 32/64bit
    • Windows vista home premium 32/64bit
    • Windows 2008 RC2
     
    Last edited: Dec 31, 2013
  2. Icer

    Icer Tentacle Wrangler

    Important Notes
    • Web GUI
      • If you want to access it from a remote machine, you have to set up port forwarding just like for Starbound.
        • The default port is 21005, although this can be changed in the ISSMConsole.properties file
    • Whitelist
      • If any IP addresses are entered in the whitelist, it is activated. To deactivate the whitelist, simply delete all the entries
      • Whitelist is contained in the ISSMConsolePlayerList.xml
      • Format is as follows: <AllowedPlayer>19.63.215.189</AllowedPlayer>
    • Server Admins
      • All IPs added as follows are local server admins, <ServerAdmin>19.63.215.189</ServerAdmin>
      • To activate the admin commands, a password need to be set up
        • Password provides greater security as currently we are unable to determine which IP a chat came from if there are multiple people with the same password online
        • Recommend it be fairly short as it will need to be typed often
        • <AdminPassword>abc</AdminPassword>
        • The password is appended to all slash commands
          • ie, "/kick Icer abc"
    • Files
      • Two files will be created by the application, ISSMConsolePlayerList.xml and ISSMConsole.properties. These are placed in the same directory as the .jar file
        • ISSMConsolePlayerList.xml
          • Contains xml formatted whitelist and ban list. Sample xml is attached in comment fields
          • If you make any changes to the file while the server is running, simply hit the Reload from File button
        • ISSMConsole.properties
          • Simple properties used by the application. Delete this file to reset the Management Console to its starting configuration
    • TCP Redirection
      • Required for kicking and banning
      • Changing this value will not take effect until the application is restarted
      • If you use this feature, you MUST CHANGE the server port in the starbound.config file to 21024
        • As of version 0.32 a automatic option is available to change the port
      • To connect to the server from a machine on the same client it is necessary to include the port as part of the address, i.e. 68.25.198.217:21025

    Change Log

    v0.44
    1230AM EST 12/30/2013

    • Global announce when players join and leave
      • Disable it by editing the ISSMConsole.properties file and setting "ANNOUNCE_PLAYERS_JOINING_LEAVING=false"
    • More bug fixes
      • Long packets are now properly encoded, this fixes MOTD length bug
      • Player file properly created again
    v0.43
    930AM EST 12/30/2013

    • Packet Injection
      • Global system messages
        • Server restart broadcast countdown
      • Message Of The Day
        • Set it by editing the ISSMConsole.properties file and setting "MESSAGE_OF_THE_DAY={Whatever_you_want_to_say}"
      • Custom messages sent when a client is denied access
        • Not on white-list
        • Banned temporarily
        • Banned permanently
    • Restart on fatal error
      • Added 4 more errors to the restart list
    • More bug fixes
      • Multiple worlds should no longer appear
    v0.42
    10PM EST 12/27/2013

    • Added timed server restarts
      • Disabled by default
      • Set it by editing the ISMConsole.properties file and setting "MINUTES_BEFORE_SERVER_RESTART={minutesBetweenRestarts}"
    • Added error HTML for incompatible browsers
    • Set the default display url from localhost to 127.0.0.1 for people who didn't have localhost in their hosts file
    • Added admin for ipv6 localhost as well
    • Removed Web UI bug that could cause users to not get any server data
    • More bug fixes

    v0.41
    630PM EST 12/26/2013

    • Added Security to web interface
      • Access to the console now requires the requesting IP to be set as an ServerAdmin in the ISSMConsolePlayerList.xml
        • <Adminlist>
          <ServerAdmin>56.23.182.23</ServerAdmin>
          </Adminlist>
        • Access is automatically granted to requests coming from 127.0.0.1 (The local machine)
          • If you run the server and the web client from the same machine, you don't have to worry about the authentication
      • Security can be disabled by editing the ISMConsole.properties file and setting "WEB_SECURITY_ENABLED=false"
    • Web port can be changed by editing the ISMConsole.properties file and setting "WEBCONSOLE_LISTEN_PORT={PortNumber}"

    v0.4
    https://googledrive.com/host/0B5a6CpXW311jM3lIRUZ1VDdBUHM/ISSMConsole.jar
    11PM EST 12/25/2013

    • ISSMConsole moved to web interface
    • Headless mode available
    • Fixed possible issues if 2 consoles were started
    • Added server side events into interface
    • All options ported over to web
    • Confirmed compatibility with 'Beta v. Angry Koala' '628' '428'

    v0.33
    https://drive.google.com/file/d/0B5a6CpXW311jdE1fb1ZhTW9vM3c
    1PM EST 12/17/2013

    • Removed a potential deadlock from the code
    • Fixed a possible memory leak
    • Added console messages so players could better diagnose problems
      • Startup messages / warning
      • Admin command results / errors
        • Please note that the client will still say "No such command", but ISSMConsole will act on it
    • Added more automatic configuration if a user is running server from win32
    v0.32
    12am EST 12/17/2013

    • Added automatic server port adjust, requires owner confirmation
    • Fixed bug where servers would not get terminated resulting in multiple servers running
    • Added Admin slash command, password and whitelist protected
      • /kick {player} {password}
        • Removes player from server
      • /banhour {player} {password}
        • Bans player for one hour
      • /banday {player} {password}
        • Bans player for one day
      • /ban {player} {password}
        • Bans player permanently
      • Please note that the client will still say "No such command", but ISSMConsole will act on it
    v0.31
    8am EST 12/16/2013

    • Removed the port forwarding 21026 on the router to a config file change on the server
      • Edit path_to_Steam_directory\SteamApps\common\Starbound\starbound.config
      • Change the "gamePort" value to 21024
      • Leave the router port forwarding at the default 21025 using the directions found on the forum
      • The consequences of making the change in the file vs the change in the router is that it effects both the server and any clients running on the box. As such, it is necessary to add the port number when connecting to the server from a client on the same machine, i.e. 68.25.198.217:21025
    v0.3
    11pm EST 12/15/2013

    • Public Release
     
    Last edited: Dec 30, 2013
  3. Icer

    Icer Tentacle Wrangler

    reserved for expansion
     
  4. Inga

    Inga Void-Bound Voyager

    Damn dude nice!
    I'll check this out and report back! :)
     
  5. Inga

    Inga Void-Bound Voyager

    Really nice!
    I really like the simple UI!
    Try theming it?
     
  6. SpikeTheSpaceCowboy

    SpikeTheSpaceCowboy Tentacle Wrangler

    Oh wow this is really well done. I'm going to test it out in the morning. Hopefully this will allow me to stop development on my admin tools project, just don't have the time :p

    Are you at all interested in posting the project on GitHub? Would like to take a look at the code if at all possible.
     
  7. Cyb3rfr3ak

    Cyb3rfr3ak Scruffy Nerf-Herder

    Damn.. no GUI on my VM for Starbound :/
    This looks pretty good!
     
  8. Kane

    Kane Subatomic Cosmonaut

    Darn wish there was a none gui one.
     
  9. Volgarenthor

    Volgarenthor Poptop Tamer

    Unless you also have a web-panel access feature planned for servers hosted off site, I don't see this being anymore than a personal server controller. GUI looks good, and features list is rich, but it wont work very well for a network or dedicated server operating out of a DC or remote location.

    *sighs, and continues looking*

    Hopefully you update it in the future to account for the above mentioned issues.
     
  10. Dipdac

    Dipdac Space Hobo

    know how to get this to work while running the server as a service (windows 7)?
     
  11. Shirou

    Shirou Aquatic Astronaut

    Really nice release! But i am having a problem when launching the tool it just keep saying "Loading" nothing is happening.
     
  12. bkg

    bkg Subatomic Cosmonaut

    Have get it runnig, need i report on a root, 21025 to 21026 so when some one connect he goes to (extern) 21025 <-> (reroting) 21026/Tool ? And when yes, i get allways a Dont know Server version :)

    Update 11.11time.
    Have make a iptabel rule. But now i get "Join faild! Unknown Server version.
     
    Last edited: Dec 16, 2013
  13. Shirou

    Shirou Aquatic Astronaut

    Problem is i can't setup port forwarding as my server is hosted at a hosting company/data center so not sure how to get this to work without forwarding the ports.
     
  14. bkg

    bkg Subatomic Cosmonaut

    Use your iptabels :) what os you use ?
     
  15. Shirou

    Shirou Aquatic Astronaut

    Windows
     
  16. bkg

    bkg Subatomic Cosmonaut

    Ok, great get it working. :) Werry werry nice. have make some system tweeks. But run now smove like hell.
     
  17. GrayAu

    GrayAu Space Hobo

    Do I keep my port 21025 open for people to access, and change it so theServer runs on 21026?
    It is my thought that people connect through 21025 and are redirected through the server tool to 21026 and then if i kick/ban someone they are removed from said redirection effectively making them unable to connect.
    Do I have this correct?
     
  18. bkg

    bkg Subatomic Cosmonaut

    Than use, your Firewall settings, to make a port forwarding, in windows real simple.
     
  19. GrayAu

    GrayAu Space Hobo

    oh sorry basically I don't get what you want me to do with the ports to enable the kick/ban options, thanks
     
  20. GrayAu

    GrayAu Space Hobo

    yeah this is my problem. Or i assumed that's what this meant.
     

Share This Page