view README.txt @ 174:dc12ba30d559

Fix further crashes when following dgamelaunch games. The crashes apparently resulted from reading a ttyrec header and then trying to read the data chunk before dgamelaunch produced it. When the data chunk did become available, it would be read by the header function. The simplest solution was to store the position for reading the ttyrec file in the DGLSession, and to leave it unchanged if anything unexpected occurs when reading.
author John "Elwin" Edwards
date Mon, 12 Jan 2015 17:10:35 +0000
parents 9f9bc41d5006
children b5df69715001
line wrap: on
line source

                        =====   RLGWebD   =====

RLGWebD is a node.js app that enables playing roguelike games in the 
browser.  It is intended to be compatible with dgamelaunch.

Node
---
RLGWebD currently works with Node v0.10.

It requires the 'posix', 'pty.js', and 'websocket' modules.

Installation
---
RLGWebD expects to be run in a chroot used by dgamelaunch, and it makes 
some assumptions about the configuration.  It expects the dgamelaunch 
playground to be at /dgldir inside the chroot.  It expects the 
in-progress files to be in /dgldir/inprogress/<gamename>.  RLGWebD 
creates in-progress files in those locations, and dgamelaunch must be 
patched to prevent it from deleting them.

It needs the devpts filesystem mounted inside the chroot.  This can be 
done with a line in /etc/fstab like the following:
	devpts	CHROOT/dev/pts	devpts	newinstance,ptmxmode=666 0 0

It creates a socket in the filesystem which is used to control the 
server.

The following files need to be copied into CHROOT/var/www:
  about.html
  bell.svg
  options.html
  options.js
  rlgterm.js
  style-rlg.css
  termemu.js
  termemu-keys.js
  tty.css
Copy index-rlg.html to CHROOT/var/www/index.html.

sqlickrypt
---
RLGWebD uses a separate program written in C to operate on the 
dgamelaunch user database.  Compile this with:
	cc -o sqlickrypt sqlickrypt.c -lcrypt -lsqlite3

The binary should be placed in /bin inside the chroot.  It requires 
libcrypt and libsqlite3 to be installed in the chroot.  Depending on 
your system, these may have other dependencies.  Make sure to check by 
running ldd.

sqlickrypt needs /dev/urandom to exist in the chroot.  Run as root:
	mknod CHROOT/dev/urandom c 1 9

Starting and stopping
---
Run the 'rlgwebd' shell script as root.

Stop by passing 'stop' as an argument.  (This requires socat to be 
installed.)

webtty
---
webtty.js is a Node app which uses the terminal emulator to run a shell.  It
includes NO SECURITY WHATSOEVER and should only be used for testing the 
terminal emulator.  Copy index-sh.html to index.html before running it.