Architecture of Carbonio

Architecture of Carbonio#

Fig. 1 shows the internal architecture of Carbonio with all its components.


Fig. 1 Simplified architecture of Carbonio.#

A typical Carbonio installation consists of various Components installed on multiple Nodes. Each of the component depicted by the red boxes should be installed on a different Node, while all the others can be combined and installed on one or more Nodes. For example, if Carbonio VideoServer is heavily used, it could be a good idea to install it on a dedicated node, while on the other hand Provisioning can be installed on the Mailstore & Provisioning (AppServer) Node instead of on a dedicated node.

In Fig. 1, dependencies are denoted by the boxes piled on top of the bottom one. In other words, all the *-UI packages, which contain the files necessary to show the Module to the users, must be installed on the Proxy Node.


-UI packages provide the front-end files to access the service from a browser or mobile app.

A special case is represented by the Postgres/DB-Connection component. While Carbonio can be installed to communicate directly with a Postgres database, it is suggested to install the PgPool-II middleware in order to be independent of the underlying database(s) and be able to scale without the need to configure multiple Postgres instances or even a Postgres cluster.

The use of Pgpool-II would therefore improve flexibility and scalability in the management of the DB instance(s).

Supported Mail Protocols#

Carbonio supports the following protocols:

  • POP3 and POP3S

  • SMTP and its secure protocols SSMTP and SPTMS (SMTP over TLS/SSL)

  • IMAP and its secure protocol IMAPS (IMAP over SSL)