1 <chapter id="introduction">
2 <title>Introduction</title>
5 <title>Why ctrlproxy?</title>
8 CtrlProxy is a project I started because I got bored with running irssi in
9 screen on my server. My server isn't very fast and that meant
10 when it was on high load ircing was getting pretty hard. I could
11 of course run irssi on my workstation, but my workstation isn't on
12 24/7 and some people depend on the channel logs I generate.
16 The structure of ctrlproxy is very modular and it is easily extendible.
21 <sect1><title>What is ctrlproxy?</title>
23 <para>Ctrlproxy is a so-called IRC proxy or BNC (bouncer). It keeps a
24 permanent connection to one or more IRC servers. The user can then
25 connect and disconnect his/her IRC client to the bouncer without actually disconnecting from the 'real' IRC server.</para>
28 <imageobject role="html">
29 <imagedata format="PNG" align="center" fileref="overview2.png"/>
31 <imageobject role="fo">
32 <imagedata format="EPS" align="center" fileref="overview2.eps"/>
38 <sect1><title>Features</title>
41 <listitem><para>Connect to one server with many clients under one nick transparently</para></listitem>
42 <listitem><para>Connect to multiple servers using only one process</para></listitem>
43 <listitem><para>CTCP support when no client is attached</para></listitem>
44 <listitem><para>irssi-style logging support</para></listitem>
45 <listitem><para>Transparent detaching and attaching of clients</para></listitem>
46 <listitem><para>Password support</para></listitem>
47 <listitem><para>Replication support (from memory)</para></listitem>
48 <listitem><para>Auto-Away support</para></listitem>
49 <listitem><para>Keeping track of events occuring </para></listitem>
50 <listitem><para>Direct, inetd-style interfacing with local IRC servers (such as bitlbee)</para></listitem>
51 <listitem><para>Responses to queries are only sent to the originator of the query</para></listitem>
52 <listitem><para>SSL/GNUTLS support</para></listitem>
58 <title>Requirements</title>
61 <listitem><para>libpopt</para></listitem>
62 <listitem><para>GNU glib</para></listitem>
63 <listitem><para>libxml2</para></listitem>
66 <para>Some of the modules have additional requirements. Read the
67 chapters about those specific modules for details.</para>