Clarify that we are GPLv2
[citadel.git] / citadel / docs / citadel.html
index b05698e08a0479221e9d8646d74ba5e67f810158..210728d3c01442cfc05a24ffc33d2495e0beb109 100644 (file)
@@ -8,9 +8,8 @@
 <body>
 <div align="center">
 <h1>C I T A D E L</h1>
-<h2>a messaging and collaboration platform for BBS and groupware
-applications</h2>
-Copyright &copy;1987-2005 by the Citadel development team:<br>
+<h2>an open source messaging and collaboration platform</h2>
+Copyright &copy;1987-2006 by the Citadel development team:<br>
 <br>
 <table align="center" border="0" cellpadding="2" cellspacing="2">
   <tbody>
@@ -36,8 +35,7 @@ others<br>
     <tr>
       <td valign="top">Art Cancro<br>
       </td>
-      <td valign="top"><i>overall system design and lead
-developer<br>
+      <td valign="top"><i>overall system design and lead developer<br>
       </i></td>
     </tr>
     <tr>
@@ -59,17 +57,16 @@ developer<br>
       </i></td>
     </tr>
     <tr>
-      <td valign="top">Michael Hampton<br>
+      <td valign="top">Wilfried Goesgens<br>
       </td>
-      <td valign="top"><i>client software development<br>
+      <td valign="top"><i>build system patches<br>
       </i></td>
     </tr>
     <tr>
-      <td style="vertical-align: top;">Urs Jannsen<br>
-      </td>
-      <td style="vertical-align: top;"><span style="font-style: italic;">text
-search algorithm</span><br>
+      <td valign="top">Michael Hampton<br>
       </td>
+      <td valign="top"><i>client software development<br>
+      </i></td>
     </tr>
     <tr>
       <td valign="top">Andru Luvisi<br>
@@ -86,8 +83,13 @@ search algorithm</span><br>
     <tr>
       <td valign="top">Stu Mark<br>
       </td>
-      <td valign="top"><i>additional client features, IGnet protocol
-design<br>
+      <td valign="top"><i>additional client features, IGnet protocol design<br>
+      </i></td>
+    </tr>
+    <tr>
+      <td valign="top">Edward S. Marshall<br>
+      </td>
+      <td valign="top"><i>RBL checking function design<br>
       </i></td>
     </tr>
     <tr>
@@ -102,11 +104,16 @@ design<br>
       <td valign="top"><i>assistance with project management<br>
       </i></td>
     </tr>
+    <tr>
+      <td valign="top">Trey Van Riper<br>
+      </td>
+      <td valign="top"><i>QA and portability enhancements<br>
+      </i></td>
+    </tr>
     <tr>
       <td valign="top">John Walker<br>
       </td>
-      <td valign="top"><i>author of public domain base64
-encoder/decoder<br>
+      <td valign="top"><i>author of public domain base64 encoder/decoder<br>
       </i></td>
     </tr>
     <tr>
@@ -125,14 +132,13 @@ encoder/decoder<br>
 </table>
 </div>
 <br>
-<div align="justify">The entire package is open source; you can
+<div align="justify">The entire package is open source software.  You may
 redistribute and/or modify it under the terms of the GNU General Public
-License as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.<br>
+License, version 2, which is included in this manual.<br>
 <br>
 This program is distributed in the hope that it will be useful, but
 WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&nbsp; See the GNU
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 General Public License for more details. </div>
 <div align="justify"><br>
 For more information, visit either of these locations on
@@ -582,7 +588,7 @@ processing) </li>
 the system. It is mandatory that the sysop have "root" access to the
 operating system. The following are required to install Citadel: </p>
 <ul>
-  <li>A Unix operating system (Linux, BSD, Solaris, Tru64, HP/UX) </li>
+  <li>A unix-like operating system (Linux, FreeBSD, Solaris, etc.) </li>
   <li>C compiler (<a href="http://gcc.gnu.org/">GCC</a> with <a
  href="http://www.gnu.org/software/make/make.html">gmake</a> is the
 recommended build environment) </li>
