How To Deploy a Collaborative Private E-mail Server Carbonio Community Edition for Free Using Ubuntu 22.04LTS | Carbonio CE

Integrating Carbonio Community Edition (CE) with Ubuntu 22.04LTS represents a game-changer for open-source email and collaboration platforms. This partnership brings unmatched stability and performance optimization, making Carbonio CE more accessible and user-friendly across diverse IT infrastructures. With expanding OS support, Carbonio CE is becoming the go-to solution for businesses, enterprises, and privacy-focused individuals seeking a reliable collaboration tool.

This article showcases the streamlined installation process of Carbonio CE on Ubuntu 22.04 LTS, designed to break down technical barriers for users. Plus, we’re offering an exclusive surprise to elevate your Carbonio CE experience further. Discover how this powerful duo can enhance your collaboration efforts, ensuring security, scalability, and efficiency.

Ubuntu 22.04 LTS and PostgreSQL-16 boost Carbonio CE more than ever. Let’s take a quick look at some key factors:

Security:

Regular Security Updates: Ubuntu 22.04 LTS offers five years of guaranteed security updates, ensuring the system is protected against the latest threats, while PostgreSQL 16 comes with robust security features and regular patches.
Enhanced Data Encryption: PostgreSQL 16 introduces advanced data encryption capabilities, providing an additional layer of security for sensitive data stored in databases.

Performance:

Optimized Resource Usage: Ubuntu 22.04 LTS is known for its efficient use of system resources, enhancing application performance. PostgreSQL 16 further optimizes data processing speeds with improvements in indexing and partitioning.
Advanced Query Processing: PostgreSQL 16 features smarter query planning and execution, significantly reducing response times for complex data requests.
Improved Parallel Processing: Enhancements in parallel query execution in PostgreSQL 16 ensure better utilization of system resources, speeding up data analysis and retrieval tasks.

Stability:

Long-Term Support (LTS): With Ubuntu 22.04 being an LTS release, users receive a stable operating environment with support and updates over an extended period, reducing the risk of compatibility issues.
Proven Database Reliability: PostgreSQL’s reputation for reliability is bolstered in version 16 with improvements in fail-over, recovery processes, and system diagnostics, ensuring database integrity and uptime.
Consistent Performance Under Load: Both Ubuntu 22.04 and PostgreSQL 16 demonstrate stable performance under varying loads, making them suitable for applications with fluctuating demand patterns.

Adopting Ubuntu 22.04 LTS and PostgreSQL 16 for Carbonio CE not only secures your digital assets but also ensures they run smoothly and reliably, even under demanding conditions, making it an ideal combination for modern, data-driven applications.

As Carbonio CE is platform agnostic, you can install it in both physical or cloud platform. Though I assume you already know the requirements, still I am sharing then for your reference:

Intel or AMD 64-bit CPU 1.5 GHz
8 GB of RAM
40 GB of disk space for the operating system and Carbonio CE
Internet connectivity
FQDN (fully qualified domain name), let’s say https://mail.example.com
Valid A & MX records for server and domain
A clean installation of the operating system*

Now some additional suggestions based on these requirements:.

  1. What ever amount of RAM you are going to use, try to avoid using single RAM. To avoid single point of failure always use 2 RAMs, like 4+4 or 8+8 or 16 +16
  2. Keep OS partition separate from the Carbonio CE system partition (/opt/zextras)
  3. Use advanced partitioning technique (i.e LVM etc.)
  4. Use raid at Hardware level to create fault tolerance.
  5. You server should have dual network interface again to avoid single point of failure. Later you can create bonding or teaming to enhance fault tolerance and Bandwidth capacity

1. I assume you have a domain (example.com) with all necessary DNS records (A, MX, TXT, SPF, DMARC etc.) published. But if you do not have published DNS records then you can use DNSMASQ also though it is not at all recommended for production environment.

2. Fill out this form (https://www.zextras.com/carbonio-community-edition/#discoverproduct) to get the script to configure zextras repository for your system. Current script is compatible for both Ubuntu 20.04LTS and Ubuntu 22.04LTS.

FAQ: Carbonio CE Installation Script

You do not need multiple scripts from Ubuntu. For your convenience, we made a common script that works for both Ubuntu 20.04LTS and Ubuntu 22.04LTS. So fill out the form ( and execute the script without any worry of which version of Ubuntu (20/22) you are using πŸ™‚

3. After adding the script clean up the apt cache, update the repo list and upgrade all available packages:

root@vmi1500650:~# apt clean all
root@vmi1500650:~# apt update
Hit:1 http://asi-fs-n.contabo.net/ubuntu jammy InRelease
Hit:2 http://asi-fs-n.contabo.net/ubuntu jammy-updates InRelease
Hit:3 http://asi-fs-n.contabo.net/ubuntu jammy-backports InRelease
Hit:4 http://security.ubuntu.com/ubuntu jammy-security InRelease
Hit:5 https://repo.zextras.io/release/ubuntu jammy InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
1 package can be upgraded. Run 'apt list --upgradable' to see it.
root@vmi1500650:~# apt upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
  linux-image-5.4.0-105-generic linux-modules-5.4.0-105-generic
Use 'apt autoremove' to remove them.
The following packages have been kept back:
  coreutils
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
root@vmi1500650:~#

4. Set hostname of your server

root@mail:~# hostnamectl set-hostname mail.sampleserver.xyz

5. Modify /etc/hosts file.

root@mail:~# > /etc/hosts
root@mail:~# echo "127.0.0.1 localhost" >> /etc/hosts
root@mail:~# echo "$(hostname -i)  $(hostname -f)  $(hostname -s)" >> /etc/hosts
root@mail:~#
root@mail:~# cat /etc/hosts
127.0.0.1 localhost
161.97.99.169  mail.sampleserver.xyz  mail
root@mail:~#

Also disable IPv6:

root@mail:~# sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1 && sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
root@mail:~#

6. Set your preferred timezone

root@mail:~# timedatectl set-timezone Asia/Dhaka
root@mail:~#
root@mail:~# timedatectl
               Local time: Fri 2024-03-29 18:57:29 +06
           Universal time: Fri 2024-03-29 12:57:29 UTC
                 RTC time: Fri 2024-03-29 12:57:29
                Time zone: Asia/Dhaka (+06, +0600)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
root@mail:~#

7. Now we are going to install PostgreSQL-16.

FAQ: Postgresql-12 or Postgresql-16?

you should definitely use PostgreSQL-16 for your Carbonio CE setup to ensure security and take advantage of any new features or improvements that come with this version. Always ensure to check the compatibility and support documentation provided by Zextras for any specific requirements or recommendations regarding PostgreSQL versions.

root@mail:~# sudo sh -c "echo 'deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main' > /etc/apt/sources.list.d/pgdg.list"
root@mail:~# wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
OK
root@mail:~# apt clean all
root@mail:~# apt update
Hit:1 http://asi-fs-n.contabo.net/ubuntu jammy InRelease
Hit:2 http://asi-fs-n.contabo.net/ubuntu jammy-updates InRelease
Hit:3 http://asi-fs-n.contabo.net/ubuntu jammy-backports InRelease
Hit:4 http://security.ubuntu.com/ubuntu jammy-security InRelease
Hit:5 https://repo.zextras.io/release/ubuntu jammy InRelease
Get:6 https://apt.postgresql.org/pub/repos/apt jammy-pgdg InRelease [123 kB]
Get:7 https://apt.postgresql.org/pub/repos/apt jammy-pgdg/main amd64 Packages [299 kB]
Fetched 422 kB in 3s (139 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
1 package can be upgraded. Run 'apt list --upgradable' to see it.
W: https://apt.postgresql.org/pub/repos/apt/dists/jammy-pgdg/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
N: Skipping acquire of configured file 'main/binary-i386/Packages' as repository 'https://apt.postgresql.org/pub/repos/apt jammy-pgdg InRelease' doesn't support architecture 'i386'
root@mail:~#
root@mail:~# apt install postgresql-16 -y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
  linux-image-5.4.0-105-generic linux-modules-5.4.0-105-generic
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
  libcommon-sense-perl libjson-perl libjson-xs-perl libllvm15 libpq5 libsensors-config libsensors5 libtypes-serialiser-perl
  libxslt1.1 postgresql-client-16 postgresql-client-common postgresql-common ssl-cert sysstat
Suggested packages:
............................................
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok
Processing triggers for man-db (2.10.2-1) ...
Processing triggers for libc-bin (2.35-0ubuntu3.6) ...
root@mail:~#

8. Modify PostgreSQL DB

check the postgresql config file:

vi /etc/postgresql/16/main/pg_hba.conf
[find]
#IPv4 local connections:
host all all 127.0.0.1/32 ident

[Replace with]
#IPv4 local connections:
host all all 127.0.0.1/32 md5

systemctl reload postgresql

Create ROLE and DATABASE in postgres.

root@mail:~# read -s -p "Password for carbonio_adm role: " DB_ADM_PWD
Password for carbonio_adm role: 
root@mail:~#
root@mail:~# sudo su - postgres -c "psql --command=\"CREATE ROLE carbonio_adm WITH LOGIN SUPERUSER ENCRYPTED PASSWORD '${DB_ADM_PWD}';\""
CREATE ROLE
root@mail:~#
root@mail:~# su - postgres -c "psql --command=\"CREATE DATABASE carbonio_adm owner carbonio_adm;\""
CREATE DATABASE
root@mail:~#

9. Install Carbonio CE Packages.

Before installing packages, please check the official documentations for the latest information about packages.

root@mail:~# apt install -y service-discover-server \
carbonio-directory-server carbonio-files-db carbonio-mailbox-db \
carbonio-docs-connector-db carbonio-tasks-db carbonio-proxy \
carbonio-webui carbonio-files-ui carbonio-tasks-ui \
carbonio-files-public-folder-ui carbonio-user-management \
carbonio-mta carbonio-appserver carbonio-storages-ce \
carbonio-files-ce carbonio-preview-ce carbonio-docs-connector-ce \
carbonio-tasks-ce carbonio-docs-editor carbonio-prometheus

10. Bootstrap Carbonio Packages

root@mail:~# carbonio-bootstrap
----------------------------------
| Starting Carbonio Bootstrap... |
----------------------------------
--------------------------------------------------------------------------------
The system is going to start configuring all the packages.

If you are installing Carbonio CE please refer to every single package license
and to the Github repo for more informations on open source licenses:
https://github.com/Zextras

If you are also installing Carbonio please refer to every single package
license, to the Github repo for more informations on open source licenses:
https://github.com/Zextras and to the Zextras EULA for the proprietary
software: https://zextras.com/licenses
--------------------------------------------------------------------------------

Operations logged to /tmp/zmsetup.20240329-192513.log

Bootstrap mode: new install
Installing LDAP configuration database...done.
Setting defaults...

Querying DNS for "A" record of current hostname mail.sampleserver.xyz...

Querying DNS for "MX" record of sampleserver.xyz...

Querying DNS for "A" record of mail.sampleserver.xyz... MX: mail.sampleserver.xyz (161.97.99.169)

        Interface: 127.0.0.1
        Interface: 161.97.99.169


Querying DNS for "A" record of mail.sampleserver.xyz...         161.97.99.169


Querying DNS for "A" record of mail.sampleserver.xyz...         161.97.99.169
done.
Checking for port conflicts

Main menu

   1) Common Configuration:
   2) carbonio-antivirus:                      Enabled
   3) carbonio-directory-server:               Enabled
   4) carbonio-mta:                            Enabled
   5) carbonio-appserver:                      Enabled
   6) carbonio-proxy:                          Enabled
   s) Save config to file
   x) Expand menu
   q) Quit

