Source Code
Required dependencies
The Citadel system relies on the following libraries in order to provide its full set of functionality. (If you are using pre-built packages, or the Easy Install system, these libraries will be brought in for you automatically.)
- Berkeley DB is used as the system's primary data store
- libical for calendar services
- libSieve for server-side sorting and filtering of incoming email
- The Expat XML parser to handle RSS feeds, Jabber/XMPP service, etc.
- libcurl for RSS and OpenID support
- libEV the A full-featured and high-performance event loop (>v4.x)
- c-ARES for asynchroneus nameserver resolution (> v1.73)
Optional dependencies
These will be used if they are present, otherwise the Citadel system will still build but with some minor features missing.
- OpenSSL for SSL/TLS encrypted protocols
- Shared Mime Info Citadel can utilize shared mimeinfo to identify filetypes.
- WebCit can use Icons named to follow the Freedesktop icon Specification as they're used by gnome, kde and so on. For example /usr/share/icons/gnome/24×24/mimetypes could be symlinked into your webcit/static/icons directory so you could use them.
- mod_auth_citadel if you want to integrate other web-applications running in apache with your citadel accounts
- SELinux integration for the Citadel Services: http://sourceforge.net/projects/citadelselinux/ contributed by Stuart Cianos
libcitadel
http://easyinstall.citadel.org/libcitadel-8.16.tar.gz
libcitadel contains common code which is shared across all of the components which make up the Citadel system. Its installation is mandatory. Please install it first. (If you are using pre-built packages, or the Easy Install system, this library will be brought in for you automatically.)
Citadel server
http://easyinstall.citadel.org/citadel-8.16.tar.gz
This is the most recent stable version of Citadel. This version is known to work on recent versions of Linux, FreeBSD and Solaris; it should work on other systems as well. See howto compile against EasyInstall in case of you wanting to temporarily replace your citserver. It contains both the server and a text-mode client. You can build an entire working system with this, or you can just build the client and connect to some other existing system. It also provides connectivity through:
- SMTP (Port 25 by default)
- POP3 (Port 110 by default; SSL Enabled on port 995)
- IMAP (Port 143 by default; SSL Enabled on port 993)
- Citadel (Port 504; used by dedicated Citadel clients)
- SMTP-MSA (Port 587; requires SMTP authentication)
- ManageSieve (Port 2020; edit your mail filtering scripts with your favorite GUI client)
- Postfix TCP dictionary (if you have an upstream mail hub running Postfix, it can use this service to verify valid email addresses on your Citadel)
- lmtp.socket (Local mail transport, for use with an external MTA if for some reason you do not wish to use Citadel's built in SMTP service)
- lmtp-unfiltered.socket (same as above, but without spam filtering)
- citadel.socket (Citadel protocol)
WebCit
http://easyinstall.citadel.org/webcit-8.16.tar.gz
WebCit provides an elegant, modern web user interface to Citadel, allowing users to access (and privileged users to administer) the system from any web browser. It also allows GroupDAV and Webcal (DAV) clients to connect. WebCit is installed in addition to a working Citadel server; it will not run by itself and it will not run over a non-Citadel server. In almost all cases you will want to run both services (although you can run them on different hosts if you want to).
Third-party contributions
Here are add-ons and other programs provided by Citadel users.
- Citadel client library for Perl programs by Robert Barta.
- Cron Calendar Paging
- Apache authentication module for Citadel users: http://sourceforge.net/projects/modauthcitadel contributed by Stuart Cianos.
- SELinux integration for the Citadel Services: http://sourceforge.net/projects/citadelselinux/ contributed by Stuart Cianos
- Baby Citadel php Restfull api by Warren
- Python Citadel Client by dugres
Source code repository
Developers can also download the current development sources from the repository. If you intend to do development work on the Citadel code then you should work with this version, but do not attempt to run a production system on unreleased code.