@@ -595,22 +601,26 @@ newer (if you want the calendar service to work)<br>
   <li>Enough disk space to hold all of the programs and data </li>
 </ul>
 <p>If you are running Citadel on a Linux system, it is STRONGLY
-recommended that you run it on a recent distribution (such as <a
- href="http://www.redhat.com">Red Hat</a> 7.3 or newer). A new-ish
+recommended that you run it on a recent distribution (such as Fedora
+Core 3 or newer). A new-ish
 distribution will have most or all of the prerequisite tools and
 libraries already integrated for you.</p>
-<h3>Now available:</h3>
+<h3>Other pieces which complete the Citadel system:</h3>
 <ul>
   <li>"WebCit", a gateway program to allow full access to Citadel via
 the World Wide Web. Interactive access through any Web browser. </li>
   <li>Access to Citadel via <i>any</i> standards-compliant e-mail
 program, thanks to Citadel's built-in SMTP, POP, and IMAP services.
 You can use Mozilla, Netscape, Evolution, Eudora, Pine, Outlook, etc.
-with Citadel. </li>
+with Citadel.</li>
+  <li>Access to Citadel's calendar and address book functions using any
+GroupDAV-enabled PIM client (requires WebCit).<br>
+  </li>
 </ul>
 <h3>Coming soon:</h3>
 <ul>
-  <li>Newer and better GUI-based clients.</li>
+  <li>More integration with third-party software.<br>
+  </li>
 </ul>
 <h3><a name="Everything_in_its_place..."></a>Everything in its place...</h3>
 <p>Hopefully you've unpacked the distribution archive into its own
@@ -642,11 +652,11 @@ will use <tt>/usr/local/citadel</tt>) and the shell should be either
 "citadel" in
 that directory, or a script that will start up the citadel client.
 Example:</p>
-<pre>bbs::100:1:Citadel Login:/usr/local/citadel:/usr/local/citadel/citadel<br></pre>
+<pre>citadel::100:1:Citadel Login:/usr/local/citadel:/usr/local/citadel/citadel<br></pre>
 <p>When you run setup later, you will be required to tell it the
 username or user ID of the account you created is, so it knows what
-user to run as. If you create an account called <tt>bbs</tt>, <tt>guest</tt>,
-or <tt>citadel</tt>, the setup program will automatically pick up the
+user to run as. If you create an account called <tt>citadel, bbs</tt>,
+or <tt>guest</tt>, the setup program will automatically pick up the
 user ID by default.</p>
 <p>For all other users in /etc/passwd (or in some other name service
 such as NIS), Citadel will automatically set up
@@ -765,7 +775,9 @@ your favorite text editor to write messages. To do this you simply put
 a line in your citadel.rc file like this:</p>
 <pre>editor=/usr/bin/vi<br></pre>
 <p>The above example would make Citadel call the vi editor when using
-the <tt><b>.E</b>nter <b>E</b>ditor</tt> command. You can also make
+the <tt><b>.E</b>nter <b>E</b>ditor</tt> command, or when a user
+selects the &quot;Always compose messages with the full-screen
+editor&quot; option.  You can also make
 it the default editor for the <tt><b>E</b>nter</tt> command by editing
 the <tt>citadel.rc</tt> file. <b>But be warned:</b> external editors
 on public systems can
@@ -785,8 +797,9 @@ else in your system. The variable <tt>PRINTCMD</tt> in <tt>citadel.rc</tt>
 specifies what command you use to print. Text is sent to the standard
 input (stdin) of the print command.</p>
 <p>So if you did this:</p>
-<pre>printcmd="nl|pr|lpr -Plocal"<br></pre>
-<p>...that would add line numbers, then paginate, then print on the
+<pre>printcmd="a2ps -o - |lpr -Plocal"<br></pre>
+<p>...that would convert the printed text to PostScript, then print on
+the
 printer named "local". There's tons of stuff you can do with this
 feature. For example, you could use a command like <tt>cat
 &lt;&lt;$HOME/archive</tt> to save copies of important messages in a
@@ -991,7 +1004,7 @@ install</tt> ?? </li>
 </ul>
 <p>To report a problem, you can log on to <a
  href="http://uncensored.citadel.org">UNCENSORED!</a> or any other BBS
