<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 ©1987-2005 by the Citadel development team:<br>
+<h2>an open source messaging and collaboration platform</h2>
+Copyright ©1987-2006 by the Citadel development team:<br>
<br>
<table align="center" border="0" cellpadding="2" cellspacing="2">
<tbody>
<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>
- <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>
<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>
<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>
</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. 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
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>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
"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
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 "Always compose messages with the full-screen
+editor" 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
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
<<$HOME/archive</tt> to save copies of important messages in a
</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></tt> room.
+on the Citadel network which carries the <tt>Citadel/UX></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>
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. Normally you will leave this
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>"Instant expunge" 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 "expunge" 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>"Allow spoofing" 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>
</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>
build and maintain a searchable index of all messages on the
system. This is a time and resource intensive process -- it could
take days to build the index if you enable it on a large
-database. Once enabled, however, it will be updated incrementally
+database. 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. Once enabled, however, it will be updated
+incrementally
and will not have any noticeable impact on the interactive response
time of your system. 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 "Perform journaling..." 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
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 "host:port" 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
<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;">db_archive -d -h
-/usr/local/citadel/data</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>
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