*** CONFIGURATION COMPLETE - press 'y' to apply configuration
Select from menu, or press 'y' to apply config (? - help)

Please set your timezone one more time from the 1) Common Configuration.

11. Now configure Carbonio Mesh

root@mail:~# service-discover setup-wizard
Setup of first service-discover server instance eth0 161.97.99.169/18
Specify the binding address for service discovery: 161.97.99.169
Create the cluster credentials password (will be used for setups):
Type the credential password again:
root@mail:~#

11. Now configure Pending-setups

root@mail:~# pending-setups -a
Insert the cluster credential password:

Executing all setup scripts...

--------------------------------------------------------------------------------
Executing /etc/zextras/pending-setups.d/carbonio-mailbox.sh
Insert the cluster credential password:
Config entry written: service-defaults/carbonio-mailbox
Config entry written: service-intentions/carbonio-mailbox
Configuration reload triggered
Setup successful, moving carbonio-mailbox.sh to /etc/zextras/pending-setups.d/done/
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Executing /etc/zextras/pending-setups.d/carbonio-tasks-db-setup.sh
Insert the cluster credential password:
Config entry written: service-defaults/carbonio-tasks-db
Config entry written: service-intentions/carbonio-tasks-db
Configuration reload triggered
Setup successful, moving carbonio-tasks-db-setup.sh to /etc/zextras/pending-setups.d/done/
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Executing /etc/zextras/pending-setups.d/carbonio-clamav-signature-provider-setup.sh
Insert the cluster credential password:
Config entry written: service-defaults/carbonio-clamav-signature-provider
Config entry written: service-intentions/carbonio-clamav-signature-provider
Configuration reload triggered
Setup successful, moving carbonio-clamav-signature-provider-setup.sh to /etc/zextras/pending-setups.d/done/
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Executing /etc/zextras/pending-setups.d/carbonio-storages-setup.sh
insert the cluster credential password:
Config entry written: service-defaults/carbonio-storages
Config entry written: service-intentions/carbonio-storages
Log directory :  /var/log/carbonio/storages/
Store directory :  /opt/zextras/carbonio-storages
Configuration reload triggered
Setup successful, moving carbonio-storages-setup.sh to /etc/zextras/pending-setups.d/done/
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Executing /etc/zextras/pending-setups.d/carbonio-docs-connector-db-setup.sh
Insert the cluster credential password:
Config entry written: service-defaults/carbonio-docs-connector-db
Config entry written: service-intentions/carbonio-docs-connector-db
Configuration reload triggered
Setup successful, moving carbonio-docs-connector-db-setup.sh to /etc/zextras/pending-setups.d/done/
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Executing /etc/zextras/pending-setups.d/carbonio-docs-editor.sh
Insert the cluster credential password:
/etc/carbonio/docs-editor/service-discover//service-resolver.json configuration file correctly generated
/etc/carbonio/docs-editor/service-discover//service-router.json configuration file correctly generated
/etc/zextras/service-discover/carbonio-docs-editor.hcl sidecarconfiguration file correctly updated
Config entry written: service-defaults/carbonio-docs-editor
Config entry written: service-intentions/carbonio-docs-editor
Configuration reload triggered
Config entry written: service-resolver/carbonio-docs-editor
Config entry written: service-router/carbonio-docs-editor
Setup successful, moving carbonio-docs-editor.sh to /etc/zextras/pending-setups.d/done/
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Executing /etc/zextras/pending-setups.d/set-carbonio-prometheus-mysqld-exporter.sh
Setup successful, moving set-carbonio-prometheus-mysqld-exporter.sh to /etc/zextras/pending-setups.d/done/
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Executing /etc/zextras/pending-setups.d/carbonio-prometheus.sh
Insert the cluster credential password:
Restarting Carbonio Prometheus Service
Reloading Service Discover
Configuration reload triggered
Setup successful, moving carbonio-prometheus.sh to /etc/zextras/pending-setups.d/done/
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Executing /etc/zextras/pending-setups.d/carbonio-proxy-setup.sh
Insert the cluster credential password:
Config entry written: service-defaults/carbonio-proxy
Configuration reload triggered
Setup successful, moving carbonio-proxy-setup.sh to /etc/zextras/pending-setups.d/done/
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Executing /etc/zextras/pending-setups.d/carbonio-user-management.sh
Insert the cluster credential password:
Config entry written: service-defaults/carbonio-user-management
Config entry written: service-intentions/carbonio-user-management
Configuration reload triggered
Setup successful, moving carbonio-user-management.sh to /etc/zextras/pending-setups.d/done/
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Executing /etc/zextras/pending-setups.d/carbonio-mta.sh
Insert the cluster credential password:
Config entry written: service-defaults/carbonio-mta
Config entry written: service-intentions/carbonio-mta
Configuration reload triggered
Setup successful, moving carbonio-mta.sh to /etc/zextras/pending-setups.d/done/
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Executing /etc/zextras/pending-setups.d/carbonio-files.sh
Insert the cluster credential password:
Config entry written: service-defaults/carbonio-files
Config entry written: service-intentions/carbonio-files
Config entry written: service-router/carbonio-files
Configuration reload triggered
Setup successful, moving carbonio-files.sh to /etc/zextras/pending-setups.d/done/
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Executing /etc/zextras/pending-setups.d/carbonio-clamav-setup.sh
Insert the cluster credential password:
Config entry written: service-defaults/carbonio-clamav
Config entry written: service-intentions/carbonio-clamav
Configuration reload triggered
Setup successful, moving carbonio-clamav-setup.sh to /etc/zextras/pending-setups.d/done/
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Executing /etc/zextras/pending-setups.d/set-carbonio-prometheus-openldap-exporter.sh
Setup successful, moving set-carbonio-prometheus-openldap-exporter.sh to /etc/zextras/pending-setups.d/done/
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Executing /etc/zextras/pending-setups.d/carbonio-docs-connector.sh
Insert the cluster credential password:
Config entry written: service-defaults/carbonio-docs-connector
Config entry written: service-intentions/carbonio-docs-connector
Configuration reload triggered
Setup successful, moving carbonio-docs-connector.sh to /etc/zextras/pending-setups.d/done/
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Executing /etc/zextras/pending-setups.d/carbonio-mailbox-db-setup.sh
Insert the cluster credential password:
Config entry written: service-defaults/carbonio-mailbox-db
Config entry written: service-intentions/carbonio-mailbox-db
Configuration reload triggered
Setup successful, moving carbonio-mailbox-db-setup.sh to /etc/zextras/pending-setups.d/done/
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Executing /etc/zextras/pending-setups.d/carbonio-preview.sh
insert the cluster credential password:
Config entry written: service-defaults/carbonio-preview
Config entry written: service-intentions/carbonio-preview
Configuration reload triggered
Setup successful, moving carbonio-preview.sh to /etc/zextras/pending-setups.d/done/
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Executing /etc/zextras/pending-setups.d/carbonio-tasks.sh
Insert the cluster credential password:
Config entry written: service-defaults/carbonio-tasks
Config entry written: service-intentions/carbonio-tasks
Configuration reload triggered
Setup successful, moving carbonio-tasks.sh to /etc/zextras/pending-setups.d/done/
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Executing /etc/zextras/pending-setups.d/carbonio-files-db-setup.sh
Insert the cluster credential password:
Config entry written: service-defaults/carbonio-files-db
Config entry written: service-intentions/carbonio-files-db
Configuration reload triggered
Setup successful, moving carbonio-files-db-setup.sh to /etc/zextras/pending-setups.d/done/
--------------------------------------------------------------------------------