-on the Citadel network which carries the <tt>Citadel&gt;</tt> room.
+on the Citadel network which carries the <tt>Citadel/UX&gt;</tt> room.
 Please DO NOT e-mail the developers directly. Post a request for help
 on the BBS, with all of the following information: </p>
 <ul>
@@ -1625,7 +1638,7 @@ database logs affect your ability to reliably backup your Citadel
 system.<br>
 </p>
 <p>The next set of options affect how Citadel behaves on a network.</p>
-<pre>Server IP address (0.0.0.0 for 'any') [0.0.0.0]:<br>POP3 server port (-1 to disable) [110]:<br>POP3S server port (-1 to disable) [995]:<br>IMAP server port (-1 to disable) [143]:<br>IMAPS server port (-1 to disable) [993]:<br>SMTP MTA server port (-1 to disable) [25]:<br>SMTP MSA server port (-1 to disable) [587]:<br>SMTPS server port (-1 to disable) [465]:<br>Correct forged From: lines during authenticated SMTP [Yes]:<br></pre>
+<pre>Server IP address (0.0.0.0 for 'any') [0.0.0.0]:<br>POP3 server port (-1 to disable) [110]:<br>POP3S server port (-1 to disable) [995]:<br>IMAP server port (-1 to disable) [143]:<br>IMAPS server port (-1 to disable) [993]:<br>SMTP MTA server port (-1 to disable) [25]:<br>SMTP MSA server port (-1 to disable) [587]:<br>SMTPS server port (-1 to disable) [465]:<br>Correct forged From: lines during authenticated SMTP [Yes]:<br>Allow unauthenticated SMTP clients to spoof my domains [No]: No<br>Instantly expunge deleted IMAP messages [No]: Yes<br></pre>
 <p>"Server IP address" refers to the IP address on <span
  style="font-style: italic;">your server</span> to which Citadel's
 protocol services should be bound.&nbsp; Normally you will leave this
@@ -1694,7 +1707,27 @@ sense dictates that this is a good idea. Nevertheless, if you want to
 suppress
 this behavior, answer 'No' at the prompt (the default is 'Yes') and the
 headers
-will never be altered.<br>
+will never be altered.</p>
+<p>&quot;Instant expunge&quot; affects what happens when IMAP users delete
+messages.  As you may already know, messages are not <i>truly</i> deleted
+when an IMAP client sends a delete command; they are only <i>marked for
+deletion</i>.  The IMAP client must also send an &quot;expunge&quot; command
+to actually delete the message.  The Citadel server automatically expunges
+messages when the client logs out or selects a different folder, but if you
+select the Instant Expunge option, an expunge operation will automatically
+follow any delete operation (and the client will be notified, preventing any
+mailbox state problems).  This is a good option to select, for example, if you
+have users who leave their IMAP client software open all the time and are
+wondering why their deleted messages show up again when they log in from a
+different location (such as WebCit).</p>
+<p>&quot;Allow spoofing&quot; refers to the security level applied to
+non-authenticated SMTP clients.  Normally, when another host connects to
+Citadel via SMTP to deliver mail, Citadel will reject any attempt to send
+mail whose sender (From) address matches one of your host's own domains.  This
+forces your legitimate users to authenticate properly, and prevents foreign
+hosts (such as spammers) from forging mail from your domains.  If, however,
+this behavior is creating a problem for you, you can select this option to
+bypass this particular security check.<br>
 <span style="font-family: monospace;"><br>
 Connect this Citadel to an LDAP directory [No]: No</span><br>
 </p>
@@ -1703,7 +1736,8 @@ document.<br>
 </p>
 <p>The final set of options configures system-wide defaults for the
 auto-purger:</p>
