Citadel is an easy, versatile, and powerful email and collaboration suite that utilises a “rooms”-based architecture, allowing for a most unique workflow. Its easy installation and simple and intuitive administration places it among the best groupware solutions available and one that is also 100% free and open source.
The suite offers email, calendaring, address books, bulletin boards, instant messaging in a single server package with built-in data stores, and its own implementation of various server protocols such as IMAP, POP3, SMTP, ManageSieve, XMPP, and Citadel. Citadel’s feature list is nothing short of impressive. Besides the aforementioned functions, it offers:
- high-performance, multiprotocol, multithreaded server engine
- built-in wiki and blog engines, making it a CMS as well as an email server
- web browser, telnet/SSH, local client software accessibility
- Group calendaring and scheduling (WebDAV, GroupDAV, and Kolab-1 compatible)
- built-in mailing list server (listserv)
- built-in RSS feed aggregation
- integrated server-side mail sorting and filtering. (Web-based rule editor or Sieve script)
- support for push e-mail and mobile devices
- database-driven, single-instance message store
- built-in full text index
- multiple domain support
- built-in integration with Realtime Blackhole Lists (RBL’s), SpamAssassin, and ClamAV antivirus
- server-to-server replication
- Web-based access to email, calendars, and everything else through a powerful AJAX-style front end
- very strong support for “public folders” and message forums
- built-in instant messenger service
- SSL/TLS encryption for all protocols
Best of all, this all comes as a tightly integrated single package (apart from 3rd-party software like SpamAssassin, etc.) that takes literally minutes to install and configure.
Getting Citadel
Citadel most probably comes pre-packaged for your distribution. For Debian- (and Ubuntu-) based servers, all you need to do is type
to install it as a single meta-package from your distribution’s official repositories. If you prefer to use Citadel’s own apt-source, you can find more information about installation and the included packages here.
You can find instructions for RPM builds here, and the Citadel website also provides easy-to-follow, detailed instructions for many other installation scenarios, such as building from source alongside an easy install script for those less comfortable with compiling for themselves.
Installation
Note: just like before any modifications, you should start with backing up your server first.
When you install the citadel-suite meta-package, you will be presented with a simple setup, which will allow you to pre-configure your server in minutes.
First, you will be asked to specify a listening address. If you don’t have a specific address, you can leave this at its default 0.0.0.0, meaning the server will listen on all addresses.
Next you will be asked to choose your preferred authentication method. Citadel can handle its own users, have access to the system users’ credentials, or use any standard LDAP source or even Active Directory. If you are unsure, have no access to the system or user database, or prefer not to use it, you can just use the default “Internal” option which will let you create user accounts inside your Citadel instance. If you have a more elaborate infrastructure, just proceed accordingly.
The next step will require you to specify the administrative account. If you’ve chosen internal authentication, this will be a new account for which you should choose a username (possibly one other than “admin;” the below screenshot shows the worst possible practice). For any other authentication method, you must specify an existing user.
If you have only just created your user, it is most advisable to set up an admin password here. Citadel does not make this step mandatory, but you should set up a strong password nevertheless.
If you have an Apache webserver already running, you can select it form the next window. If you do not, or you want to separate your Citadel instance completely (to have full control over it or whatever reason you have in mind), you can always use the built-in HTTP server (webcit).
If you chose to go with webcit, you can then specify the ports it listens on. First, the plain “http” port needs to be set. If you do not run other web services that use port 80, leaving this default will be best. (Using any other port, if 80 is available, will provide no significant increase in security.) If you want to disable plain HTTP access, just set it to -1.
If you plan to use SSL connections, you can set up the SSL port on the next page. The standard 443 is pre-populated. Whatever port you choose, you must make sure it is not in use, and keep in mind that some clients or access points (like public WIFI hotspots, etc.) will not allow SSL traffic through a non-standard port. If you have complete control over your traffic (clients, firewall, etc.), you can choose any port you set up properly. If in doubt, just leave it on the default setting. You can disable SSL access by setting this value to -1.
There is also an option to pre-set the language on the web interface’s login screen.
You are ready. Your package manager (or the easy install script) will now finish installing necessary packages, and you should be up and running in no time. If, for any reason, you would need to change the above configuration, you can re-run these steps with
or by directly editing “etc/default/webcit.”
Citadel does not let go of your hand even after installation. Their getting started page offers a very extensive list of post installation tasks, from basics like verifying running processes and listening ports to choosing spam filtering strategies. The documentation is very detailed and easy to follow. It will guide you through setting up Citadel properly and shaping it to your specific needs.
Inside Citadel
Once the installation is finished, you can easily access Citadel’s admin interface by opening a browser and navigating to either localhost or 127.0.0.1 if you have installed Citadel on the standard port or have specified the right port number (e.g. 127.0.0.1:8080 or localhost:8080). Here you can enter your admin credentials.
You will find yourself in the very first room, called the “Lobby”, that presents you with your first unread message, welcoming you to the system.
Rooms
One thing you have probably already noticed is a key difference in terminology. Instead of (message) walls, (hash)tags, labels or projects, Citadel organises messages in rooms. This metaphor is nothing new. Citadel originated in 1981, making it not only one of the most mature groupware solutions available but one with a very different way of thinking and free of the hyped modern services.
Thinking in rooms is meant to be a natural way to approach your work flow. Just as you would move inside a house, you will navigate your Citadel by moving form room to room. Having been at it for over thirty years, the people behind Citadel explain it the best:
Navigating rooms
In practice, this means that navigations will be as simple as clicking “Goto next room,”
and you will be taken to the next room that has any unread items. These can be anything: messages, calendar items, or any other type of data, even system messages.
You do not need to know where you are going. You will be taken to the next place that has meaningful new content to offer. When you’ve received new information, you can interact with it. Answer it, modify it, work on it, then move on to the next room. It works very much like functioning in a real-life situation.
Once in a room, you have the options to “Ungoto” (go back to the previous), read new/all messages, enter a new message, skip the room, or go on ahead.
You can leave a message in any room you visit. When you add a new message, you have some basic formatting options,
or you can directly edit the HTML. Of course, individual rooms can be accessed directly, and users can create rooms of their own so that they can put relevant information into one place.
Navigating Citadel from the side menu
Citadel also offers a straightforward side menu.
On top you will find the “Summary” page that will allow you to quickly assess any new messages, calendar events or tasks, and see who’s on-line. The view can, of course, be fitted to your needs.
Rooms are for collaboration, but Citadel also works as an email/calendar server for you to have your personal Email Inbox, Calendar, Contact list, Notes and Task list. These are organised into folders and can also be quickly accessed as individual menus on the sidebar. The user interface is consistent, and at times surprisingly intuitive.
While all the above folders offer precisely what you can expect, such as a list of emails, tasks, or a basic calendar view; notes, for example, will be placed on a “canvas” post-it-style.
The folder icon below “Tasks” gives you direct access to rooms, both as a short-cut from the sidebar
and as a full overview of available rooms and folders. You will notice that just like any respectable Citadel, this one also has floors, which adds a whole new dimension to the room based navigation metaphor.
You can also see a list of online users and chat with them directly, while the “Advanced” menu will offer some more detailed navigation and interaction options.
The “Administration” menu will provide you with the most useful direct commands to interact with the system,
and its sub-menus will allow for fine-grain control over the system. There is no need to edit configuration files; literally everything is accessible form the web interface.
Detailed usage guides
It might take some getting used to, but even after a short time spent with it, using Citadel will most probably become natural. This architecture is the most unique and is one of the most intuitive ways to interact with software. Of course, Citadel offers much more than a single article could cover. For more information about setup and usage, you can always refer to Citadel’s extensive knowledge base. Just make sure you use the search bar; it will give you many more options that you would find by browsing only.
Citadel is fully open source. This means you can make anything out of it that you like. If you are unsure where to start or get stuck at any point, you can always refer to Citadel’s extremely detailed documentation.
Conclusion
Citadel is a tightly integrated, highly customisable, easy to use groupware suite, offering tried and tested methods of the past thirty years. Among many hyped server solutions that often require “premium membership” or paid “pro versions”, Citadel’s shines through not only with being fully free (both as in freedom and free beer) and open source but also more intuitive to use and closer to a real-life workflow, which makes transitioning faster and training users more efficient. Citadel’s extensively-used cases are well-documented and easy to implement, making it one of the very best groupware solutions available today.
Attila is a writer, blogger and author with a background in IT management. Using GNU/Linux systems both personally and professionally, his advice stems from 10+ years of hands on experience. In his free time he also runs the popular Meditation for Beginners blog.
Our latest tutorials delivered straight to your inbox