Extend Manual Installation: Collaboration Node

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.

../../../../_images/scenario-single-collaboration.png

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.

Configure Carbonio Repository

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
Import GPG 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.

Configure RHEL-only Repositories

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