spongy/INSTALL

97 lines
2.2 KiB
Plaintext

Spongy Server Installation
==========================
You gotta make a base directory with an `authtok` file,
and a subdirectory for every server you want to connect to.
BASE DIRECTORY
+-- slashnet
| +-- handler
| +-- config/
| | +-- server
| | +-- gecos
| | +-- nick
| +-- log/
| | +-- 2015-01-29T19:56:27Z.log
| | +-- 2015-01-29T20:01:15Z.log
| | +-- 2015-01-29T20:41:40Z.log
| | +-- 2015-01-29T20:41:48Z.log
| | +-- 2015-01-29T20:41:56Z.log
| | +-- 2015-01-29T20:42:44Z.log
| +-- outq/
+-- oftc
+-- server3
+-- server4
`config` directory
------------------
The `config` directory in a server directory must have certain files:
* `server` is a list of servers to try and connect to, in the form `hostname:port`
* `gecos` is your "Real Name"
* `nick` is a list of nicknames you'd like to use
The lists are gone through starting with the first entry until one sticks.
`outq` directory
----------------
The `outq` directory is monitored by spongy.
When a new file shows up, its contents are spit out verbatim
over the server connection.
So if you want to send a message to a channel,
do something like this:
$ echo 'PRIVMSG #channel :hello world' > outq/$$.$(date +%s)
Spongy CGI Configuration
========================
If you'd like to run `spongy.cgi`,
that's fine,
but you have to create a configuration file
called `spongy.cfg`
in the same directory as the CGI.
It looks like this:
{
"auth": "bdf0ff3f50f492bd0fb261caf097829138f472dd0ab3b504fe0f01e8c8225664",
"basedir": "/home/neale/lib/irc"
}
`basedir` is the path to the BASE DIRECTORY from above.
`auth` is a sha256 checksum of your password.
You can generate it for the password "bloop" like this:
$ echo -n "bloop" | sha256sum
Permissions
-----------
There are a lot of different ways to set up permissions.
Here's what I suggest:
make `spongy.cgi` setuid to you.
$ chmod +s spongy.cgi
If it's setuid,
you don't need to make your config file readable by whatever user
runs the web server.
Sadly,
Apache has a whole bunch of weirdness that prevents this from working.
So if you're using Apache,
please send me a recipe for your solution,
and I'll add it to the distribution :)