-<pre>Default user purge time (days) [120]: <br>Default room purge time (days) [30]: <br>System default message expire policy (? for list) [0]: <br>Keep how many messages online? [150]:<br>Mailbox default message expire policy (? for list) [0]:<br>How often to run network jobs (in seconds) [1800]:<br>Enable full text search index (warning: resource intensive) [Yes]: Yes<br>Hour to run purges (0-23) [4]:<br></pre>
+<pre>Default user purge time (days) [120]: <br>Default room purge time (days) [30]: <br>System default message expire policy (? for list) [0]: <br>Keep how many messages online? [150]:<br>Mailbox default message expire policy (? for list) [0]:<br>How often to run network jobs (in seconds) [1800]:<br>Enable full text search index (warning: resource intensive) [Yes]: Yes<br>Hour to run purges (0-23) [4]:<br>
+Perform journaling of email messages [No]:<br>Perform journaling of non-email messages [No]:<br>Email destination of journalized messages [example@example.com]:<br></pre>
 <p>Any user who does not log in for the period specified in 'Default
 user purge time' will be deleted the next time a purge is run. This
 setting may be modified on a per-user basis.</p>
@@ -1744,12 +1778,24 @@ day.</p>
 build and maintain a searchable index of all messages on the
 system.&nbsp; This is a time and resource intensive process -- it could
 take days to build the index if you enable it on a large
-database.&nbsp; Once enabled, however, it will be updated incrementally
+database.&nbsp; It is also fairly memory intensive; we do not recommend
+that you enable the index unless your host system has at least 512 MB
+of memory.&nbsp; Once enabled, however, it will be updated
+incrementally
 and will not have any noticeable impact on the interactive response
 time of your system.&nbsp; The full text index is currently only
 searchable when using IMAP clients; other search facilities will be
-made available in the near future.<br>
-<span style="font-family: monospace;"></span></p>
+made available in the near future.</p>
+<p>The &quot;Perform journaling...&quot; options allow you to configure
+your Citadel server to send an extra copy of every message, along with
+recipient information if applicable, to the email address of your choice.
+The journaling destination address may be an account on the local Citadel
+server, an account on another Citadel server on your network, or an Internet
+email address.  These options, used in conjunction with an archiving service,
+allow you to build an archive of all messages which flow through your Citadel
+system.  This is typically used for regulatory compliance in industries which
+require such things.  Please refer to the <a href="journaling.html">journaling
+guide</a> for more details on this subject.</p>
 <p><span style="font-family: monospace;">Save this configuration? No</span><br>
 </p>
 <p>When you're done, enter 'Yes' to confirm the changes, or 'No' to
@@ -1836,6 +1882,12 @@ whatever) that all outbound mail be sent to an SMTP relay or forwarder.
 To configure this
 functionality, simply enter the domain name or IP address of your relay
 as a 'smart-host' entry.</p>
+<p>If your relay server is running on a port other
+than the standard SMTP port 25, you can also specify the port number
+using &quot;host:port&quot; syntax; i.e. <tt>relay99.myisp.com:2525</tt></p>
+<p>Furthermore, if your relay server requires authentication, you can
+specify it using username:password@host or username:password@host:port
+syntax; i.e. <tt>jsmith:pass123@relay99.myisp.com:25</tt></p>
 <p><b>directory:</b> a domain for which you are participating in
 directory services across any number of Citadel nodes. For example, if
 users who have addresses in the domain <tt>citadel.org</tt> are spread
@@ -2275,7 +2327,8 @@ alphabetical and on-disk ordering of the <span
   <li>After verifying that your backup completed successfully, delete
 the committed log files with a command like this:</li>
 </ol>
-<span style="font-family: monospace;">/usr/local/citadel/sendcommand &quot;CULL&quot;</span><br>
+<span style="font-family: monospace;">/usr/local/citadel/sendcommand
+"CULL"</span><br>
 <br>
 <span style="font-style: italic;">Advantage:</span> Citadel continues
 to run normally during backups.<span style="font-style: italic;"><br>
@@ -2673,10 +2726,7 @@ require textual input will read it from stdin. Commands which generate
 textual output will be sent to stdout.</p>
 <p>This utility is intended to be used to enable Citadel server
 commands to
-be executed from shell scripts. Review the script called <tt>weekly</tt>
-which ships with the Citadel distribution for an example of how this
-can
-be used.</p>
+be executed from shell scripts.</p>
 <p><b>NOTE:</b> be sure that this utility is not world-executable. It
 connects to the server in privileged mode, and therefore could present
 a security hole