ospaceteam / outerspace

Outer Space is turn-base 4X multiplayer on-line strategy game.
GNU General Public License v2.0
20 stars 9 forks source link

server howto #271

Open ycantin opened 5 years ago

ycantin commented 5 years ago

Hi, It would be nice to have a document explaining server management commands (setup, start, status, housekeeping).

temuchin- commented 5 years ago

It is somewhat explained in the readme.md file.

I have my own server config guide w/ how-to's on things like changing ports, or making custom configs. I will look into porting this into an easy to read complete version, and will consider the readme.md as the down and dirty how to get it going version.

temuchin- commented 5 years ago

So to do the HowTo, we need to know how 'howto' has changed, example. python2 ./tools/osclient_cli.py --starttime admin --configdir /place/foo/.outerspacefoo

was used to manually start a game. Traceback (most recent call last): File "./tools/osclient_cli.py", line 131, in with open(os.path.join(options.configDir, "token"), "r") as pw_file: IOError: [Errno 2] No such file or directory: '/home/frank/.outerspace_gameC/token'

we have a new authentication method that is more secure. Stuff breaks.

dahaic commented 5 years ago

@temuchin- the example command you provided does not seem to be the one triggering your output. As configdir differs between the two. Also it might be misunderstanding of what the command --starttime does. It starts time in all galaxies. It's not command to create a server. So your output shows you haven't initiated server in that provided configdir, yet.

dahaic commented 5 years ago

@ycantin thank you for this pointer. I have tried to describe it in README file, but I have just realized it's slightly outdated.

You do not need --starttime as no galaxy is generated right away. Thus booking system is the way to create galaxies, and that will work exactly as the official server. Apart from starting the server, and ticking the server, backup and upgrade are not documented. And I have just found out the build in capability (of backup restore) is broken. I will update it this week.

Backup

python2 ./tools/osclient_cli.py --backup /path/to/backup/name

Will save data to (multiple) files /path/to/backup/name-<datatype>.osbackup.

Restore

Restart server with

python2 ./outerspace.py server --restore /path/to/backup/name

Upgrade

When server code is update to new version, there are usually steps necessary to migrate data, be it conversion to different type, cleanup of obsoleted attributes or addition of new ones. To trigger upgrade routine, start server with

python2 ./outerspace.py server --upgrade

Note that code in all upgrade routines should be idempotent, so there shouldn't do any harm to run upgrade routines more than once. (This is tested only between released versions, I do not have any type of CI set up to guarantee all this works with every code update)

temuchin- commented 5 years ago

Ignore my previous comment, original problem came from an upgrade 0.5.74 (so yeah hot patch)

Did and install of 0.5.74-1 (fresh install) but had PiBKaC errors, due to being up late and i started typing wierdly, i may have been on muscle relaxers due to a pulled muscle, uggh.

Long story --- short. woke up fresh retyped everything correctly, it works on a fresh install. I assume it works on an update to 0.5.74-1 (too lazy to test atm).

The commands you gave will serve well for the howto.

step 1 trawl the .py commands for parser (done) step 2 do it again and document all parsed command, maybe even add a help parser to display this (i remember there was one, and it still might be there i don't remember atm))