( search forums )
More Intricate Server Manager
Soldat Forums - Server Talk - Server Help
Ockham
January 24, 2005, 6:43 am
I was thinking of creating a more intricate server manager that covered things like loading new ini files from a profile, and loading different map lists. Does any such manager exist already? Right now I'm just using Bash scripts which swap out ini files and maplists, but I want to make something better.
Does anyone have any additional ideas about this, or know of any other venture to do it?
Can anyone point me in the direction of how the server messaging done by the admin win application works?

Futile
January 24, 2005, 10:55 pm
You might want to talk to the guy behind SARJ on how server messaging is done. http://sarj.freeserverhost.com/

I have a lot of requests for a new server admin, you can read them all here: Suggestion for Soldat Server and Soldat Admin

You're using bash to swap ini-files on the fly? How do you make the server re-read the files without restarting it?

How are you planing to go about with this project? What language are you going to code it in? I am very eager to get a new admin-interface out there, so I would love to join in on this.

Ockham
January 25, 2005, 1:58 am
quote:Originally posted by Futile
You're using bash to swap ini-files on the fly? How do you make the server re-read the files without restarting it?


Sorry I wasn't clear here, I'm using bash scripts to swap out files quickly while I restart the server. I'm not hotswapping. I wish I could hotswap though.

quote:
How are you planing to go about with this project? What language are you going to code it in? I am very eager to get a new admin-interface out there, so I would love to join in on this.


Probably some sort of opensource project. Language is flexible, problem something easy to use, like Python, but I'm open to suggestions. I'm definitly not looking to make a GUI, I want to make some sort of admin too serverside for starters, but eventually maybe make a gui client that communicates with the server backend.

What do you think?

Futile
January 25, 2005, 11:50 am
I think Python or Java would be best for something like this, yes. If you only want a server side tool, then I suppose python would indeed do the trick. I havent tried running a python environment on a windoze machine yet, so I don't know how much hassle it would be for the user. Java, on the other side, is widely implemented, well known and easy to do in pretty much all environments.

This is what I'm thinking:

Writing a server side tool to run next to the soldat-server.
Writing a proper back-end for that tool, to be easily accessed from GUI/commandline/networked GUI
Giving the tool abilities that soldatserver (and todays admin-tools) lacks. (ini-editing, swaping, proper logging, statistics etc etc.)

The remote admin GUI is very important for me. I believe many ppl do like me, and runs soldat on a dedicated physical machine. Remote administration is easier for the windows people if they dont have to use SSH/commandline. A networked GUI front-end is a must.

And if you want my help, I insist on GPL-licensing our code. Making it free (not just open) is an absolute must.

Ockham
January 25, 2005, 6:39 pm
I think the best approach would be to use a Python, or maybe even PHP server backend tool. Then we can use Java to create a gui application (using swing), and deploy it using Java WebStart, that way people can autoupdate it. I'm guessing the GUI would connect to the serverside app, through tcp/ip, and the serverside app would connect to the soldatserver.

ini-editing is a must, what also is, is profiles, so you can quickswap between gametypes. It's the most annoying thing when you are trying to change game types and half your friends stop playing.

With statistics though, how do you verify the statistics namespace, or is it just prone to impersonations, which should be dealt with by the server admin?

quote:
And if you want my help, I insist on GPL-licensing our code. Making it free (not just open) is an absolute must.


GPL is fine by me, I just want to make this so I can have more fun with my soldat dedicated server, and I don't see why other people shouldn't be allowed to have such fun for free also.

Futile
January 25, 2005, 8:38 pm
quote:Originally posted by OckhamI think the best approach would be to use a Python, or maybe even PHP server backend tool. Then we can use Java to create a gui application (using swing), and deploy it using Java WebStart, that way people can autoupdate it. I'm guessing the GUI would connect to the serverside app, through tcp/ip, and the serverside app would connect to the soldatserver.


We could do it this way. But it would make it hard for the average user to install and use the software. But then again, perhaps serious soldat admins aren't "average"? I would prefer having an automatic installer, and making the software as independent as possible (no need for external apps like apache/php/mysql or whatever). However, "my" way is a lot more troublesome and I believe it might be a bit overkill. Let's do it your way.