There are no pending-setups to run. Exiting!
root@mail:~#

12. We need to bootstrap Carbonio Files and Tasks DB.

root@mail:~# PGPASSWORD=$DB_ADM_PWD carbonio-files-db-bootstrap carbonio_adm 127.0.0.1
Database: 127.0.0.1:5432 user carbonio_adm
Check postgres connection: OK
CREATE ROLE
CREATE DATABASE
====================================================
carbonio-files-db database initialized successfully!
====================================================
root@mail:~#
root@mail:~# PGPASSWORD=$DB_ADM_PWD carbonio-tasks-db-bootstrap carbonio_adm 127.0.0.1
Database: 127.0.0.1:5432 user carbonio_adm
Check postgres connection: OK
CREATE ROLE
CREATE DATABASE
====================================================
carbonio-tasks-db database initialized successfully!
====================================================
root@mail:~#

Up until now we have configured the basic features of Carbonio CE. So if you reboot the server now and restart services then you would be able to avail:

  1. Mail
  2. Contacts
  3. Calendar
  4. Contact Groups and Distribution Lists
  5. Files
  6. Tasks
  7. Search
  8. Settings

But now we will focus on configuring the Workstream Collaboration in Carbonio CE. Which will add the Chat & Video Meeting feature in the system.

13. Configure and modify the Carbonio Message Dispatcher DB

root@mail:~# apt install carbonio-message-dispatcher-db -y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
  linux-image-5.4.0-105-generic linux-modules-5.4.0-105-generic
Use 'apt autoremove' to remove them.
The following NEW packages will be installed:
  carbonio-message-dispatcher-db
0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
Need to get 3,654 B of archives.
After this operation, 6,144 B of additional disk space will be used.
Get:1 https://repo.zextras.io/release/ubuntu jammy/main amd64 carbonio-message-dispatcher-db amd64 0.2.0-1ubuntu [3,654 B]
Fetched 3,654 B in 0s (7,797 B/s)
Selecting previously unselected package carbonio-message-dispatcher-db.
(Reading database ... 132673 files and directories currently installed.)
Preparing to unpack .../carbonio-message-dispatcher-db_0.2.0-1ubuntu_amd64.deb ...
Unpacking carbonio-message-dispatcher-db (0.2.0-1ubuntu) ...
Setting up carbonio-message-dispatcher-db (0.2.0-1ubuntu) ...
======================================================
Carbonio Message Dispatcher DB installed successfully!
You must run pending-setups to configure it correctly.
======================================================
root@mail:~#
root@mail:~#
root@mail:~# pending-setups -a
Insert the cluster credential password:

Executing all setup scripts...

--------------------------------------------------------------------------------
Executing /etc/zextras/pending-setups.d/carbonio-message-dispatcher-db-setup.sh
Insert the cluster credential password:
Config entry written: service-defaults/carbonio-message-dispatcher-db
Config entry written: service-intentions/carbonio-message-dispatcher-db
Configuration reload triggered
Setup successful, moving carbonio-message-dispatcher-db-setup.sh to /etc/zextras/pending-setups.d/done/
--------------------------------------------------------------------------------

There are no pending-setups to run. Exiting!
root@mail:~#
root@mail:~#
root@mail:~# PGPASSWORD=$DB_ADM_PWD carbonio-message-dispatcher-db-bootstrap carbonio_adm 127.0.0.1
Database: 127.0.0.1:5432 user carbonio_adm
Success! Data written to: carbonio-message-dispatcher-db/db-name
Success! Data written to: carbonio-message-dispatcher-db/db-username
Success! Data written to: carbonio-message-dispatcher-db/db-password
CREATE ROLE
CREATE DATABASE
Database initialization completed.
root@mail:~#

14. Now we are going to configure Carbonio Message Dispatcher

root@mail:~# apt install carbonio-message-dispatcher -y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
  linux-image-5.4.0-105-generic linux-modules-5.4.0-105-generic
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
  carbonio-erlang
The following NEW packages will be installed:
  carbonio-erlang carbonio-message-dispatcher
