annotate README.txt @ 207:ffe22d88bea1

rlgwebd-stop: avoid the deprecated domain module. Instead of catching connection errors with domains, install an error listener on the socket before connecting.
author John "Elwin" Edwards
date Fri, 27 Jan 2017 19:18:31 -0500
parents 34e1bc4fd6b2
children 2667aaad8e08
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
146
5baa2d4d798b Add a README though it's still incomplete.
John "Elwin" Edwards
parents:
diff changeset
1 ===== RLGWebD =====
5baa2d4d798b Add a README though it's still incomplete.
John "Elwin" Edwards
parents:
diff changeset
2
5baa2d4d798b Add a README though it's still incomplete.
John "Elwin" Edwards
parents:
diff changeset
3 RLGWebD is a node.js app that enables playing roguelike games in the
5baa2d4d798b Add a README though it's still incomplete.
John "Elwin" Edwards
parents:
diff changeset
4 browser. It is intended to be compatible with dgamelaunch.
5baa2d4d798b Add a README though it's still incomplete.
John "Elwin" Edwards
parents:
diff changeset
5
5baa2d4d798b Add a README though it's still incomplete.
John "Elwin" Edwards
parents:
diff changeset
6 Node
5baa2d4d798b Add a README though it's still incomplete.
John "Elwin" Edwards
parents:
diff changeset
7 ---
5baa2d4d798b Add a README though it's still incomplete.
John "Elwin" Edwards
parents:
diff changeset
8 RLGWebD currently works with Node v0.10.
5baa2d4d798b Add a README though it's still incomplete.
John "Elwin" Edwards
parents:
diff changeset
9
197
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
10 It requires the 'posix', 'pty.js', and 'websocket' modules. Currently,
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
11 it expects them to be installed in the global location, which is
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
12 "/usr/lib/node_modules". It is planned to eventually use a different
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
13 location so that npm will not need to run as root.
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
14
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
15 init
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
16 ---
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
17 RLGWebD now includes a systemd unit file, which is the recommended way
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
18 to run it. See below for more instructions.
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
19
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
20 For other init systems, a shell script is provided. This is not really
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
21 a proper initscript, but it could form the basis of one.
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
22
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
23 Configuration
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
24 ---
199
34e1bc4fd6b2 Some fixes to the documentation.
John "Elwin" Edwards
parents: 197
diff changeset
25 You can set some options by changing some variables in the first few
34e1bc4fd6b2 Some fixes to the documentation.
John "Elwin" Edwards
parents: 197
diff changeset
26 lines of the rlgwebd script:
34e1bc4fd6b2 Some fixes to the documentation.
John "Elwin" Edwards
parents: 197
diff changeset
27
34e1bc4fd6b2 Some fixes to the documentation.
John "Elwin" Edwards
parents: 197
diff changeset
28 Option Variable Default
34e1bc4fd6b2 Some fixes to the documentation.
John "Elwin" Edwards
parents: 197
diff changeset
29
34e1bc4fd6b2 Some fixes to the documentation.
John "Elwin" Edwards
parents: 197
diff changeset
30 Chroot path chrootDir /var/dgl
34e1bc4fd6b2 Some fixes to the documentation.
John "Elwin" Edwards
parents: 197
diff changeset
31 Username dropToUser rodney
34e1bc4fd6b2 Some fixes to the documentation.
John "Elwin" Edwards
parents: 197
diff changeset
32 Server port httpPort 8080
34e1bc4fd6b2 Some fixes to the documentation.
John "Elwin" Edwards
parents: 197
diff changeset
33
34e1bc4fd6b2 Some fixes to the documentation.
John "Elwin" Edwards
parents: 197
diff changeset
34 If you change the chroot location, change it in the first line of the
34e1bc4fd6b2 Some fixes to the documentation.
John "Elwin" Edwards
parents: 197
diff changeset
35 Makefile too.
146
5baa2d4d798b Add a README though it's still incomplete.
John "Elwin" Edwards
parents:
diff changeset
36
5baa2d4d798b Add a README though it's still incomplete.
John "Elwin" Edwards
parents:
diff changeset
37 Installation
5baa2d4d798b Add a README though it's still incomplete.
John "Elwin" Edwards
parents:
diff changeset
38 ---
151
9f9bc41d5006 Mostly finish README.txt.
John "Elwin" Edwards
parents: 146
diff changeset
39 RLGWebD expects to be run in a chroot used by dgamelaunch, and it makes
146
5baa2d4d798b Add a README though it's still incomplete.
John "Elwin" Edwards
parents:
diff changeset
40 some assumptions about the configuration. It expects the dgamelaunch
5baa2d4d798b Add a README though it's still incomplete.
John "Elwin" Edwards
parents:
diff changeset
41 playground to be at /dgldir inside the chroot. It expects the
5baa2d4d798b Add a README though it's still incomplete.
John "Elwin" Edwards
parents:
diff changeset
42 in-progress files to be in /dgldir/inprogress/<gamename>. RLGWebD
5baa2d4d798b Add a README though it's still incomplete.
John "Elwin" Edwards
parents:
diff changeset
43 creates in-progress files in those locations, and dgamelaunch must be
5baa2d4d798b Add a README though it's still incomplete.
John "Elwin" Edwards
parents:
diff changeset
44 patched to prevent it from deleting them.
5baa2d4d798b Add a README though it's still incomplete.
John "Elwin" Edwards
parents:
diff changeset
45
5baa2d4d798b Add a README though it's still incomplete.
John "Elwin" Edwards
parents:
diff changeset
46 It needs the devpts filesystem mounted inside the chroot. This can be
5baa2d4d798b Add a README though it's still incomplete.
John "Elwin" Edwards
parents:
diff changeset
47 done with a line in /etc/fstab like the following:
5baa2d4d798b Add a README though it's still incomplete.
John "Elwin" Edwards
parents:
diff changeset
48 devpts CHROOT/dev/pts devpts newinstance,ptmxmode=666 0 0
5baa2d4d798b Add a README though it's still incomplete.
John "Elwin" Edwards
parents:
diff changeset
49
197
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
50 RLGWebD uses two separate programs written in C. sqlickrypt operates
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
51 on the dgamelaunch user database. dglwatcher monitors the inprogress
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
52 directories. Run "make" to build both of them.
146
5baa2d4d798b Add a README though it's still incomplete.
John "Elwin" Edwards
parents:
diff changeset
53
5baa2d4d798b Add a README though it's still incomplete.
John "Elwin" Edwards
parents:
diff changeset
54 sqlickrypt needs /dev/urandom to exist in the chroot. Run as root:
5baa2d4d798b Add a README though it's still incomplete.
John "Elwin" Edwards
parents:
diff changeset
55 mknod CHROOT/dev/urandom c 1 9
5baa2d4d798b Add a README though it's still incomplete.
John "Elwin" Edwards
parents:
diff changeset
56
197
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
57 Running "make install" will:
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
58 Copy the Web assets into the chroot
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
59 Copy the C programs and the libraries they need into the chroot
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
60 Install the main RLGWebD script in /usr/local/bin
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
61 Place the systemd unit file in the proper directory
178
b5df69715001 Update the documentation.
John "Elwin" Edwards
parents: 151
diff changeset
62
197
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
63 If you don't use systemd, or want to change the installation locations,
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
64 you will have to edit the Makefile.
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
65
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
66 You will still need to run "systemctl enable rlgwebd" to make the
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
67 server start on boot, and "systemctl start rlgwebd" to make it start
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
68 immediately.
178
b5df69715001 Update the documentation.
John "Elwin" Edwards
parents: 151
diff changeset
69
b5df69715001 Update the documentation.
John "Elwin" Edwards
parents: 151
diff changeset
70 Starting and stopping RLGWebD
146
5baa2d4d798b Add a README though it's still incomplete.
John "Elwin" Edwards
parents:
diff changeset
71 ---
197
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
72 If you are using systemd, "systemctl start" and "systemctl stop" should
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
73 work as with any other service.
146
5baa2d4d798b Add a README though it's still incomplete.
John "Elwin" Edwards
parents:
diff changeset
74
197
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
75 If you are using the initscript, running it with no arguments will
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
76 start RLGWebD. Stop by running it with 'stop' as an argument. (This
5041ec1fb426 Update the documentation.
John "Elwin" Edwards
parents: 178
diff changeset
77 requires socat to be installed.)
151
9f9bc41d5006 Mostly finish README.txt.
John "Elwin" Edwards
parents: 146
diff changeset
78
9f9bc41d5006 Mostly finish README.txt.
John "Elwin" Edwards
parents: 146
diff changeset
79 webtty
9f9bc41d5006 Mostly finish README.txt.
John "Elwin" Edwards
parents: 146
diff changeset
80 ---
199
34e1bc4fd6b2 Some fixes to the documentation.
John "Elwin" Edwards
parents: 197
diff changeset
81 "webtty" is a Node app which uses the terminal emulator to run a shell. It
151
9f9bc41d5006 Mostly finish README.txt.
John "Elwin" Edwards
parents: 146
diff changeset
82 includes NO SECURITY WHATSOEVER and should only be used for testing the
9f9bc41d5006 Mostly finish README.txt.
John "Elwin" Edwards
parents: 146
diff changeset
83 terminal emulator. Copy index-sh.html to index.html before running it.
199
34e1bc4fd6b2 Some fixes to the documentation.
John "Elwin" Edwards
parents: 197
diff changeset
84
34e1bc4fd6b2 Some fixes to the documentation.
John "Elwin" Edwards
parents: 197
diff changeset
85 Copyright status
34e1bc4fd6b2 Some fixes to the documentation.
John "Elwin" Edwards
parents: 197
diff changeset
86 ---
34e1bc4fd6b2 Some fixes to the documentation.
John "Elwin" Edwards
parents: 197
diff changeset
87 All files in this project are in the public domain.