Home Download FAQ / Knowledge Base Screenshots Documentation Support Roadmap

Can we use other databases (MariaDB, Postgres, etc.) with Citadel?

You're probably asking this, because...

Accessing your email

Although there are solutions available that use SQL database backends, Citadel does not. You wouldn't want to access the database on an SQL basis on dbmail either, since it would harm the application's abstraction model. However, Citadel does offer several ways to access your email without hurting that principle. The preferred way is to use the Citadel Protocol as an API to access your email. If you want to get a more detailed picture, have a look at sample client source code. The other ways would be using IMAP to access them.

Backing up your data

There are several ways to do so. Some of them require a service window; others can be done "hot". For an architecture-independent backup (if you were to move from a SPARC box to an Intel one, for example) Citadel has data export and import commands. The quicker way may be copying the Berkeley DB files within the data/ directory, which you can combine with LVM or Btrfs snapshots to make the process perfect.

How Citadel stores your data

Citadel uses a "NoSQL" data store. There is a cleanly defined interface to plug in back end storage engines, and more can be added in the future. However, at this time the only store that is implemented is Berkeley DB. In the future we may add LMDB and others.

NoSQL databases do not have a schema layer, and that is why it is unlikely that a SQL store driver will be built in the foreseeable future.

There are no social media links here. Enjoy a friendly Citadel community instead. Or go outside.