Carbonio’s architectural design

Have a Question?

All of the services shown in red boxes (the Core Components) in a typical multi-server setup should be deployed on a dedicated node, however all other services (the Optional Components in blue boxes) can be integrated and installed on any node, even a dedicated one. For instance, it could be a good idea to deploy Carbonio VideoServer on a dedicated node if it receives a lot of traffic, but User Management can be installed on the AppServer node rather than a dedicated node. We demonstrate how to build up a cluster of six nodes and mix the various Carbonio roles in the Node Installation scenario, which we use as an example.The Carbonio can add a Role, which is an atomic functionality, by installing one or more software packages.

Dependencies are represented in Fig. 1 by the boxes stacked on top of each other. In other words, the Proxy Node must have all *-UI packages installed, which contain the files required to display the Module to users.

The Postgres/DB-Connection role serves as an example of a specific situation. While Carbonio may be set up to connect directly to a Postgres database, it is advised to set up a middleware (PgPool-II) to allow for independence from the underlying database(s) and scalability without the need to set up numerous Postgres instances or even a Postgres cluster.

Core Elements

The Core Components are necessary for Carbonio’s fundamental features, including the ability for users to securely send and receive emails as well as manage their calendars and contacts. As follows:

Also keep in mind that for the Proxy and MTA nodes to function successfully, they must fulfil the following requirements:

  • both internal and exterior clients must be able to resolve their hostname.
  • they have setup the DNS server with proper FQDN, PTR, MX, and A records.
  • They may be reached via the Internet.
Alternative Parts

With optional components, we refer to all Carbonio roles that, as indicated by the orange boxes in Fig. 1, add features to the fundamental components. Any node may install optional components as long as the requirements are honoured.

  • Chat-UI. provides the capabilities for video calls and chat.
  • Users can save and distribute documents using files. Files-ui and Files-db, which offer user interface files for Files and scripts to initialise the Carbonio Files database and connections to it, respectively, are also part of this function.
  • Preview. a function that produces thumbnails of documents so users may preview them
  • Docs. includes the components docs-connection, docs-editor, and docs-core; it offers collaborative editing features.
  • In order to use the video conferencing service properly, it offers video communication features.
  • capturing on a video server. The VideoServer now has recording capabilities thanks to this module.
  • DB-connection. The carbonio-files-db and carbonio-mailbox-db packages provide this function, which is in charge of enabling communication between Carbonio and the database. The administration of the DB instance(s) would be more adaptable and scalable with the usage of Pgpool-II.
  • User Control. It registers user characteristics (such as which AppServer a user is logged in on) and user status (logged in or out).
  • VideoServer. It offers visual communication capabilities and is essential for using video conferencing services properly.
  • The VideoServer has the ability to record thanks to this module.
  • The administrative panel. To manage Carbonio’s configuration choices, go to the central administrative hub.
Compatible Mail Protocols

The next protocols that Carbonio supports are:

  • POP3, POP3S
  • The secure protocols of SMTP SPTMS (SMTP over TLS/SSL) and SSMTP
  • The secure protocol of IMAP IMAP over SSL, or IMAPS