2.5 KiB
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 formhostname: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)
Starting up
Pretty easy:
$ cd BASE_DIRECTORY; /path/to/spongy
Spongy will go off and connect to every configured server in BASE_DIRECTORY.
Spongy CGI Configuration
If you'd like to run spongy.cgi
,
that's fine,
but you have to create a file
called spongy.basedir
in the same directory as the CGI.
You can do it like this:
$ echo '/home/neale/BASE_DIRECTORY' > spongy.basedir
And then,
in BASE_DIRECTORY
,
you need a file called auth
with a sha256 checksum of the authorization token
you want to use in the client.
You can make it like this:
$ printf 'my fabulous token' | sha256sum | cut -d\ -f1 > BASE_DIRECTORY
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 (or any other files) readable by the user that runs the web server.
Sadly, Apache has a whole bunch of weirdness in place which prevents setuid CGI from working without a lot of configuration twiddling. But it also has its own mechanism for running CGI as the user who owns it. So if you're using Apache, please send me a recipe for your solution, and I'll add it to the distribution :)