0 upgraded, 2 newly installed, 0 to remove and 1 not upgraded.
Need to get 112 MB of archives.
After this operation, 296 MB of additional disk space will be used.
Get:1 https://repo.zextras.io/release/ubuntu jammy/main amd64 carbonio-erlang amd64 26.1.1-1jammy [54.1 MB]
Get:2 https://repo.zextras.io/release/ubuntu jammy/main amd64 carbonio-message-dispatcher amd64 0.13.0-1jammy [58.3 MB]
Fetched 112 MB in 5s (21.5 MB/s)
Selecting previously unselected package carbonio-erlang.
(Reading database ... 132683 files and directories currently installed.)
Preparing to unpack .../carbonio-erlang_26.1.1-1jammy_amd64.deb ...
Unpacking carbonio-erlang (26.1.1-1jammy) ...
Selecting previously unselected package carbonio-message-dispatcher.
Preparing to unpack .../carbonio-message-dispatcher_0.13.0-1jammy_amd64.deb ...
Unpacking carbonio-message-dispatcher (0.13.0-1jammy) ...
Setting up carbonio-erlang (26.1.1-1jammy) ...
Setting up carbonio-message-dispatcher (0.13.0-1jammy) ...
======================================================
Carbonio Message Dispatcher installed successfully!
You must run pending-setups to configure it correctly.
======================================================
root@mail:~#
root@mail:~#
root@mail:~#
root@mail:~#
root@mail:~# pending-setups -a
Insert the cluster credential password:

Executing all setup scripts...

--------------------------------------------------------------------------------
Executing /etc/zextras/pending-setups.d/carbonio-message-dispatcher.sh
Insert the cluster credential password:
Config entry written: service-defaults/carbonio-message-dispatcher-http
Config entry written: service-intentions/carbonio-message-dispatcher-http
Config entry written: service-defaults/carbonio-message-dispatcher-xmpp
Config entry written: service-intentions/carbonio-message-dispatcher-xmpp
Success! Data written to: carbonio-message-dispatcher/api/username
Success! Data written to: carbonio-message-dispatcher/api/password
Configuration reload triggered
=======================================================================================
Carbonio Message Dispatcher correctly set!
You must run carbonio-message-dispatcher-migration to check database consistency.
Syntax: [PGPASSWORD=password] carbonio-message-dispatcher-migration username [host] [port]
=======================================================================================
Setup successful, moving carbonio-message-dispatcher.sh to /etc/zextras/pending-setups.d/done/
--------------------------------------------------------------------------------

There are no pending-setups to run. Exiting!
root@mail:~#
root@mail:~#
root@mail:~# PGPASSWORD=q carbonio-message-dispatcher-migration carbonio_adm 127.78.0.10 20000
Checking of database schema... Done. Database is empty!
Initializing database... Success. The database has been updated.
Updating 'carbonio-message-dispatcher-db' grant... Success.
root@mail:~#

15. We are going to install and configure Carbonio Message Broker.

root@mail:~# apt install carbonio-message-broker -y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
  linux-image-5.4.0-105-generic linux-modules-5.4.0-105-generic
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
  locales-all socat
The following NEW packages will be installed:
  carbonio-message-broker locales-all socat
0 upgraded, 3 newly installed, 0 to remove and 1 not upgraded.
Need to get 26.9 MB of archives.
After this operation, 270 MB of additional disk space will be used.
Get:1 http://asi-fs-n.contabo.net/ubuntu jammy-updates/universe amd64 locales-all amd64 2.35-0ubuntu3.6 [10.7 MB]
Get:2 https://repo.zextras.io/release/ubuntu jammy/main amd64 carbonio-message-broker amd64 0.1.3-1jammy [15.8 MB]
Get:3 http://asi-fs-n.contabo.net/ubuntu jammy/main amd64 socat amd64 1.7.4.1-3ubuntu4 [349 kB]
Fetched 26.9 MB in 1s (18.3 MB/s)
Selecting previously unselected package locales-all.
(Reading database ... 140509 files and directories currently installed.)
Preparing to unpack .../locales-all_2.35-0ubuntu3.6_amd64.deb ...
Unpacking locales-all (2.35-0ubuntu3.6) ...
Selecting previously unselected package socat.
Preparing to unpack .../socat_1.7.4.1-3ubuntu4_amd64.deb ...
Unpacking socat (1.7.4.1-3ubuntu4) ...
Selecting previously unselected package carbonio-message-broker.
Preparing to unpack .../carbonio-message-broker_0.1.3-1jammy_amd64.deb ...
Unpacking carbonio-message-broker (0.1.3-1jammy) ...
Setting up locales-all (2.35-0ubuntu3.6) ...
Setting up socat (1.7.4.1-3ubuntu4) ...
Setting up carbonio-message-broker (0.1.3-1jammy) ...
======================================================
Carbonio message broker installed successfully!
You must run pending-setups to configure it correctly.
======================================================
Processing triggers for man-db (2.10.2-1) ...
root@mail:~#
root@mail:~#
root@mail:~#
root@mail:~# pending-setups -a
Insert the cluster credential password:

Executing all setup scripts...

--------------------------------------------------------------------------------
Executing /etc/zextras/pending-setups.d/carbonio-message-broker.sh
Insert the cluster credential password:
Config entry written: service-defaults/carbonio-message-broker
Config entry written: service-intentions/carbonio-message-broker
Configuration reload triggered
Success! Data written to: carbonio-message-broker/username
Success! Data written to: carbonio-message-broker/password
User carbonio-message-broker added
Success! Data written to: carbonio-message-broker/admin/username
Success! Data written to: carbonio-message-broker/admin/password
Setting tags for user "carbonio-message-broker-admin" to [administrator] ...
User carbonio-message-broker-admin added
Setup successful, moving carbonio-message-broker.sh to /etc/zextras/pending-setups.d/done/
--------------------------------------------------------------------------------

There are no pending-setups to run. Exiting!
root@mail:~#

16. Install and configure workstream collaboration related packages

root@mail:~# apt install carbonio-ws-collaboration-db -y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
  linux-image-5.4.0-105-generic linux-modules-5.4.0-105-generic
Use 'apt autoremove' to remove them.
The following NEW packages will be installed:
  carbonio-ws-collaboration-db
0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
Need to get 3,648 B of archives.
After this operation, 6,144 B of additional disk space will be used.
Get:1 https://repo.zextras.io/release/ubuntu jammy/main amd64 carbonio-ws-collaboration-db amd64 0.2.0-1ubuntu [3,648 B]
Fetched 3,648 B in 0s (15.3 kB/s)
Selecting previously unselected package carbonio-ws-collaboration-db.
(Reading database ... 149288 files and directories currently installed.)
Preparing to unpack .../carbonio-ws-collaboration-db_0.2.0-1ubuntu_amd64.deb ...
Unpacking carbonio-ws-collaboration-db (0.2.0-1ubuntu) ...
Setting up carbonio-ws-collaboration-db (0.2.0-1ubuntu) ...
============================================================
Carbonio Workstream Collaboration DB installed successfully!
You must run pending-setups to configure it correctly.
============================================================
root@mail:~#
root@mail:~#
root@mail:~#
root@mail:~#
root@mail:~#
root@mail:~# pending-setups -a
Insert the cluster credential password:

Executing all setup scripts...

--------------------------------------------------------------------------------
Executing /etc/zextras/pending-setups.d/carbonio-ws-collaboration-db-setup.sh
Insert the cluster credential password:
Config entry written: service-defaults/carbonio-ws-collaboration-db
Config entry written: service-intentions/carbonio-ws-collaboration-db
Configuration reload triggered
Setup successful, moving carbonio-ws-collaboration-db-setup.sh to /etc/zextras/pending-setups.d/done/
--------------------------------------------------------------------------------

