comparison README.txt @ 197:5041ec1fb426

Update the documentation.
author John "Elwin" Edwards
date Thu, 14 Jan 2016 21:31:23 -0500
parents b5df69715001
children 34e1bc4fd6b2
comparison
equal deleted inserted replaced
196:298a531776d6 197:5041ec1fb426
5 5
6 Node 6 Node
7 --- 7 ---
8 RLGWebD currently works with Node v0.10. 8 RLGWebD currently works with Node v0.10.
9 9
10 It requires the 'posix', 'pty.js', and 'websocket' modules. 10 It requires the 'posix', 'pty.js', and 'websocket' modules. Currently,
11 it expects them to be installed in the global location, which is
12 "/usr/lib/node_modules". It is planned to eventually use a different
13 location so that npm will not need to run as root.
14
15 init
16 ---
17 RLGWebD now includes a systemd unit file, which is the recommended way
18 to run it. See below for more instructions.
19
20 For other init systems, a shell script is provided. This is not really
21 a proper initscript, but it could form the basis of one.
22
23 Configuration
24 ---
25 You can change the location of the chroot, the name of the dgamelaunch
26 user, and the port number by editing the first few lines of the rlgwebd
27 script. If you change the chroot location, change it in the Makefile
28 too.
11 29
12 Installation 30 Installation
13 --- 31 ---
14 RLGWebD expects to be run in a chroot used by dgamelaunch, and it makes 32 RLGWebD expects to be run in a chroot used by dgamelaunch, and it makes
15 some assumptions about the configuration. It expects the dgamelaunch 33 some assumptions about the configuration. It expects the dgamelaunch
20 38
21 It needs the devpts filesystem mounted inside the chroot. This can be 39 It needs the devpts filesystem mounted inside the chroot. This can be
22 done with a line in /etc/fstab like the following: 40 done with a line in /etc/fstab like the following:
23 devpts CHROOT/dev/pts devpts newinstance,ptmxmode=666 0 0 41 devpts CHROOT/dev/pts devpts newinstance,ptmxmode=666 0 0
24 42
25 It creates a socket in the filesystem which is used to control the 43 RLGWebD uses two separate programs written in C. sqlickrypt operates
26 server. 44 on the dgamelaunch user database. dglwatcher monitors the inprogress
27 45 directories. Run "make" to build both of them.
28 The following files need to be copied into CHROOT/var/www:
29 about.html
30 bell.svg
31 index.html
32 options.html
33 options.js
34 rlgterm.js
35 style-rlg.css
36 termemu.js
37 termemu-keys.js
38 tty.css
39
40 sqlickrypt
41 ---
42 RLGWebD uses a separate program written in C to operate on the
43 dgamelaunch user database. Compile this with:
44 cc -o sqlickrypt sqlickrypt.c -lcrypt -lsqlite3
45
46 The binary should be placed in /bin inside the chroot. It requires
47 libcrypt and libsqlite3 to be installed in the chroot. Depending on
48 your system, these may have other dependencies. Make sure to check by
49 running ldd.
50 46
51 sqlickrypt needs /dev/urandom to exist in the chroot. Run as root: 47 sqlickrypt needs /dev/urandom to exist in the chroot. Run as root:
52 mknod CHROOT/dev/urandom c 1 9 48 mknod CHROOT/dev/urandom c 1 9
53 49
54 dglwatcher 50 Running "make install" will:
55 --- 51 Copy the Web assets into the chroot
56 RLGWebD uses another C program to monitor the inprogress directories, because 52 Copy the C programs and the libraries they need into the chroot
57 Node's fs.watch() can't distinguish between file creation and deletion. 53 Install the main RLGWebD script in /usr/local/bin
54 Place the systemd unit file in the proper directory
58 55
59 Compile with 56 If you don't use systemd, or want to change the installation locations,
60 cc -o dglwatcher dglwatcher.c 57 you will have to edit the Makefile.
61 and copy into CHROOT/bin. 58
59 You will still need to run "systemctl enable rlgwebd" to make the
60 server start on boot, and "systemctl start rlgwebd" to make it start
61 immediately.
62 62
63 Starting and stopping RLGWebD 63 Starting and stopping RLGWebD
64 --- 64 ---
65 Run the 'rlgwebd' shell script as root. 65 If you are using systemd, "systemctl start" and "systemctl stop" should
66 work as with any other service.
66 67
67 Stop by passing 'stop' as an argument. (This requires socat to be 68 If you are using the initscript, running it with no arguments will
68 installed.) 69 start RLGWebD. Stop by running it with 'stop' as an argument. (This
70 requires socat to be installed.)
69 71
70 webtty 72 webtty
71 --- 73 ---
72 webtty.js is a Node app which uses the terminal emulator to run a shell. It 74 webtty.js is a Node app which uses the terminal emulator to run a shell. It
73 includes NO SECURITY WHATSOEVER and should only be used for testing the 75 includes NO SECURITY WHATSOEVER and should only be used for testing the