Server Administration

From #openttdcoop wiki

Revision as of 09:30, 4 August 2010 by Ammler (Talk | contribs) (www.openttdcoop.org: down)

Jump to: navigation, search

On this page all the needed commands are shown to administrate a Server via SSH and especially those for administrating the #openttdcoop Servers

Servers / Directories

ps.openttdcoop.org

mz.openttdcoop.org


Check internal member board for access infos.

Connecting to the server

  • Connect to the server with ssh
  • Issue command screen -x
  • Issue quit -> ends game without saving
  • Issue exit -> ends game with save

Starting the Server (via autopilot)

  • Start a new game: ./autopilot.tcl new | tee logs/<gamenr>.log
  • Load the default savegame (save/game.sav): ./autopilot.tcl load | tee logs/<gamenr>.log
  • Load another savegame: ./autopilot.tcl load save/game/path.sav | tee logs/<gamenr>.log

Reloading the Server (via console)

  • configure settings with Progman's Config Tool
  • save current game with save game$Number (Recommend to add a number, so you can find it better for archiving.)
  • Reload server: newgame

Editing the openttd.cfg

Common things should be edited with the Configuration Tool: http://openttdcoop.org/config/

Before you start a new game, the config file has to be edited. Map-Size, diff_custom, NewGrfs and need to be set.
  • To edit openttd.cfg via SSH you should use vim: vi openttd.cfg
  • To search for a string change to search-mode with ? and type your search string, with n you can jump to next result.
  • To edit a value you have to change to the insert mode with i, then you can edit the values
  • To save and leave vim, leave any mode first with ESC, and type :wq (: = command mode)
  • To leave without saving type :q!
  • Some values are a bit confusing, i.e. diff_custom, you can find details about this value on the openttd.org wiki page

To upload a file to the publicserver (usually a .sav), use http://ps.openttdcoop.org/public/config/files.php

Updating the server

Easy way via script (updates automatically to the last nightly):

  • ./update

Patch the server, if needed (see below for details). Make sure the patches apply cleanly. Otherwise fix them or skip them.

  • patch -p0 < nomod.diff
  • patch -p0 < bb2.diff
  • patch -p0 < magic_bulldozer.diff
  • patch -p1 < patches/keepBlitterForDedicated.p1.diff
  • make bundle

Did the compile work? If so, copy the files:

  • cp -Rf bundle/* autopilot
  • cd autopilot
  • ./autopilot.tcl load | tee -a logs/<gamenr>.log

Manual update

  • svn up rREV

check, if all files have updated without conflicts (prefix "C"), if there are lines with "C":

  • svn revert . -R and reapply the patches

on manual update, you need write the finger manually:

  • ./update -w

Patching Server

The update script did revert the server build to clean trunk, but maybe we need to patch our server: the patches need to be multiplayer safe, no information can be saved in the savegame. We store the patches in subfolder patches.

  • nomod.diff: it does tell openttd to compile without adding "M" to the version
  • bb2.diff: logging the docommands
  • magic_bulldozer.diff: enables switch with rcon

First, you apply one patch (patch -p0 < patch.diff), if there are no errors, you take the next, if there are errors, you revert the apply with -R (patch -Rp0 < patch.diff) and ask the patch creator to update or try self. If all patches are applied, you need to remake: make bundle (no configure). copy the bundle to autopilot: cp -Rf bundle/ autopilot/

Support for Autostart and other tools

To support other tools to update client or homepage with current used revision etc., we need to have the following tags on our server:

  • rev: currently used SVN trunk revision
  • grfversion: currently used #openttdcoop NewGRF package version
  • patch.url: currently used patch (mostly for dev server, link to TT-Forums)
  • $OS.url: link to the binary (if it isn't a nightly)

Those "Tags" are located in http://<server>/<port>/ They can be configured over the webconfigurator: config/urls.php

Using rcon

Some values have to be change in runtime, you can do this really easy with Remote Connection in-game. If you are connected to the Server toggle the Console with ^ and use commands:

  • To pause/unpause the game: rcon password pause/unpause
  • To change a patch setting: rcon password "patch patch_setting value" (don't forget the quotation marks)
    • To view a value of a setting: rcon password "patch patch_setting"
    • Some settings use namespaces: i.e. "patch yapf.rail_use_yapf"

Archiving a PublicServer Game

If a game is done do the following step via IRC: !transfer <num> localsave.sav (might be game.sav) then add a Report to the Wiki (if you don't have time, add at least the date and the used revision!)

Powered by MediaWiki