There are no pending-setups to run. Exiting!
root@mail:~#
root@mail:~#
root@mail:~#
root@mail:~# PGPASSWORD=$DB_ADM_PWD carbonio-ws-collaboration-db-bootstrap carbonio_adm 127.0.0.1
Database: 127.0.0.1:5432 user carbonio_adm
Success! Data written to: carbonio-ws-collaboration-db/db-name
Success! Data written to: carbonio-ws-collaboration-db/db-username
Success! Data written to: carbonio-ws-collaboration-db/db-password
CREATE ROLE
CREATE DATABASE
Database initialization completed.
root@mail:~#
root@mail:~# apt install carbonio-ws-collaboration-ce carbonio-videoserver-ce carbonio-ws-collaboration-ui -y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
  linux-image-5.4.0-105-generic linux-modules-5.4.0-105-generic
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
  carbonio-ffmpeg carbonio-libev carbonio-libfdk-aac carbonio-libnice carbonio-libopus carbonio-librabbitmq-c carbonio-libsrtp
  carbonio-libusrsctp carbonio-libuv carbonio-libvpx carbonio-libwebsockets carbonio-videoserver-confs-ce carbonio-x264 cdebconf
  dialog libass9 libcairo2 libconfig9 libdebian-installer4 libmicrohttpd12 libmp3lame0 libogg0 libpixman-1-0
  libterm-readline-gnu-perl libtextwrap1 libtheora0 libxcb-render0 libxcb-shm0 libxrender1
Suggested packages:
  cdebconf-gtk
The following NEW packages will be installed:
  carbonio-ffmpeg carbonio-libev carbonio-libfdk-aac carbonio-libnice carbonio-libopus carbonio-librabbitmq-c carbonio-libsrtp
  carbonio-libusrsctp carbonio-libuv carbonio-libvpx carbonio-libwebsockets carbonio-videoserver-ce
  carbonio-videoserver-confs-ce carbonio-ws-collaboration-ce carbonio-ws-collaboration-ui carbonio-x264 cdebconf dialog libass9
  libcairo2 libconfig9 libdebian-installer4 libmicrohttpd12 libmp3lame0 libogg0 libpixman-1-0 libterm-readline-gnu-perl
  libtextwrap1 libtheora0 libxcb-render0 libxcb-shm0 libxrender1
