An NNTP server for a circle of friends.
groups | ||
images | ||
scripts | ||
accounts.lisp | ||
conf-home | ||
loop.asd | ||
loop.lisp | ||
loop.nw | ||
Makefile | ||
noweb.sty | ||
peat | ||
README |
(*) Introduction LOOP is an NNTP server written in Common Lisp. (*) Assumptions We assume - you run SBCL - you have Quicklisp installed and knows how to use it - you know how to use a TCP server such as https://cr.yp.to/ucspi-tcp.html - you know how to manage a daemon with https://cr.yp.to/daemontools.html - you have git and knows how to use it (*) How to install it LOOP is not in the Quicklisp repository, so we'll instruct you to install it as a local project. Go to ~/quicklisp/local-projects/ and say git clone https://git.antartida.xyz/loop/srv cd srv make build Now you have the executable loop. Try it out: --8<-------------------------------------------------------->8--- $ ./loop --help NAME: loop - An NNTP server for a circle of friends. USAGE: loop [options] [arguments ...] OPTIONS: --change-passwd <VALUE> <username> <new-password> changes password --create-account <VALUE> <username> <invited-by> creates a new account --help display usage information and exit --logging turn on debug logging on stderr --version display version and exit -l, --list-accounts lists accounts -r, --repl run a REPL on port 4006 -s, --server runs NNTP server reading from stdout AUTHORS: Circling Skies <loop@antartida.xyz> LICENSE: GPL v3 --8<-------------------------------------------------------->8--- You can talk to the NNTP server with -s: --8<-------------------------------------------------------->8--- $ ./loop -s 200 Welcome! Say ``help'' for a menu. quit 205 Good-bye. --8<-------------------------------------------------------->8--- So now have your system run your TCP server of choice. For instance, if you're using djb's tcpserver and would like LOOP to listen on port 1024, say --8<-------------------------------------------------------->8--- $ tcpserver -v -HR 0.0.0.0 1024 ./loop -s tcpserver: status: 0/40 --8<-------------------------------------------------------->8--- Using another terminal, telnet to your host on port 1024: --8<-------------------------------------------------------->8--- $ telnet localhost 1024 Trying 127.0.0.1... Connected to antartida.xyz. Escape character is '^]'. 200 Welcome! Say ``help'' for a menu. quit 205 Good-bye. Connection closed by foreign host. --8<-------------------------------------------------------->8--- Directory daemon/ in LOOP's source code has sample scripts to use with djb's tcpserver and daemontools. If you never done this, it will be better education if you learn to use daemontools and ucspi-tcp before going live with LOOP community. It's easy and fun. (*) Create your account Accounts are kept in accounts.lisp. Create a first account with ./loop --create-account you