Mercurial > hg > rlgwebd
view README.txt @ 182:3c0e7697bb30
Begin moving TermSession methods into the prototype.
This should make a clearer line between general functionality and the
initialization of specific instances.
author | John "Elwin" Edwards |
---|---|
date | Sat, 17 Jan 2015 19:57:40 -0500 |
parents | b5df69715001 |
children | 5041ec1fb426 |
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 index.html options.html options.js rlgterm.js style-rlg.css termemu.js termemu-keys.js tty.css 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 dglwatcher --- RLGWebD uses another C program to monitor the inprogress directories, because Node's fs.watch() can't distinguish between file creation and deletion. Compile with cc -o dglwatcher dglwatcher.c and copy into CHROOT/bin. Starting and stopping RLGWebD --- 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.