Permalink
Browse files

init new code base

  • Loading branch information...
1 parent 3bc912c commit b33ea2a3a1595b62725405762ac9cce981a2112d @akissa akissa committed Jun 30, 2010
Showing 434 changed files with 11,821 additions and 0 deletions.
View
@@ -0,0 +1,12 @@
+Baruwa was created by Andrew Colin Kissa.
+
+The PRIMARY AUTHORS are :
+ * Andrew Colin Kissa
+
+A big THANK YOU goes to:
+ Steve Freegard (smf@f2s.com) for creating mailwatch.
+
+ Baruwa is inspired by mailwatch although baruwa has
+ been written from scatch in python.
+
+ Django Foundation for creating the wonderful framework
View
@@ -0,0 +1,2 @@
+Version 1.0.0a 25-06-2010
+- Initial checkin.
View
@@ -0,0 +1,14 @@
+=======
+INSTALL
+=======
+Thanks for downloading Baruwa.
+
+Documentation on installing is in the docs directory,
+or online at http://www.baruwa.org
+
+To generate html documentation run::
+
+ make html
+
+Sphinx is required to be able to generate the html
+documentation.
View
Oops, something went wrong.
View
@@ -0,0 +1,12 @@
+include README
+include AUTHORS
+include INSTALL
+include LICENSE
+include ChangeLog
+include UPGRADE
+include MANIFEST.in
+include src/baruwa/baruwa.wsgi
+recursive-include docs *
+recursive-include extras *
+recursive-include src/baruwa/templates *
+recursive-include src/baruwa/static *
View
@@ -0,0 +1,77 @@
+
+======
+Baruwa
+======
+Baruwa (swahili for letter or mail) is a web 2.0 `MailScanner <http://www.mailscanner.info/>`_
+front-end.
+
+It provides an easy to use interface for managing a MailScanner installation. It is used to
+perform operations such as releasing quarantined messages, spam learning, whitelisting and
+blacklisting addresses, monitoring the health of the services etc. Baruwa is implemented
+using web 2.0 features (AJAX) where deemed fit, graphing is also implemented on the client
+side using SVG, Silverlight or VML.
+
+It includes reporting functionality with an easy to use query builder, results can be
+displayed as message lists or graphed as colorful and pretty interactive graphs.
+
+Custom MailScanner modules are provided to allow for logging of messages to the mysql
+database with Sqlite as backup and for managing whitelists and blacklists.
+
+Baruwa is written in Python/Perl using the Django Framework and MySQL for storage, it is
+released under the GPLv2.
+
+========
+Features
+========
+ + AJAX refreshed recent messages listing
+ + Detailed message view with AJAX enabled message processing (quarantine management, Bayesian learning, white/black listing)
+ + AJAX powered Full/Quarantine messages listings
+ + Reporting view with AJAX enabled query builder
+ + Interactive SVG graphs
+ + Multi user profiles (No restrictions on username format)
+ + User profile aware white/blacklist management
+ + Ip / network addresses supported in white/blacklist manager
+ + Easy plug-in authentication to external authentication systems (POP3, IMAP and SMTP supported out of the box)
+ + Tools for housekeeping tasks (quarantine management, rule updates, quarantine notifications, etc)
+ + Works both with and without Javascript enabled (graphs require Javascript)
+
+===========
+Screenshots
+===========
+`Screenshots <http://www.flickr.com/photos/baruwa/>`_ are on our Flickr page.
+
+============
+Requirements
+============
+ + Python >= 2.4
+ + Django >= 1.2.1
+ + MySQLdb >= 1.2.1p2
+ + GeoIP
+ + iPy
+ + Any Web server that can run Django (Apache/mod_wsgi recommended)
+ + MySQL
+ + Dojo toolkit
+
+====
+Note
+====
+Baruwa 1.0.x is not compatible with the 0.0.x versions and Mailwatch, as it
+uses a different database schema and its own MailScanner custom modules.
+
+============
+Installation
+============
+Baruwa is installed in the usual way::
+
+ python setup install
+
+========
+Packages
+========
+Binary packages for Ubuntu/Debian, Fedora and RHEL/CENTOS can be downloaded from http://topdog-software.com/oss/baruwa/
+
+=============
+Documentation
+=============
+Documentation is included in the docs directory of the tarball and can also be accessed on line at
+http://www.baruwa.org/
View
@@ -0,0 +1,4 @@
+- Caching
+- Queue management
+- PDF reports
+- Blocked file report
View
@@ -0,0 +1,13 @@
+=========
+Upgrading
+=========
+
+Upgrading from 0.0.x to 1.0.x
+
+It is not possible to migrate between those versions
+without extra work as the database schema's are totally
+different.
+
+1.0.x breaks compatibility with the Mailwatch database
+schema and uses its own optimized schema.
+
View
@@ -0,0 +1,89 @@
+# Makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS =
+SPHINXBUILD = sphinx-build
+PAPER =
+BUILDDIR = build
+
+# Internal variables.
+PAPEROPT_a4 = -D latex_paper_size=a4
+PAPEROPT_letter = -D latex_paper_size=letter
+ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
+
+.PHONY: help clean html dirhtml pickle json htmlhelp qthelp latex changes linkcheck doctest
+
+help:
+ @echo "Please use \`make <target>' where <target> is one of"
+ @echo " html to make standalone HTML files"
+ @echo " dirhtml to make HTML files named index.html in directories"
+ @echo " pickle to make pickle files"
+ @echo " json to make JSON files"
+ @echo " htmlhelp to make HTML files and a HTML help project"
+ @echo " qthelp to make HTML files and a qthelp project"
+ @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
+ @echo " changes to make an overview of all changed/added/deprecated items"
+ @echo " linkcheck to check all external links for integrity"
+ @echo " doctest to run all doctests embedded in the documentation (if enabled)"
+
+clean:
+ -rm -rf $(BUILDDIR)/*
+
+html:
+ $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
+ @echo
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
+
+dirhtml:
+ $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
+ @echo
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
+
+pickle:
+ $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
+ @echo
+ @echo "Build finished; now you can process the pickle files."
+
+json:
+ $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
+ @echo
+ @echo "Build finished; now you can process the JSON files."
+
+htmlhelp:
+ $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
+ @echo
+ @echo "Build finished; now you can run HTML Help Workshop with the" \
+ ".hhp project file in $(BUILDDIR)/htmlhelp."
+
+qthelp:
+ $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
+ @echo
+ @echo "Build finished; now you can run "qcollectiongenerator" with the" \
+ ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
+ @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Baruwa.qhcp"
+ @echo "To view the help file:"
+ @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Baruwa.qhc"
+
+latex:
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+ @echo
+ @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
+ @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
+ "run these through (pdf)latex."
+
+changes:
+ $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
+ @echo
+ @echo "The overview file is in $(BUILDDIR)/changes."
+
+linkcheck:
+ $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
+ @echo
+ @echo "Link check complete; look for any errors in the above output " \
+ "or in $(BUILDDIR)/linkcheck/output.txt."
+
+doctest:
+ $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
+ @echo "Testing of doctests in the sources finished, look at the " \
+ "results in $(BUILDDIR)/doctest/output.txt."
Binary file not shown.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@@ -0,0 +1,21 @@
+div.footer ul.social {
+list-style:none;
+list-style-type:square;
+list-style-position:outside;
+margin:0;
+padding:0;
+}
+
+div.footer ul.social li {
+text-align: right;
+float: right;
+list-style: none;
+padding-right:10px;
+padding-left:10px;
+padding-top:10px;
+padding-bottom:10px;
+}
+
+ul.social li img {
+vertical-align:middle;
+}
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@@ -0,0 +1,31 @@
+{% extends "!layout.html" %}
+{% block extrahead %}
+{{ super() }}
+<link rel="stylesheet" type="text/css" href="_static/style.css" />
+<link rel="icon" href="_static/favicon.ico" type="image/x-icon" />
+<link rel="shortcut icon" href="_static/favicon.ico" type="image/x-icon" />
+<script type="text/javascript">
+var _gaq = _gaq || [];
+_gaq.push(['_setAccount', 'UA-261565-4']);
+_gaq.push(['_trackPageview']);
+</script>
+{% endblock %}
+{% block rootrellink %}
+ <li><a href="http://www.topdog.za.net/baruwa">Baruwa</a> &raquo;</li>
+ {{ super() }}
+{% endblock %}
+{% block footer %}
+{{ super() }}
+<div class="footer">
+<script type="text/javascript">
+(function() {
+var ga = document.createElement('script');
+ga.src = ('https:' == document.location.protocol ?
+'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ga.setAttribute('async', 'true');
+document.documentElement.firstChild.appendChild(ga);
+})();
+</script>
+</div>
+{% endblock %}
+
@@ -0,0 +1,28 @@
+.. _authentication:
+
+=======================
+External authentication
+=======================
+
+Baruwa supports authentication to external authentication systems. SMTP, POP3, IMAP are supported out of the box.
+TLS, APOP are also supported to ensure user authentication details are protected over the wire.
+
+Authentication is setup on a per domain basis.
+
+Configuration
+=============
+
+Edit the baruwa_setting.py file and modify the MAIL_AUTH_HOSTS variable
+
+Default: ``()`` (Empty tuple)
+
+A tuple which contains lists, The list holds the email domain, hostname or ip address of the authentication system,
+port to connect to, protocol, a boolean indicating if a username with an '@' in it should be split into host and
+domain parts.::
+
+ MAIL_AUTH_HOSTS = (
+ ['topdog.za.net','tdss.co.za','25','smtp',True],
+ ['topdog.za.net','tdss.co.za','110','pop3',True],
+ ['topdog.za.net','tdss.co.za','993','imap',True],
+ )
+
@@ -0,0 +1,44 @@
+.. _batteries:
+
+========================
+Other batteries included
+========================
+
+Baruwa provides custom `django manage.py <http://docs.djangoproject.com/en/1.1/ref/django-admin/>`_
+commands to enable scripting of house keeping tasks such as quarantine management and Database
+maintenance.
+
+Quarantine management
+=====================
+::
+
+ manage.py quarantine_clean
+
+Deletes quarantined files older than QUARANTINE_DAYS_TO_KEEP. QUARANTINE_DAYS_TO_KEEP is set in
+the baruwa_settings.py file
+
+Quarantine reports
+==================
+::
+
+ manage.py send_quarantine_reports
+
+Generates an email report of the quarantined messages for the past 24 hours, for each user that
+has quarantine report enabled.
+
+Database maintenance
+====================
+::
+
+ manage.py dbclean
+
+Deletes records older than 60 days from the maillog table of the database, and archives them to
+the archive table.
+
+Spamassassin rule description updates
+=====================================
+::
+
+ manage.py update_sarules
+
+Updates the Spamassassin rule descriptions in the database.
Oops, something went wrong.

0 comments on commit b33ea2a

Please sign in to comment.