diff -r f907866f0e4b -r 6fceb66e1ad7 doc/sonews.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/sonews.xml Fri Jun 26 16:48:50 2009 +0200 @@ -0,0 +1,254 @@ + + + +]> + + sonews Usenet News Server + + sonews is NNTP server than can provide + access to both local and global Usenets newsgroups. It is written in + Java and uses a relational + database as backend. + + + 2009/06/29: + sonews/0.5.0 + (binary tarball, + source tarball) final + released. + The setup is a little clumsy but the software is stable and works well. + + + + Introduction + sonews is a RCF3977 compliant NNTP Usenet server. + It is written in Java and uses a relation database management system + (RDBMS) as backend (currently + PostgreSQL and + MySQL). + sonews is highly multithreaded and uses Java NIO asynchronous sockets + to handle thousands of concurrent connections. + sonews is Free and Open Source Software (FOSS) licensed under the + terms of the + GNU General Public License + Version 3 (or later). + + + History + Ancestor of sonews is probably the Neat NNTP Daemon (n3tpd) + although there is very little code in sonews that can be identified + as direct derivation. + sonews was developed as diploma thesis project of Christian Lins at + StarOffice development + in Hamburg and is now a Free Software project. + + + + Roadmap + + sonews/0.6 + Planned to implement the XPAT command for searching, correctly + hashed Message-Ids and a news purging command. + See Bugtracker for + issues with target sonews/0.6.x. + + + + + + Installation and initial setup + + Download & Installation + + Debian based systems + You can install sonews with + APT + easily. + Add the following line to /etc/apt/sources.list: + deb http://packages.xerxys.info/debian/ unstable main + + And add the GPG-Key for package authentification, see + Xerxys Debian Repository + for more details. + Then force an update of your local package list: + # apt-get update + + To install sonews and all prerequisites issue the following command: + # apt-get install sonews + + This method should work for all recent Debian-based distributions +(Debian, Ubuntu, etc.). + + + + Other *nix systems + See Files Section for recent binary and source tarballs. + Use the binary archive and extract it in a directory of your choice. Make sure your system +provides the necessary prerequisites: + + + Java6 compatible runtime (JRE) + + + Java Mail API implementation, e.g. Sun Java Mail. +GNU JavaMail has a broken POP3 Provider and does not work with sonews. + + + JSP Servlet Container (e.g. + Kitten) [optional] + + + + + + + Initial database setup + Before you start sonews, you must prepare the database. Currently sonews is known +to work with PostgreSQL and MySQL. + It is highly recommended to create an own database for every sonews instance, e.g. +called 'sonews'. Additionally, it is recommended to create a unique database user +for sonews, e.g. 'sonewsuser'. Please do not use the root user for sonews! +The sonews user needs rights for SELECT, INSERT and UPDATE statements. +Refer to the database's manual for instructions. + You will find the SQL Schema definitions in the helpers subdirectory of +the source and binary distributions. You can create the tables manually using +this templates or you can use the setup helper: + user@debian$ sonews setup + + or on other *nix systems: + user@nix$ java -jar sonews.jar org.sonews.util.DatabaseSetup + + The tool will ask for some information about your database environment, +connect to the database, create the tables and creates a default bootstrap +config file called sonews.conf. + + + + + Running sonews + + Configuration + There is a bootstrap configuration in /etc/sonews/sonews.conf and a regular configuration +in the database table config. + There are various configuration values that can be adapted: + + + sonews.article.maxsize + + Maximum allowed body size of a news message given in kilobytes. Please note that +for MySQL the ‘max_allowed_packet’ configuration variable must +be set to a value higher than ‘sonews.article.maxsize’ otherwise posting +of large mails will fail. + + + + sonews.debug + + + If set to true every(!) data going through sonews' socket + is written to sonews.log. After a night the logfile can be + several gigabytes large, so be careful with this setting. + + + + + sonews.hostname + + Canonical name of the server instance. This variable is part of the server's +hello message to the client and used to generate Message-Ids. + + + + sonews.timeout + + Socket timeout for client connections in seconds. + + + + sonews.port + + Listening port of sonews daemon. + + + + + + + Command line arguments + If you like to start sonews directly, you can use one of the following +arguments: + java -jar sonews.jar [arguments] + where arguments: + -c|-config <path to config file> if custom config file preferred + -dumpjdbcdriver Prints out a list of available JDBC drivers + -feed Enables feed daemon for pulling news from peer servers + -h|-help This output + -mlgw Enables the Mailinglist Gateway poller + -p portnumber Port on which sonews is listening for incoming connections. + Overrides port settings in config file and database. + + + + + + Webinterface + The package sonews-web provides an optional webinterface that can be used to +review statistical information and configuration values of sonews. + sonews-web start|stop + + The webinterface uses the the lightweight Servlet Container Kitten and is +per default listening on HTTP-Port 8080 (go to http://localhost:8080/sonews). + + + + + Development + You're welcome to create patches with bugfixes or additional features. The +Mercurial DSCM makes this step an easy task. + Just clone the public Mercurial repository: + hg clone http://code.xerxys.info:8000/hg/sonews/trunk sonews-trunk + + Then make your changes, create a bundle of changesets and send this to me via email. +Or ask for push access to the public repository. + + There is a nightly generated Javadoc API documentation that will help + you to get in touch with the sonews source. + + Some debugging hints: if the server blocks and does not longer respond you +probably found a deadlock. Do not kill the process with "kill -9 <pid>" +but send a SIGQUIT signal with "kill -3 <pid>" and the Java VM will output +a stracktrace of all threads. This output is the most valuable information to +fix the deadlock. + + + Contributors + Maintainer and project lead: +Christian Lins (contact christian.lins (at) fh-osnabrueck.de) + + + + Sponsors + The author thanks Sun Microsystems for fully +financing the first version of sonews. A really free software supporting company! + If you like to support sonews with a donation of any kind (hardware, books, money, donuts,...), + feel free to contact the project leader. +A friendly email or a bug report is most welcome, too :-) + + + + + Links and further information + + + Bugtracker, register necessary, see project 'sonews'. + + + Sun Microsystems, friendly sponsor. + + + University of Applied Sciences Osnabrueck + + + +