Extend Manual Installation: Collaboration Node#
This section contains the architectural diagram, requirements, network configuration, and directions to set up the additional Collaboration Server Node.
Architecture#
The architecture of this scenario is depicted in the following diagram.

Fig. 6 Sample diagram of the Collaboration Node within the Single Server scenario.#
Requirements#
Hardware Requirements for the Collaboration Node are:
4 vCPU
16 GB memory
50 GB disk space for the operating system
Network Configuration#
No ports should be forwarded from the Internet to the Collaboration Node.
Collaboration Node Installation#
Directions are separated in steps, organised in drop-downs. Click each of them to expand the content.
Warning
Please pay attention to Step 4: the installation command needs to be executed on the Core Node.
Step 1: Configuration of Repositories
Carbonio
In order to configure Carbonio’s repository, you need to some files with the necessary information.
It you install Carbonio on Ubuntu, you also need to import the GPG key used for signing the packages and verify them.
You need to create file /etc/apt/sources.list.d/zextras.list
and add the following content to it:
deb [arch=amd64 signed-by=/usr/share/keyrings/zextras.gpg] https://repo.zextras.io/release/ubuntu jammy main
Hint
Make sure the above content is correctly saved on the same line
You need to create file /etc/apt/sources.list.d/zextras.list
and add the following content to it:
deb [arch=amd64 signed-by=/usr/share/keyrings/zextras.gpg] https://repo.zextras.io/release/ubuntu noble main
Hint
Make sure the above content is correctly saved on the same line
You need to create file /etc/yum.repos.d/zextras.repo
and add the following content to it:
[zextras]
name=zextras
baseurl=https://repo.zextras.io/release/rhel8
enabled=1
repo_gpgcheck=1
gpgcheck=0
gpgkey=https://repo.zextras.io/repomd.xml.key
You need to create file /etc/yum.repos.d/zextras.repo
and add the following content to it:
[zextras]
name=zextras
baseurl=https://repo.zextras.io/release/rhel9
enabled=1
repo_gpgcheck=1
gpgcheck=0
gpgkey=https://repo.zextras.io/repomd.xml.key
This step is required only on Ubuntu systems (Ubuntu 22.04 and Ubuntu 24.04).
Download and save the GPG key
# wget -O- "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x5dc7680bc4378c471a7fa80f52fd40243e584a21" | gpg --dearmor | sudo tee /usr/share/keyrings/zextras.gpg > /dev/null
Assign correct access permissions to the key
# chmod 644 /usr/share/keyrings/zextras.gpg
Download and save the GPG key
# wget -O- "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x5dc7680bc4378c471a7fa80f52fd40243e584a21" | gpg --dearmor | sudo tee /usr/share/keyrings/zextras.gpg > /dev/null
Assign correct access permissions to the key
# chmod 644 /usr/share/keyrings/zextras.gpg
This step is not needed.
This step is not needed.
This step is not needed.
This step is not needed.
You need to add the EPEL repository and enable the BaseOS, Appstream, and CodeReady repositories.
# dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# subscription-manager repos --enable=rhel-8-for-x86_64-baseos-rpms
# subscription-manager repos --enable=rhel-8-for-x86_64-appstream-rpms
# subscription-manager repos --enable=codeready-builder-for-rhel-8-x86_64-rpms
You need to add the EPEL repository and enable the BaseOS, Appstream, and CodeReady repositories.
# dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
# subscription-manager repos --enable=rhel-9-for-x86_64-baseos-rpms
# subscription-manager repos --enable=rhel-9-for-x86_64-appstream-rpms
# subscription-manager repos --enable=codeready-builder-for-rhel-9-x86_64-rpms
PostgreSQL
# echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list
# wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
# echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list
# wget -O- "https://www.postgresql.org/media/keys/ACCC4CF8.asc" | \
gpg --dearmor | sudo tee /usr/share/keyrings/postgres.gpg > \
/dev/null
# chmod 644 /usr/share/keyrings/postgres.gpg
# sed -i 's/deb/deb [signed-by=\/usr\/share\/keyrings\/postgres.gpg] /' /etc/apt/sources.list.d/pgdg.list
# dnf -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# dnf -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Step 2: Setting Hostname
Carbonio needs a valid FQDN as hostname and a valid entry in the
/etc/hosts
file. Therefore, it is necessary to take care of
properly configuring the /etc/hosts
file, otherwise the services
will not be able to bind to the correct address, leading to a
disruption in Carbonio's functionality.
To configure the file and the hostname, execute these two commands.
Note
Replace the values srv1.example.com
and 172.16.0.10
with values suitable for your setup.
First, set the hostname
# hostnamectl set-hostname srv1.example.com
then replace the content of the /etc/hosts
file with IP and
hostname.
# echo -e "127.0.0.1 localhost\n172.16.0.10 srv1.example.com srv1" > /etc/hosts
You can also simply get the current IP and hostname and save it in the
file /etc/hosts/
:
# echo "$(hostname -I) $(hostname -f)"
Step 3: System Upgrade and Package Installation
After configuring the repositories, the installation of Carbonio requires to run a few commands.
We start by updating and upgrading the system.
# apt update && apt upgrade
# apt update && apt upgrade
# dnf upgrade
# dnf upgrade
Next, we install all packages needed for Carbonio.
# apt install carbonio-message-dispatcher \
carbonio-ws-collaboration \
carbonio-push-connector service-discover-agent \
carbonio-tasks carbonio-docs-editor \
carbonio-docs-connector postgresql-client-16 \
carbonio-push-connector carbonio-notification-push
# apt install carbonio-message-dispatcher \
carbonio-ws-collaboration \
carbonio-push-connector service-discover-agent \
carbonio-tasks carbonio-docs-editor \
carbonio-docs-connector postgresql-client-16 \
carbonio-push-connector carbonio-notification-push
# dnf install carbonio-message-dispatcher \
carbonio-ws-collaboration \
carbonio-push-connector service-discover-agent \
carbonio-tasks carbonio-docs-editor \
carbonio-docs-connector postgresql16 \
carbonio-push-connector carbonio-notification-push
# dnf install carbonio-message-dispatcher \
carbonio-ws-collaboration \
carbonio-push-connector service-discover-agent \
carbonio-tasks carbonio-docs-editor \
carbonio-docs-connector postgresql16 \
carbonio-push-connector carbonio-notification-push
Step 4: Package installation on Core Node
Login to the Core Node and install the following packages.
# apt install carbonio-ws-collaboration-ui \
carbonio-tasks-ui
# apt install carbonio-ws-collaboration-ui \
carbonio-tasks-ui
# apt install carbonio-ws-collaboration-ui \
carbonio-tasks-ui
# apt install carbonio-ws-collaboration-ui \
carbonio-tasks-ui
Step 5: Bootstrap Carbonio
To carry out this step, you need the LDAP password and the Node hostname that you have retrieved at Step 9 of the Core Node (see Data Required for Additional Nodes).
Use the following command to configure and launch Carbonio.
# carbonio-bootstrap
Before finalising the bootstrap, press y to apply the configuration. The process will continue until its completion: click Enter to continue.
What does carbonio-bootstrap
do?
This command makes a few checks and then starts the installation, during which a few messages are shown, including the name of the log file that will store all messages produced during the process:
Operations logged to /tmp/zmsetup.20211014-154807.log
In case the connection is lost during the installation, it is
possible to log in again and check the content of that file
for information about the status of the installation. If the
file does not exist anymore, the installation has already
been completed and in that case the log file can be found in
directory /opt/zextras/log
.
The first part of the bootstrap enables all necessary services and creates a new administrator account (zextras@mail.example.com), initially without password (see below for instruction to set it).
Step 5: Setup Carbonio Mesh
To carry out this step, you need the Carbonio Mesh secret generated during the installation of the Core Node (see Data Required for Additional Nodes).
The Carbonio Mesh configuration is interactively generated by command
# service-discover setup-wizard
To complete Carbonio Mesh installation, run
# pending-setups -a
Step 6: Configure Chats
Initialise the message dispatcher
To carry out this step, you need the PostgreSQL bootstrap password that you defined during the installation of the Core Node (see in Data Required for Additional Nodes how to retrieve it).
# read -s -p "Insert Password:" DB_ADM_PWD
Now, run command
# PGPASSWORD=$DB_ADM_PWD carbonio-message-dispatcher-migration \
carbonio_adm 127.78.0.10 20000
Restart the service
# systemctl restart carbonio-message-dispatcher
Enable Chats
Chats can be enabled from the Carbonio Admin Panel at account or COS level: please refer to Sections Account / Configuration and Features, respectively.
Hint
If the Chats installation is successful, you can optimise some values according to the guidelines that you can find in section Chats Optimisations.
Status Check
The following command will output a detailed status of Chats and of all its dependencies.
# curl -v http://127.78.0.4:10000/health | jq