0 upgraded, 32 newly installed, 0 to remove and 1 not upgraded.
Need to get 50.9 MB of archives.
After this operation, 107 MB of additional disk space will be used.
Get:1 http://asi-fs-n.contabo.net/ubuntu jammy/main amd64 libdebian-installer4 amd64 0.122ubuntu3 [24.1 kB]
Get:2 http://asi-fs-n.contabo.net/ubuntu jammy/main amd64 libtextwrap1 amd64 0.1-15build1 [10.1 kB]
Get:3 http://asi-fs-n.contabo.net/ubuntu jammy/main amd64 cdebconf amd64 0.261ubuntu1 [142 kB]
Get:4 http://asi-fs-n.contabo.net/ubuntu jammy/universe amd64 libass9 amd64 1:0.15.2-1 [97.5 kB]
Get:5 http://asi-fs-n.contabo.net/ubuntu jammy/main amd64 libmp3lame0 amd64 3.100-3build2 [141 kB]
Get:6 http://asi-fs-n.contabo.net/ubuntu jammy-updates/main amd64 libpixman-1-0 amd64 0.40.0-1ubuntu0.22.04.1 [264 kB]
Get:7 http://asi-fs-n.contabo.net/ubuntu jammy/main amd64 libxcb-render0 amd64 1.14-3ubuntu3 [16.4 kB]
Get:8 http://asi-fs-n.contabo.net/ubuntu jammy/main amd64 libxcb-shm0 amd64 1.14-3ubuntu3 [5,780 B]
Get:9 http://asi-fs-n.contabo.net/ubuntu jammy/main amd64 libxrender1 amd64 1:0.9.10-1build4 [19.7 kB]
Get:10 http://asi-fs-n.contabo.net/ubuntu jammy/main amd64 libcairo2 amd64 1.16.0-5ubuntu2 [628 kB]
Get:11 http://asi-fs-n.contabo.net/ubuntu jammy/main amd64 libogg0 amd64 1.3.5-0ubuntu3 [22.9 kB]
Get:12 http://asi-fs-n.contabo.net/ubuntu jammy/main amd64 libtheora0 amd64 1.1.1+dfsg.1-15ubuntu4 [209 kB]
Get:13 http://asi-fs-n.contabo.net/ubuntu jammy/universe amd64 dialog amd64 1.3-20211214-1 [303 kB]
Get:14 http://asi-fs-n.contabo.net/ubuntu jammy/universe amd64 libconfig9 amd64 1.5-0.4build1 [22.3 kB]
Get:15 http://asi-fs-n.contabo.net/ubuntu jammy/universe amd64 libmicrohttpd12 amd64 0.9.75-3ubuntu1 [77.6 kB]
Get:16 http://asi-fs-n.contabo.net/ubuntu jammy/universe amd64 libterm-readline-gnu-perl amd64 1.42-2build1 [94.9 kB]
Get:17 https://repo.zextras.io/release/ubuntu jammy/main amd64 carbonio-libfdk-aac amd64 2.0.2-2jammy [3,103 kB]
Get:18 https://repo.zextras.io/release/ubuntu jammy/main amd64 carbonio-libopus amd64 1.3.1-2jammy [746 kB]
Get:19 https://repo.zextras.io/release/ubuntu jammy/main amd64 carbonio-libvpx amd64 1.13.1-1jammy [1,466 kB]
Get:20 https://repo.zextras.io/release/ubuntu jammy/main amd64 carbonio-x264 amd64 0.164.r3081-2jammy [962 kB]
Get:21 https://repo.zextras.io/release/ubuntu jammy/main amd64 carbonio-ffmpeg amd64 4.4.2-2jammy [8,857 kB]
Get:22 https://repo.zextras.io/release/ubuntu jammy/main amd64 carbonio-libev amd64 4.33-2jammy [176 kB]
Get:23 https://repo.zextras.io/release/ubuntu jammy/main amd64 carbonio-libnice amd64 0.1.19-2jammy [633 kB]
Get:24 https://repo.zextras.io/release/ubuntu jammy/main amd64 carbonio-librabbitmq-c amd64 0.11.0-1jammy [83.1 kB]
Get:25 https://repo.zextras.io/release/ubuntu jammy/main amd64 carbonio-libsrtp amd64 2.4.2-2jammy [56.6 kB]
Get:26 https://repo.zextras.io/release/ubuntu jammy/main amd64 carbonio-libusrsctp amd64 0.9.5.0-2jammy [881 kB]
Get:27 https://repo.zextras.io/release/ubuntu jammy/main amd64 carbonio-libuv amd64 1.44.2-2jammy [346 kB]
Get:28 https://repo.zextras.io/release/ubuntu jammy/main amd64 carbonio-libwebsockets amd64 4.3.2-2jammy [445 kB]
Get:29 https://repo.zextras.io/release/ubuntu jammy/main amd64 carbonio-videoserver-confs-ce amd64 1.1.4-1jammy [16.7 kB]
Get:30 https://repo.zextras.io/release/ubuntu jammy/main amd64 carbonio-videoserver-ce amd64 1.1.4-1jammy [1,996 kB]
Get:31 https://repo.zextras.io/release/ubuntu jammy/main amd64 carbonio-ws-collaboration-ce amd64 0.3.6-1ubuntu [28.0 MB]
Get:32 https://repo.zextras.io/release/ubuntu jammy/main amd64 carbonio-ws-collaboration-ui amd64 0.9.2-1ubuntu [991 kB]
Fetched 50.9 MB in 4s (12.1 MB/s)
Extracting templates from packages: 100%
Preconfiguring packages ...
ls: cannot access '/usr/lib/cdebconf/frontend': No such file or directory
Selecting previously unselected package libdebian-installer4:amd64.
(Reading database ... 149298 files and directories currently installed.)
Preparing to unpack .../libdebian-installer4_0.122ubuntu3_amd64.deb ...
Unpacking libdebian-installer4:amd64 (0.122ubuntu3) ...
Setting up libdebian-installer4:amd64 (0.122ubuntu3) ...
Selecting previously unselected package libtextwrap1:amd64.
(Reading database ... 149303 files and directories currently installed.)
Preparing to unpack .../libtextwrap1_0.1-15build1_amd64.deb ...
Unpacking libtextwrap1:amd64 (0.1-15build1) ...
Setting up libtextwrap1:amd64 (0.1-15build1) ...
Selecting previously unselected package cdebconf.
(Reading database ... 149309 files and directories currently installed.)
Preparing to unpack .../cdebconf_0.261ubuntu1_amd64.deb ...
Unpacking cdebconf (0.261ubuntu1) ...
Setting up cdebconf (0.261ubuntu1) ...
Selecting previously unselected package carbonio-libfdk-aac.
(Reading database ... 149349 files and directories currently installed.)
Preparing to unpack .../00-carbonio-libfdk-aac_2.0.2-2jammy_amd64.deb ...
Unpacking carbonio-libfdk-aac (2.0.2-2jammy) ...
Selecting previously unselected package carbonio-libopus.
Preparing to unpack .../01-carbonio-libopus_1.3.1-2jammy_amd64.deb ...
Unpacking carbonio-libopus (1.3.1-2jammy) ...
Selecting previously unselected package carbonio-libvpx.
Preparing to unpack .../02-carbonio-libvpx_1.13.1-1jammy_amd64.deb ...
Unpacking carbonio-libvpx (1.13.1-1jammy) ...
Selecting previously unselected package carbonio-x264.
Preparing to unpack .../03-carbonio-x264_0.164.r3081-2jammy_amd64.deb ...
Unpacking carbonio-x264 (0.164.r3081-2jammy) ...
Selecting previously unselected package libass9:amd64.
Preparing to unpack .../04-libass9_1%3a0.15.2-1_amd64.deb ...
Unpacking libass9:amd64 (1:0.15.2-1) ...
Selecting previously unselected package libmp3lame0:amd64.
Preparing to unpack .../05-libmp3lame0_3.100-3build2_amd64.deb ...
Unpacking libmp3lame0:amd64 (3.100-3build2) ...
Selecting previously unselected package libpixman-1-0:amd64.
Preparing to unpack .../06-libpixman-1-0_0.40.0-1ubuntu0.22.04.1_amd64.deb ...
Unpacking libpixman-1-0:amd64 (0.40.0-1ubuntu0.22.04.1) ...
Selecting previously unselected package libxcb-render0:amd64.
Preparing to unpack .../07-libxcb-render0_1.14-3ubuntu3_amd64.deb ...
Unpacking libxcb-render0:amd64 (1.14-3ubuntu3) ...
Selecting previously unselected package libxcb-shm0:amd64.
Preparing to unpack .../08-libxcb-shm0_1.14-3ubuntu3_amd64.deb ...
Unpacking libxcb-shm0:amd64 (1.14-3ubuntu3) ...
Selecting previously unselected package libxrender1:amd64.
Preparing to unpack .../09-libxrender1_1%3a0.9.10-1build4_amd64.deb ...
Unpacking libxrender1:amd64 (1:0.9.10-1build4) ...
Selecting previously unselected package libcairo2:amd64.
Preparing to unpack .../10-libcairo2_1.16.0-5ubuntu2_amd64.deb ...
Unpacking libcairo2:amd64 (1.16.0-5ubuntu2) ...
Selecting previously unselected package libogg0:amd64.
Preparing to unpack .../11-libogg0_1.3.5-0ubuntu3_amd64.deb ...
Unpacking libogg0:amd64 (1.3.5-0ubuntu3) ...
Selecting previously unselected package libtheora0:amd64.
Preparing to unpack .../12-libtheora0_1.1.1+dfsg.1-15ubuntu4_amd64.deb ...
Unpacking libtheora0:amd64 (1.1.1+dfsg.1-15ubuntu4) ...
Selecting previously unselected package carbonio-ffmpeg.
Preparing to unpack .../13-carbonio-ffmpeg_4.4.2-2jammy_amd64.deb ...
Unpacking carbonio-ffmpeg (4.4.2-2jammy) ...
Selecting previously unselected package carbonio-libev.
Preparing to unpack .../14-carbonio-libev_4.33-2jammy_amd64.deb ...
Unpacking carbonio-libev (4.33-2jammy) ...
Selecting previously unselected package carbonio-libnice.
Preparing to unpack .../15-carbonio-libnice_0.1.19-2jammy_amd64.deb ...
Unpacking carbonio-libnice (0.1.19-2jammy) ...
Selecting previously unselected package carbonio-librabbitmq-c.
Preparing to unpack .../16-carbonio-librabbitmq-c_0.11.0-1jammy_amd64.deb ...
Unpacking carbonio-librabbitmq-c (0.11.0-1jammy) ...
Selecting previously unselected package carbonio-libsrtp.
Preparing to unpack .../17-carbonio-libsrtp_2.4.2-2jammy_amd64.deb ...
Unpacking carbonio-libsrtp (2.4.2-2jammy) ...
Selecting previously unselected package carbonio-libusrsctp.
Preparing to unpack .../18-carbonio-libusrsctp_0.9.5.0-2jammy_amd64.deb ...
Unpacking carbonio-libusrsctp (0.9.5.0-2jammy) ...
Selecting previously unselected package carbonio-libuv.
Preparing to unpack .../19-carbonio-libuv_1.44.2-2jammy_amd64.deb ...
Unpacking carbonio-libuv (1.44.2-2jammy) ...
Selecting previously unselected package carbonio-libwebsockets.
Preparing to unpack .../20-carbonio-libwebsockets_4.3.2-2jammy_amd64.deb ...
Unpacking carbonio-libwebsockets (4.3.2-2jammy) ...
Selecting previously unselected package dialog.
Preparing to unpack .../21-dialog_1.3-20211214-1_amd64.deb ...
Unpacking dialog (1.3-20211214-1) ...
Selecting previously unselected package libconfig9:amd64.
Preparing to unpack .../22-libconfig9_1.5-0.4build1_amd64.deb ...
Unpacking libconfig9:amd64 (1.5-0.4build1) ...
Selecting previously unselected package libmicrohttpd12:amd64.
Preparing to unpack .../23-libmicrohttpd12_0.9.75-3ubuntu1_amd64.deb ...
Unpacking libmicrohttpd12:amd64 (0.9.75-3ubuntu1) ...
Selecting previously unselected package libterm-readline-gnu-perl.
Preparing to unpack .../24-libterm-readline-gnu-perl_1.42-2build1_amd64.deb ...
Unpacking libterm-readline-gnu-perl (1.42-2build1) ...
Selecting previously unselected package carbonio-videoserver-confs-ce.
Preparing to unpack .../25-carbonio-videoserver-confs-ce_1.1.4-1jammy_amd64.deb ...
Unpacking carbonio-videoserver-confs-ce (1.1.4-1jammy) ...
Selecting previously unselected package carbonio-videoserver-ce.
Preparing to unpack .../26-carbonio-videoserver-ce_1.1.4-1jammy_amd64.deb ...
Failed to stop carbonio-videoserver.service: Unit carbonio-videoserver.service not loaded.
Unpacking carbonio-videoserver-ce (1.1.4-1jammy) ...
Selecting previously unselected package carbonio-ws-collaboration-ce.
Preparing to unpack .../27-carbonio-ws-collaboration-ce_0.3.6-1ubuntu_amd64.deb ...
Unpacking carbonio-ws-collaboration-ce (0.3.6-1ubuntu) ...
Selecting previously unselected package carbonio-ws-collaboration-ui.
Preparing to unpack .../28-carbonio-ws-collaboration-ui_0.9.2-1ubuntu_amd64.deb ...
Unpacking carbonio-ws-collaboration-ui (0.9.2-1ubuntu) ...
Setting up libconfig9:amd64 (1.5-0.4build1) ...
Setting up libpixman-1-0:amd64 (0.40.0-1ubuntu0.22.04.1) ...
Setting up libogg0:amd64 (1.3.5-0ubuntu3) ...
Setting up carbonio-libvpx (1.13.1-1jammy) ...
Setting up libxrender1:amd64 (1:0.9.10-1build4) ...
Setting up libxcb-render0:amd64 (1.14-3ubuntu3) ...
Setting up carbonio-ws-collaboration-ui (0.9.2-1ubuntu) ...
Setting up libxcb-shm0:amd64 (1.14-3ubuntu3) ...
Setting up libterm-readline-gnu-perl (1.42-2build1) ...
Setting up libmicrohttpd12:amd64 (0.9.75-3ubuntu1) ...
Setting up carbonio-librabbitmq-c (0.11.0-1jammy) ...
Setting up libcairo2:amd64 (1.16.0-5ubuntu2) ...
Setting up carbonio-libusrsctp (0.9.5.0-2jammy) ...
Setting up carbonio-ws-collaboration-ce (0.3.6-1ubuntu) ...
=========================================================
Carbonio Workstream Collaboration installed successfully!
You must run pending-setups to configure it correctly.
=========================================================
Setting up carbonio-libopus (1.3.1-2jammy) ...
Setting up carbonio-x264 (0.164.r3081-2jammy) ...
Setting up libass9:amd64 (1:0.15.2-1) ...
Setting up dialog (1.3-20211214-1) ...
Setting up carbonio-libev (4.33-2jammy) ...
Setting up carbonio-libuv (1.44.2-2jammy) ...
Setting up carbonio-libnice (0.1.19-2jammy) ...
Setting up libtheora0:amd64 (1.1.1+dfsg.1-15ubuntu4) ...
Setting up carbonio-libfdk-aac (2.0.2-2jammy) ...
Setting up carbonio-libsrtp (2.4.2-2jammy) ...
Setting up libmp3lame0:amd64 (3.100-3build2) ...
Setting up carbonio-libwebsockets (4.3.2-2jammy) ...
Setting up carbonio-ffmpeg (4.4.2-2jammy) ...
Setting up carbonio-videoserver-confs-ce (1.1.4-1jammy) ...
Setting up carbonio-videoserver-ce (1.1.4-1jammy) ...
======================================================
Carbonio videoserver installed successfully!
You must run pending-setups to configure it correctly.
======================================================
Processing triggers for man-db (2.10.2-1) ...
Processing triggers for libc-bin (2.35-0ubuntu3.6) ...
root@mail:~#
root@mail:~#
root@mail:~#
root@mail:~# pending-setups -a
Insert the cluster credential password:

