]> code.citadel.org Git - citadel.git/blobdiff - citadel/docs/citadel.html
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>
 <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>
 <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>
     <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>
       </i></td>
     </tr>
     <tr>
@@ -59,17 +57,16 @@ developer<br>
       </i></td>
     </tr>
     <tr>
       </i></td>
     </tr>
     <tr>
-      <td valign="top">Michael Hampton<br>
+      <td valign="top">Wilfried Goesgens<br>
       </td>
       </td>
-      <td valign="top"><i>client software development<br>
+      <td valign="top"><i>build system patches<br>
       </i></td>
     </tr>
     <tr>
       </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>
+      <td valign="top"><i>client software development<br>
+      </i></td>
     </tr>
     <tr>
       <td valign="top">Andru Luvisi<br>
     </tr>
     <tr>
       <td valign="top">Andru Luvisi<br>
@@ -86,8 +83,13 @@ search algorithm</span><br>
     <tr>
       <td valign="top">Stu Mark<br>
       </td>
     <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>
       </i></td>
     </tr>
     <tr>
@@ -102,11 +104,16 @@ design<br>
       <td valign="top"><i>assistance with project management<br>
       </i></td>
     </tr>
       <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>
     <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>
       </i></td>
     </tr>
     <tr>
@@ -125,14 +132,13 @@ encoder/decoder<br>
 </table>
 </div>
 <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
 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
 <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
 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>
 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>
   <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
   <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>
 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.
 <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>
 </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
 </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>
 "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
 <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
 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
 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
 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>
 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
 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
 </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>
 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>
 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
 <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
 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>
 <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>
 </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>
 <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
 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
 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
 <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>
 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
 <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>
   <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>
 <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
 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
 <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