quote:
ini-editing is a must, what also is, is profiles, so you can quickswap between gametypes. It's the most annoying thing when you are trying to change game types and half your friends stop playing.

Agreed.
quote:
With statistics though, how do you verify the statistics namespace, or is it just prone to impersonations, which should be dealt with by the server admin?

I was talking about server stats, not gamestats. I want to have easy access to information about uptime/connections/connection errors/number of clients/etcettera, etcettera and so on and so forth. ;-)

I dont want bare logs though, but also have them automagicaly rendered as nice bars and diagrams. Using a python/apache/php/mysql solution makes this very easy to implement.
quote:
quote:
And if you want my help, I insist on GPL-licensing our code. Making it free (not just open) is an absolute must.


GPL is fine by me, I just want to make this so I can have more fun with my soldat dedicated server, and I don't see why other people shouldn't be allowed to have such fun for free also.

Thank you. That is indeed the best incentament for creating software.

Ockham
January 25, 2005, 10:01 pm
I just found a Soldat Project that is making a server-stats device in php. Maybe we can work off of that to make something more advanced. I will look into it further.
Solstat

n00bface
January 25, 2005, 10:16 pm
The way I made my admin client was using TCP sockets in Delphi to connect to the server through it's IP and port. Writing to the socket is pretty basic. When you first connect, just have it send the password. Admin commands are in the same format as the socket sends to the server.

For example, if I was connecting to my server and just sending raw data to send to the socket, it would be something like this:

Admin connected.

I would then write "adminpassword" to the socket, "adminpassword" being the admin password I have set in soldat.ini.
To give admin commands, I would simply write the exact command to the socket. For example, I want to say "Hello" through a server message, I would simply write "/say Hello" to the socket.

When you make the admin client, there's one thing that I couldn't figure out for about a week. Sometimes the client would get disconnected just like the normal soldat admin. Have your client detect when it says "Admin disconnected." and automatically send back the admin password, or else you will get disconnected a lot when other people disconnect (This was only a problem for me 'cos I had an IRC bot relaying all server info into a channel.)

Good luck with it.

Also, one other thing I forgot - I never did figure out how to parse the REFRESH command, that's something you'd have to talk with the maker of SARJ to figure out. I know he's done most of it (Besides the timelimit or something.)

Futile
January 26, 2005, 12:16 am
quote:Originally posted by OckhamI just found a Soldat Project that is making a server-stats device in php. Maybe we can work off of that to make something more advanced. I will look into it further.
Solstat


That's great! I was just on my way to link you this site: http://dyn.u13.net:6080/

I belive the creator of the "Ultimate 13 Soldat Stats Scripts" is a member of this board. I read his "license" a while ago, and it was very egocentric and restrictive.

I haven't had time to check Solstat nor Soldat Stats Scripts properly, but atleast there are some work done, and thats always good. If we find the Stats Scripts to be really good, perhaps we can persuade him to go GPL.

I'll go see how Solstat seems now.

((n00bface - thank you!))

Ockham
January 26, 2005, 12:48 am
quote:Originally posted by Futile
That's great! I was just on my way to link you this site: http://dyn.u13.net:6080/

Yea actually I found that site too in my research, I will look into it more closely too.

Noobface: Thanks a lot, that should help us get a good start on things.

Futile
January 26, 2005, 12:59 am
I browsed the code of Solstat, and (as I suspected) parsing the logs are easy enough. I am not sure just how much logging the soldat server does though. But with a smart enough script we could probably do alot with the data given.

Drawing graphs and tables are also very doable. We could probably just lend a couple of functions from some statistics generator (webalizer or smthng similar) to do the rendering part. I've just turned logging on, on my private servers. I'll see how much work it will be to extract the figures we are interrested in.

Karvinen
January 28, 2005, 6:07 pm
Java uses 100% CPU, not good if you want to do something else when using the program.

n00bface
January 29, 2005, 3:15 am
No it doesn't, I'm running 3 different Java applications at the moment and my crappy system is working just fine.