Executing all setup scripts...

--------------------------------------------------------------------------------
Executing /etc/zextras/pending-setups.d/carbonio-ws-collaboration.sh
Insert the cluster credential password:
Config entry written: service-defaults/carbonio-ws-collaboration
Config entry written: service-intentions/carbonio-ws-collaboration
Configuration reload triggered
Success! Data written to: carbonio-ws-collaboration/configs/can-video-call
Success! Data written to: carbonio-ws-collaboration/configs/can-video-call-record
Success! Data written to: carbonio-ws-collaboration/configs/can-use-virtual-background
Success! Data written to: carbonio-ws-collaboration/configs/can-see-message-reads
Success! Data written to: carbonio-ws-collaboration/configs/can-see-users-presence
Success! Data written to: carbonio-ws-collaboration/configs/max-user-image-size-in-kb
Success! Data written to: carbonio-ws-collaboration/configs/max-room-image-size-in-kb
Success! Data written to: carbonio-ws-collaboration/configs/edit-message-time-limit-in-minutes
Success! Data written to: carbonio-ws-collaboration/configs/delete-message-time-limit-in-minutes
Success! Data written to: carbonio-ws-collaboration/configs/max-group-members
Success! Data written to: carbonio-ws-collaboration/broker/virtual-host
Success! Data written to: carbonio-ws-collaboration/broker/requested-heartbeat-in-sec
Success! Data written to: carbonio-ws-collaboration/broker/connection-timeout-in-milli
Success! Data written to: carbonio-ws-collaboration/broker/automatic-recovery-enabled
Success! Data written to: carbonio-ws-collaboration/broker/topology-recovery-enabled
Success! Data written to: carbonio-ws-collaboration/broker/network-recovery-interval
Success! Data written to: carbonio-ws-collaboration/hikari/min-pool-size
Success! Data written to: carbonio-ws-collaboration/hikari/max-pool-size
Success! Data written to: carbonio-ws-collaboration/hikari/idle-timeout
Success! Data written to: carbonio-ws-collaboration/hikari/leak-detection-threshold
Setup successful, moving carbonio-ws-collaboration.sh to /etc/zextras/pending-setups.d/done/
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Executing /etc/zextras/pending-setups.d/carbonio-videoserver.sh
Insert the cluster credential password:
Config entry written: service-defaults/carbonio-videoserver
Config entry written: service-intentions/carbonio-videoserver
Success! Data written to: carbonio-videoserver/api-secret
Configuration reload triggered
Setup successful, moving carbonio-videoserver.sh to /etc/zextras/pending-setups.d/done/
--------------------------------------------------------------------------------

There are no pending-setups to run. Exiting!
root@mail:~#
root@mail:~#
root@mail:~# su - zextras -c "carbonio prov mc default carbonioFeatureChatsEnabled TRUE"

17. Reset deafult admin pasword

su - zextras -c "carbonio prov sp zextras@$(hostname -d) KRGb1rLSHj2GxgW"

18. Modify the trusted network

root@mail:~# su - zextras -c "carbonio prov ms $(hostname -f) zimbraMtaMyNetworks '127.0.0.0/8 $(hostname -i)/32'"
root@mail:~# su - zextras -c "zmmtactl restart"
Rewriting configuration files...done.
Stopping milter server...done.
Starting milter server...done.
Stopping saslauthd...done.
Starting saslauthd...done.
/postfix-script: refreshing the Postfix mail system
root@mail:~

19. Restart Carbonio Services and then check their status.

root@mail:~# su - zextras -c "zmcontrol restart" && su - zextras -c "zmcontrol status" && su - zextras -c "zmcontrol -v"
Host mail.sampleserver.xyz
        Stopping config service...Done.
        Stopping service webapp...Done.
        Stopping stats...Done.
        Stopping mta...Done.
        Stopping cbpolicyd...Done.
        Stopping opendkim...Done.
        Stopping amavis...Done.
        Stopping antivirus...Done.
        Stopping antispam...Done.
        Stopping proxy...Done.
        Stopping memcached...Done.
        Stopping mailbox...Done.
        Stopping directory-server...Done.
Host mail.sampleserver.xyz
        Starting directory server...Done.
        Starting config service...Done.
        Starting mailbox...Done.
        Starting memcached...Done.
        Starting proxy...Done.
        Starting amavis...Done.
        Starting antispam...Done.
        Starting antivirus...Done.
        Starting opendkim...Done.
        Starting mta...Done.
        Starting stats...Done.
        Starting service webapp...Done.
Host mail.sampleserver.xyz
        amavis                  Running
        antispam                Running
        antivirus               Running
        directory-server        Running
        mailbox                 Running
        memcached               Running
        mta                     Running
        opendkim                Running
        proxy                   Running
        service webapp          Running
        service-discover        Running
        stats                   Running
        config service          Running
Carbonio Release 24.3.0
root@mail:~#

20. Check consul and system unit status

