/crlserver

C RogueLike SERVER

Primary LanguageC

crlserver
=========

crlserver is a roguelike server in the spirit of dgamelaunch, but it
manages users logins and scores for far more than just nethack.

Features
--------

   * It's not GPL'ed
   * Multiple game
   * Simple configuration
   * SQL or LDAP authentification backend
   * Simple and clean UI
   * Easy username filtering

TODO
----

   * Support of ttyrec for games record
   * Support of ttyplay for real time games watching
   * Configurable menus via the configuration file, like dgamelaunch does

Known working plateforms
------------------------

   * OpenBSD i386, amd64 and loongson
   * Ubuntu i386 and amd64

Compilation
-----------

   * Edit 'pathnames.h', to suit your needs (there is documentation inside)
   * Use 'make' or 'gmake' depending on your plateform
  
Installation
------------

   * Put the binary somewhere and the content of 'data' in the directories
     you have specified in 'pathnames.h'.
   * Create the 'playground' and 'userdata' directories.
   * Create a user (eg: 'crlserver')
   * Edit your sshd_config and add those lines:
      Match User crlserver
            ForceCommand /path/to/crlserver
   * Alternatively you can use telnet or put crlserver as a login shell
     but it's not the recommended way.
   * Create a crlserver configuration file and put it in /etc or crlserver's
     home
   * It works (or if not, mail me) !

Configuration
-------------

Grab the sample.conf in 'data' and change the values to what you want.

    game nethack {
	   longname    = "NetHack"
	   version     = "3.4.3"
	   description = "This is the vanilla version of NetHack"
	   key         = "n"
	   path        = "/usr/games/nethack"
	   params      = {"-u","%user%"}
    }

When the string '%user%' is found somewhere in the variables 'env' and 'params',
it is automatically replaced by the username at login-time.

You can do the same thing for text editors.

    editor rledit {
	   longname    = "RogueLike Editor"
	   version     = "?"
	   description = "This is an example"
	   key         = "r"
	   path        = "/usr/local/bin/rledit"
    }