261 lines
8.0 KiB
Plaintext
261 lines
8.0 KiB
Plaintext
# This is a sample dgamelaunch configuration file. Only bash-style comments
|
|
# are allowed, such as this. Each configuration option will be explained
|
|
# along with its default value.
|
|
|
|
|
|
|
|
# Global config variables:
|
|
|
|
|
|
# Max amount of registered users to allow. Has no effect if dgl was
|
|
# compiled with SQLite
|
|
maxusers = 64000
|
|
|
|
# Allow registration of new nicks? (yes or no)
|
|
allow_new_nicks = yes
|
|
|
|
# Max length for newly registered nicks. Must be less than 20.
|
|
# By default, NetHack only stores the first 10 chars of a name into
|
|
# the record/logfile.
|
|
maxnicklen = 10
|
|
|
|
# Set the default watching-screen sorting mode. Can be one of
|
|
# "unsorted", "username" or "idletime". Unsorted is the default.
|
|
#sortmode = "username"
|
|
|
|
# Path to a prepared chroot jail.
|
|
chroot_path = "/var/lib/dgamelaunch/"
|
|
|
|
# From inside the jail, dgamelaunch's working directory for rcfiles/ttyrec/etc
|
|
dglroot = "/dgldir/"
|
|
|
|
# Server ID string
|
|
server_id = "nethack.alt.org - http://nethack.alt.org/"
|
|
|
|
# From inside the jail, location of a banner file, the topmost line will be
|
|
# shown in submenus that cannot be defined separately.
|
|
# Some string substitution is done for the file:
|
|
# $VERSION replaced with "dgamelaunch v" + dgl version number.
|
|
# $SERVERID replaced with the server_id string, as defined above.
|
|
banner = "/dgl-banner"
|
|
|
|
# The following two options are fairly insecure. They will force us to
|
|
# load the password/group database into memory while still having root
|
|
# privileges. Replace them with shed_uid/shed_gid entries as soon as
|
|
# possible if you decide to use them. dgamelaunch will inform you of
|
|
# the uids/gids corresponding to your choices when it loads.
|
|
#
|
|
# Note that shed_uid and shed_gid will always take precedence over
|
|
# shed_user and shed_group if they are specified.
|
|
|
|
# shed_user: username to shed privileges to
|
|
#shed_user = "games"
|
|
# shed_group: group name to shed privileges to
|
|
#shed_group = "games"
|
|
|
|
# Preferably, you may use the respective gids/uids. This is for Debian:
|
|
shed_uid = 5
|
|
shed_gid = 60
|
|
|
|
# The defaults are usually just fine for this. passwd refers to the file
|
|
# that stores the user database, and lockfile is only used internally by
|
|
# dgamelaunch.
|
|
# passwd doesn't matter if dgl was compiled with SQLite, as the name of
|
|
# the sqlite database will be defined at compile time.
|
|
passwd = "/dgl-login"
|
|
lockfile = "/dgl-lock"
|
|
|
|
#
|
|
# define some commands that are run when something happens. format is
|
|
# commands [ <time> ] = <command> ...
|
|
#
|
|
# <time> can be one of:
|
|
# dglstart = when someone telnets in
|
|
# login = when user has logged in
|
|
# register = right after a new user is registered
|
|
# gamestart = just before a game is started
|
|
#
|
|
# <command> is:
|
|
# mkdir "foo" = creates a directory "foo"
|
|
# chdir "foo" = changes current work dir to "foo"
|
|
# cp "foo" "bar" = copies file "foo" to "bar", overwriting previous "bar"
|
|
# ifnxcp "foo" "bar" = copies file "foo" to "bar", if "bar" doesn't exist
|
|
# unlink "foo" = deletes file "foo"
|
|
# setenv "foo "bar" = sets environment variable "foo" to "bar"
|
|
# exec "foo" "bar" = execute "foo" with "bar" as it's param
|
|
# chpasswd = do the change password prompting, if logged in
|
|
# chmail = do the change email prompting, if logged in
|
|
# watch_menu = go to the watching menu
|
|
# quit = quit dgl
|
|
# ask_login = do the login prompting, if not logged in
|
|
# ask_register = do register new user prompting, if not logged in and
|
|
# registration of new nicks is allowed.
|
|
# edit_options "foo" = edit options for game which has the short name "foo"
|
|
# (user must be logged in)
|
|
# play_game "foo" = start game which has the short name "foo"
|
|
# (user must be logged in)
|
|
# submenu "foo" = go to submenu "foo"
|
|
# return = return from submenu
|
|
#
|
|
# The commands will be done inside the chroot and with the uid and gid
|
|
# defined above.
|
|
# Parameters to the commands are subject to variable substitution:
|
|
# %r = dglroot, as defined above
|
|
# %n = user nick, if user is logged in
|
|
# %u = shed_uid, as defined above, but number
|
|
# %g = game name, if user has selected a game.
|
|
#
|
|
# eg. commands[login] = mkdir "foo", unlink "bar", setenv "Z" "foo"
|
|
#
|
|
|
|
# create the user's ttyrec dir when they register
|
|
commands[register] = mkdir "%rttyrec/%n"
|
|
|
|
|
|
|
|
# define the main menus. you _must_ define "mainmenu_anon"
|
|
# and "mainmenu_user".
|
|
# $VERSION and $SERVERID will be replaced, as per the bannerfile above.
|
|
# first, the menu shown to anonymous user:
|
|
menu["mainmenu_anon"] {
|
|
bannerfile = "dgl_menu_main_anon.txt"
|
|
cursor = (5,18)
|
|
commands["l"] = ask_login
|
|
commands["r"] = ask_register
|
|
commands["w"] = watch_menu
|
|
commands["q"] = quit
|
|
}
|
|
|
|
# then the menu shown when the user has logged in:
|
|
# $USERNAME in here will be replaced with the user name.
|
|
menu["mainmenu_user"] {
|
|
# contents of this file are written to screen.
|
|
# the file must be inside the chroot.
|
|
bannerfile = "dgl_menu_main_user.txt"
|
|
# after which cursor is moved to this location
|
|
# if cursor-definition is missing, the cursor is put
|
|
# to the end of the last line of the banner.
|
|
# cursor = (5,18)
|
|
# keys we accept. format is
|
|
# commands["string_of_keys"] = <commandlist>
|
|
# for example, you could use commands["qQ"] = quit
|
|
commands["c"] = chpasswd
|
|
commands["e"] = chmail
|
|
commands["w"] = watch_menu
|
|
commands["o"] = edit_options "NH343"
|
|
commands["p"] = play_game "NH343"
|
|
commands["q"] = quit
|
|
}
|
|
|
|
|
|
|
|
|
|
# Next, we'll define one game's data:
|
|
|
|
DEFINE {
|
|
# From inside the jail, the location of the binary to be launched.
|
|
game_path = "/bin/nethackstub"
|
|
|
|
# Full name of the game
|
|
game_name = "NetHack stub"
|
|
|
|
# Short name, used in the watching menu
|
|
short_name = "NHstb"
|
|
|
|
# arguments for when we exec the binary
|
|
game_args = "/bin/nethackstub",
|
|
"foo",
|
|
"user:%n",
|
|
"shed_uid:%u",
|
|
"bar"
|
|
|
|
# From inside the jail, where dgamelaunch should put mail.
|
|
spooldir = "/var/mail/"
|
|
|
|
# From inside the jail, the default .nethackrc that is copied for new users.
|
|
# rc_template = "/dgl-default-rcfile"
|
|
|
|
# Make sure the inprogress dir actually exists. default is "inprogress/"
|
|
# Each game you define here must have it's own.
|
|
inprogressdir = "inprogress-nethackstub/"
|
|
|
|
# We can also define per-game commands, that are executed
|
|
# when the game starts:
|
|
# commands = chdir "/dgldir", mkdir "foo_%u_%g"
|
|
}
|
|
|
|
|
|
#
|
|
# the second game
|
|
#
|
|
#
|
|
|
|
DEFINE {
|
|
game_path = "/bin/nethack"
|
|
game_name = "NetHack 3.4.3"
|
|
short_name = "NH343"
|
|
|
|
game_args = "/bin/nethack", "-u", "%n"
|
|
|
|
spooldir = "/var/mail/"
|
|
rc_template = "/dgl-default-rcfile"
|
|
|
|
rc_fmt = "%rrcfiles/%n.nethackrc"
|
|
|
|
inprogressdir = "inprogress-nethack/"
|
|
|
|
# back up savefile
|
|
commands = cp "/var/games/nethack/save/%u%n.gz" "/var/games/nethack/save/%u%n.gz.bak",
|
|
# set NETHACKOPTIONS to point to the rcfile
|
|
setenv "NETHACKOPTIONS" "@%rrcfiles/%n.nethackrc",
|
|
# set up nethack mail stuff, assuming it's compiled with it...
|
|
setenv "MAIL" "/var/mail/%n",
|
|
setenv "SIMPLEMAIL" "1",
|
|
# don't let the mail file grow
|
|
unlink "/var/mail/%n"
|
|
}
|
|
|
|
#
|
|
# third game
|
|
#
|
|
#
|
|
|
|
DEFINE {
|
|
game_path = "/bin/crawlss017"
|
|
game_name = "Crawl Stone Soup 0.1.7"
|
|
short_name = "Cr017"
|
|
|
|
game_args = "/bin/crawlss017",
|
|
"-name", "%n",
|
|
"-dir", "/crawlss017/",
|
|
"-rc", "%rrcfiles/%n.crawlrc",
|
|
"-morgue", "/crawlss017/morgues/",
|
|
"-macro", "/crawlss017/macros/%n.macro"
|
|
|
|
rc_template = "/dgl-default-rcfile.crawl"
|
|
rc_fmt = "%rrcfiles/%n.crawlrc"
|
|
inprogressdir = "inprogress-crawlss017/"
|
|
}
|
|
|
|
#
|
|
# fourth game
|
|
#
|
|
#
|
|
|
|
DEFINE {
|
|
game_path = "/bin/crawlss020"
|
|
game_name = "Crawl Stone Soup 0.2.0"
|
|
short_name = "Cr020"
|
|
|
|
game_args = "/bin/crawlss020",
|
|
"-name", "%n",
|
|
"-dir", "/crawlss020/",
|
|
"-rc", "/crawlss020/plr/%n/%n.crawlrc",
|
|
"-morgue", "/crawlss020/plr/%n/",
|
|
"-macro", "/crawlss020/plr/%n/"
|
|
|
|
rc_template = "/dgl-default-rcfile.crawl"
|
|
rc_fmt = "/crawlss020/plr/%n/%n.crawlrc"
|
|
inprogressdir = "inprogress-crawlss020/"
|
|
}
|