root@mail:~# consul members && systemctl list-units carbonio*
Node                          Address             Status  Type    Build    Protocol  DC   Segment
server-mail-sampleserver-xyz  161.97.99.169:8301  alive   server  1.10.12  2         dc1  <all>
  UNIT                                               LOAD   ACTIVE SUB     DESCRIPTION
  carbonio-clamav-sidecar.service                    loaded active running Carbonio clamav sidecar proxy
  carbonio-clamav-signature-provider-sidecar.service loaded active running NGINX Carbonio ClamAV signature provider sidecar
  carbonio-docs-connector-db-sidecar.service         loaded active running Carbonio Docs Connector database sidecar
  carbonio-docs-connector-sidecar.service            loaded active running Carbonio docs connector sidecar proxy
  carbonio-docs-connector.service                    loaded active running Carbonio docs connector daemon
  carbonio-docs-editor-sidecar.service               loaded active running Carbonio Docs server sidecar proxy
  carbonio-docs-editor.service                       loaded active running Carbonio Docs Server
  carbonio-files-db-sidecar.service                  loaded active running Carbonio Files database sidecar
  carbonio-files-sidecar.service                     loaded active running Carbonio Files sidecar proxy
  carbonio-files.service                             loaded active running Carbonio Files daemon
  carbonio-mailbox-db-sidecar.service                loaded active running Carbonio Mailbox database sidecar
  carbonio-mailbox-sidecar.service                   loaded active running Mailbox carbonio proxy sidecar
  carbonio-message-broker-sidecar.service            loaded active running Carbonio message broker sidecar proxy
  carbonio-message-broker.service                    loaded active running Carbonio message broker daemon
  carbonio-message-dispatcher-auth-sidecar.service   loaded active running Carbonio Message Dispatcher auth sidecar proxy
  carbonio-message-dispatcher-auth.service           loaded active running Carbonio Message Dispatcher auth daemon
  carbonio-message-dispatcher-db-sidecar.service     loaded active running Carbonio Message Dispatcher database sidecar
  carbonio-message-dispatcher-http-sidecar.service   loaded active running Carbonio Message Dispatcher HTTP sidecar proxy
  carbonio-message-dispatcher-xmpp-sidecar.service   loaded active running Carbonio Message Dispatcher XMPP sidecar proxy
  carbonio-message-dispatcher.service                loaded active running Carbonio Message Dispatcher daemon
  carbonio-mta-sidecar.service                       loaded active running Carbonio mta sidecar proxy
  carbonio-preview-sidecar.service                   loaded active running Carbonio Preview sidecar proxy
  carbonio-preview.service                           loaded active running Carbonio Preview daemon
  carbonio-prometheus-consul-exporter.service        loaded active running Carbonio Prometheus Consul exporter
  carbonio-prometheus-mysqld-exporter.service        loaded active running Carbonio Prometheus MySQL exporter
  carbonio-prometheus-nginx-exporter.service         loaded active running Carbonio Prometheus NGINX exporter
  carbonio-prometheus-node-exporter.service          loaded active running Carbonio Prometheus Node Exporter
  carbonio-prometheus-openldap-exporter.service      loaded active running Carbonio Prometheus OpenLDAP exporter
  carbonio-prometheus.service                        loaded active running Carbonio Prometheus service
  carbonio-proxy-sidecar.service                     loaded active running NGINX carbonio proxy sidecar
  carbonio-storages-sidecar.service                  loaded active running Storages-CE sidecar proxy
  carbonio-storages.service                          loaded active running Carbonio Storages-CE daemon
  carbonio-tasks-db-sidecar.service                  loaded active running Carbonio Tasks database sidecar
  carbonio-tasks-sidecar.service                     loaded active running Carbonio Tasks sidecar proxy
  carbonio-user-management-sidecar.service           loaded active running Carbonio User Management sidecar proxy
  carbonio-user-management.service                   loaded active running Carbonio User Management daemon
  carbonio-videoserver-sidecar.service               loaded active running Carbonio Videoserver sidecar proxy
  carbonio-videoserver.service                       loaded active running Zextras Videoserver
  carbonio-ws-collaboration-db-sidecar.service       loaded active running Carbonio Workstream Collaboration database sidecar
  carbonio-ws-collaboration-sidecar.service          loaded active running Carbonio Workstream Collaboration sidecar proxy
  carbonio-ws-collaboration.service                  loaded active running Carbonio Workstream Collaboration daemon

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.
41 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

21. Check consul service status

root@mail:~# curl -v http://127.78.0.4:10000/health | jq
*   Trying 127.78.0.4:10000...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Connected to 127.78.0.4 (127.78.0.4) port 10000 (#0)
> GET /health HTTP/1.1
> Host: 127.78.0.4:10000
> User-Agent: curl/7.81.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Date: Fri, 29 Mar 2024 14:45:14 GMT
< Content-Type: application/json
< Content-Length: 403
< Server: Jetty(10.0.6)
<
{ [403 bytes data]
100   403  100   403    0     0   2104      0 --:--:-- --:--:-- --:--:--  2178
* Connection #0 to host 127.78.0.4 left intact
{
  "isLive": true,
  "status": "ok",
  "dependencies": [
    {
      "name": "database",
      "isHealthy": true
    },
    {
      "name": "authentication_service",
      "isHealthy": true
    },
    {
      "name": "profiling_service",
      "isHealthy": true
    },
    {
      "name": "xmpp_server",
      "isHealthy": true
    },
    {
      "name": "event_dispatcher",
      "isHealthy": true
    },
    {
      "name": "storage_service",
      "isHealthy": true
    },
    {
      "name": "previewer_service",
      "isHealthy": true
    },
    {
      "name": "videoserver_service",
      "isHealthy": true
    }
  ]
}
root@mail:~#

22. Reboot the server.

root@mail:~# reboot now

Remote side unexpectedly closed network connection

─────────────────────────────────────────────────────────

23. After rebooting the server restart services as per following sequence:

root@mail:~# su – zextras -c ‘zmcontrol restart’
root@mail:~# systemctl restart carbonio-tasks
root@mail:~# systemctl restart carbonio-message-broker
root@mail:~# systemctl restart carbonio-message-dispatcher
root@mail:~# systemctl restart carbonio-ws-collaboration
root@mail:~# systemctl restart carbonio-videoserver
root@mail:~#

FAQ: In order to make all the feature work seemlessly, after the reboot do not miss to perform:

su – zextras -c ‘zmcontrol restart’
systemctl restart carbonio-tasks
systemctl restart carbonio-message-broker
systemctl restart carbonio-message-dispatcher
systemctl restart carbonio-ws-collaboration
systemctl restart carbonio-videoserver

Now check the user webmail and Admin UI by testing all functionalities. Check out this link to find the official script or this fanmade script.

If you are still unaware about what to choose, then this article might help you to make up your mind.

FAQ: Chainging IP_ADDRESS

After a successful installation, for any unprecedented circumstances, if you need to change the IP of your Carbonio CE server, you can do followings:
*** Make sure you copy all config files before modifying them.
a) Server Interface
b) /etc/hosts
c) zimbraMtaMyNetworks (If Necessary)
d) /opt/zextras/conf/nginx/includes
e) /etc/zextras/service-discover/config.json
f) /etc/janus/janus.jcfg
g) restart services
h) update DNS records

Concluding, Ubuntu 22.04 LTS’s addition to Carbonio CE’s supported operating systems signifies its growth and commitment to flexibility, enhancing its appeal to a broader audience. This development, alongside the move towards a more straightforward installation process, demonstrates Carbonio CE’s focus on improving user experience and accessibility. As a token of appreciation, we’re also introducing a surprise gift for our readers, underscoring our gratitude and commitment to the community. This step forward not only enriches user experience but also solidifies Carbonio CE’s position as a leading email collaboration platform.

Comments

excluding5743
04/03/2024

I appreciate the guide. I do believe this is an opportunity to show off the one liner bash script that was recently created and part of the installation guide. This guide is also difficult to follow the commands as they are included in the console output and easy to miss.

Md. Shariful Islam
04/03/2024

Hi, Thanks for your feedback. I want to get another feedback from you if you don't mind and have time for that! Do you think removing the output would make it look more user-friendly and clean? I would love to imply that! Regards, Sharif

Post your comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

In-Depth Review of Carbonio Community Edition Features – Your Comprehensive Digital Workplace for Collaboration | Carbonio CE
Organize Your Work with Tasks in Carbonio Community Edition | Carbonio CE