github
Advanced Search
  • Home
  • Pricing and Signup
  • Explore GitHub
  • Blog
  • Login

pcdavid / niouz

  • Admin
  • Watch Unwatch
  • Fork
  • Your Fork
  • Pull Request
  • Download Source
    • 1
    • 0
  • Source
  • Commits
  • Network (0)
  • Issues (12)
  • Downloads (1)
  • Wiki (1)
  • Graphs
  • Branch: master

click here to add a description

click here to add a homepage

  • Branches (1)
    • master ✓
  • Tags (1)
    • v0.5.3
Sending Request…
Enable Donations

Pledgie Donations

Once activated, we'll place the following badge in your repository's detail box:
Pledgie_example
This service is courtesy of Pledgie.

A simple, standalone NNTP server written in pure Ruby — Read more

  cancel

  cancel
  • Private
  • Read-Only
  • HTTP Read-Only

This URL has Read+Write access

Add some class comments. 
Pierre-Charles David (author)
Sun May 17 07:59:38 -0700 2009
commit  c779cb97a04bb41d1377ed039775fd29f78dbb48
tree    908b377b05a8ab3f56d0ec9ec050fec1856bde3d
parent  a792568895ef52cba55e527713538ed36e3890b7
niouz /
name age
history
message
file README.textile Loading commit data...
directory bin/
directory lib/
README.textile

niouz is a small, simple NNTP server suitable to set up private
newsgroups for an intranet or workgroup.

What’s niouz ?

niouz is an extremely simple NNTP server implemented in pure
Ruby. It does not offer all the features of standard NNTP
servers like CNews or INN (most notably, it can’t communicate with other servers, but only
with clients), but it is orders of magnitudes simpler to deploy.

niouz provides a simple and easy way to quickly set up private newsgroups for a small
group of people. It generally does the Simplest Thing That Can Possibly
Work
, and would probably
not scale beyond a few dozen users and a few thousands messages. On the other hand, the
resulting code is quite small (about 600 lines including comments), easy to understand and
to modify/extend.

It’s been used internally in the research department I worked in for more than two years
now, and it seems quite stable (no data loss, no server crash ever) although given the low
number of users and messages, it’s difficult to be sure how much load it can handle.

Availability

  • Home: http://github.com/pcdavid/niouz
  • Current version and status: 0.5, beta
  • License: GPL v2
  • Author/Contact: Pierre-Charles David “<pcdavid@gmail.com>”:mailto:pcdavid@gmail.com

Requirements

  • Ruby 1.8.x
  • That’s all!

Beware Debian users. The Debian package named ruby1.8 does not contain Ruby’s standard
library. You need to install WEBrick explicitely. The package is named
libwebrick-ruby1.8.

Installation and configuration

  1. Get it from http://github.com/pcdavid/niouz/tree
    $ chmod a+x /usr/local/bin/niouz
  2. Create a place for the articles:
$ mkdir -p /srv/niouz/articles
  1. Create the groups:

    $ cat > /srv/niouz/newsgroups
    Name: test
    Date-Created: 2004-08-24
    Description: blah blah

Name: projects.foobar
Date-Created: 2004-08-24
Description: Discussion related to project foobar
^D

  1. Run it:
$ su -c /usr/local/bin/niouz /srv/niouz
  1. Enjoy!

By default, it listens to port 119, so you need to be root to run it. It you don’t like
that, just edit the script to change the port.

If you want to add new groups, just kill the process, edit the newsgroups file and
restart.

Features

  • One file, no dependencies outside Ruby 1.8, very easy to setup.
  • Small (less than 600 lines), simple code, easy to customize/extend.
  • Generally does The Simplest Thing That Could Possibly Work.
  • (Too) simple database format; easy to hack if necessary.
  • Implements all the basic NTTP commands, plus some extensions (some partially, but well
    enough for most clients).
  • Works with all major clients.
  • Never forgets/expires articles.
  • Lots of room for expansion! :-)

Limitations

  • Does not interact with other NNTP servers (by design).
  • Probably does not scale very well.
  • Stays in memory (no inetd mode).
  • Only tested under Linux.
  • Some relatively standard NNTP extensions are not supported, most importantly article
    cancellation and authentification.
Blog | Support | Training | Contact | API | Status | Twitter | Help | Security
© 2010 GitHub Inc. All rights reserved. | Terms of Service | Privacy Policy
Powered by the Dedicated Servers and
Cloud Computing of Rackspace Hosting®
Dedicated Server