Author: Stephen McDonald



Created by `Stephen McDonald <>`_

Gnotty ties the knot between the web and IRC. It is designed to assist
open source projects that host an IRC channel for collaboration on
their project.
Gnotty is `BSD licensed <>`_.

Gnotty is comprised of several parts. Primarily Gnotty provides a
modern web client and server for communicating with an IRC channel via
a web browser. The web server uses `gevent <>`_
and `WebSockets <>`_, which
provides the communication layer between the IRC channel and the web
browser. Twitter's `Bootstrap <>`_
is used to style the web interface, providing a fully responsive
layout, suitable for use with mobile devices. Customisable templates
are also provided for skinning the web interface.

Check out the `Gnotty live demo <>`_ to see the
web interface in action.

Secondly, Gnotty provides the ability to run a highly customisable
IRC bot. Different classes of bots can be configured on startup, and
bots can perform different services such as message logging and
interacting with users in the IRC channel. Bots also contain webhooks,
which allows bots to receive and act on input over HTTP from external

Gnotty also provides an optional Django application that archives IRC
messages, for browsing and searching via a web interface. By default
the IRC bot uses Python's logging module to provide configurable
logging handlers for IRC messages. When the Django application is
used, a logging handler is added that logs all IRC messages to the
Django project's database. The Django application then provides all
the necessary views and templates for messages to be searched by
keyword, or browsed by date using a calendar interface.

Note that the Django application is entirely optional. Gnotty can
be run without using Django at all, as a stand-alone gevent web
server that provides the web interface to an IRC channel, with
configurable IRC bots.


The easiest way to install Gnotty is directly from PyPi using
`pip <>`_ by running the command below::

    $ pip install -U gnotty

Otherwise you can obtain Gnotty from the
`GitHub <>`_ or
`Bitbucket <>`_ repositories,
and install it directly from source::

    $ python install


Gnotty is configured via a handful of settings. When integrated
with Django, these settings can be defined in your Django project's
```` module. When Gnotty is run as a stand-alone
client, these same settings can be defined via the command-line, or
in a separate Python configuration module. See the "Stand-Alone Web
Client" section below for details.

  * ``GNOTTY_HTTP_HOST`` - HTTP host address to serve from.
    *string, default:*
  * ``GNOTTY_HTTP_PORT`` - HTTP port to serve from.
    *integer, default: 8080*
  * ``GNOTTY_IRC_HOST`` - IRC host address to connect to.
    *string, default:*
  * ``GNOTTY_IRC_PORT`` - IRC port to connect to.
    *integer, default: 6667*
  * ``GNOTTY_IRC_CHANNEL`` - IRC channel to join.
    *string, default: #gnotty*
  * ``GNOTTY_IRC_CHANNEL_KEY`` - Optional key required to access
    the IRC channel.
    *string, default: None*
  * ``GNOTTY_BOT_CLASS`` - Dotted Python path to the IRC client bot
    class to run.
    *string, default: gnotty.bots.BaseBot*
  * ``GNOTTY_BOT_NICKNAME`` - IRC nickname the logging client will
    *string, default: gnotty*
  * ``GNOTTY_BOT_PASSWORD`` - Optional IRC password for the bot.
    *string, default: None*
  * ``GNOTTY_LOGIN_REQUIRED`` - Django login required for all URLs
    (Django only)
    *boolean, default: False*
  * ``GNOTTY_DAEMON`` - run in daemon mode.
    *boolean, default: False*
  * ``GNOTTY_PID_FILE`` - path to write PID file to when in daemon
    *string, default: [tmp]/gnotty-[http-hos