System requirements

Requirements are hard to explicit because, as for any platform, they depends on the number of users, OSs in use, etc.

We account the CONVIVIUM instance we deployed for EUCOMMEET project , hosted on the Italian network of the GARR CONSORTIUM, on two VM (Virtual Machine) instances of Ubuntu LTS running on Openstack

VM1 - Nextcloud

Hardware

please refer to Nextcloud official system requirements

  • PUBLIC IPV4: 90.147.167.51
  • CPU: 8
  • RAM: 8 GB
  • STORAGE: 200 GB
  • Ingress/egress open ports: 22/TCP,80/TCP e 443/TCP

Software

Ubuntu LTS 20.04 on GARR VM installed by UNISI tech team via provided Openstack images

ubuntu@nextcloud:~$ lsb_release -a
   No LSB modules are available.
   Distributor ID:  Ubuntu
   Description: Ubuntu 20.04.6 LTS
   Release: 20.04
   Codename:    focal

Web Server: Apache

ubuntu@nextcloud:~$ apache2 -v
Server version: Apache/2.4.57 (Ubuntu)
Server built:   2023-04-08T12:55:47

DB: MariaDB

ubuntu@nextcloud:~$ mariadb --version
mariadb  Ver 15.1 Distrib 10.6.16-MariaDB, for debian-linux-gnu (x86_64) using  EditLine wrapper

server-side scripting: PHP

ubuntu@nextcloud:~$ php --version
PHP 8.1.28 (cli) (built: May 23 2024 12:33:03) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.28, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.28, Copyright (c), by Zend Technologies

caching: php-fpm

ubuntu@nextcloud:~$ php-fpm8.1 -v
PHP 8.1.28 (fpm-fcgi) (built: May 23 2024 12:33:03)
Copyright (c) The PHP Group
Zend Engine v4.1.28, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.28, Copyright (c), by Zend Technologies

Nextcloud Convivio app and modules install references:

VM2 - Jitsi

Hardware

  • PUBLIC IPV4: 90.147.166.196
  • CPU: 16
  • RAM: 16 GB
  • STORAGE: 200 GB
  • Ingress/egress open ports: 22/TCP,80/TCP,443/TCP,10000/UDP, 3478/UDP e 5349/TCP

Software

Ubuntu LTS 20.04 on GARR VM via Openstack images, installed by UNISI tech team

ubuntu@nextcloud:~$ lsb_release -a
   No LSB modules are available.
   Distributor ID:  Ubuntu
   Description: Ubuntu 20.04.6 LTS
   Release: 20.04
   Codename:    focal

Jitsi convivio install reference:

Real-time metrics: Grafana and InfluxDB (OPTIONAL)

We connected a Grafana instance to VM2 - Jitsi. This software has been installed, alongside with InfluxDB for data feeding, on another Ubuntu 22.04 bare-metal server, 100% renewable energy powered, based in the EU territory, within the facilities of alekos.net, part of the Nethood community network, with the community test and help by C.I.R.C.E. . Grafana is a FLOSS open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.

Requirements based on users - a tentative estimate

The above configuration has proven viable for:

  • >100 contemporary users logged through [VM1 - Nextcloud](# ## VM1 - Nextcloud) in nine different live/syncronous session on [VM2 - Jitsi](#VM2 - Jitsi)
  • >2600 users logged at least once on [VM1 - Nextcloud](#VM1 - Nextcloud)
  • >1200 real users interacting within the project through [VM1 - Nextcloud](#VM1 - Nextcloud)

Learned lessons and possible improvements

  • caching is vital. Increase the php-fpm threads if the forum text / asyncronous sessions are slow, especially when automatic/supervised moderation is on
  • Forum text/asyncronous sessions require MORE resources, because users' management, login etc. is an heavy task. VM1 - Nextcloud under stress proved barely sufficient with >100 contemporary users chatting, with max load average >7,2 with 8cores available, especially when automatic/supervised moderation was on. More CPU and more RAM could be a solution.
  • Live/syncronous sessions require LESS resources, because the most of the working code interact with the DB, which is on the VM1 - Nextcloud. VM2 - Jitsi under stress proved more than sufficient with >100 contemporary users chatting, with max load average <2,5 with 16cores available, even when automatic/supervised moderation was on. Decrease the CPU and the RAM to optimize resources.
  • Storage proved overestimated for both VMs. If no video have to be stored, 100GB is more than enough for VM1 - Nextcloud, and even less , 20GB for VM2 - Jitsi - if no recording has to be provided.

System Overview

Convivium platform consists of:

  • a merge of two (2) existing F/LOSS platforms, Nextcloud and Jitsi, used by millions of users, with their evolving ecosystems we refer to within the doc.
  • four (4) different piece of code, provided by NH and tested by the community, namely:

N.B.: All the code is publicly released under a permissive license on the great codeberg git platform.

Modularity by design

The four parts can be installed autonomously - it's possible to have a Convivio app - forum text asyncronous sessions + 2. Jitsi convivio install - live/syncronous sessions, with or without automatic moderation or translation provided by Agendabot - automated (supervised) moderation and Translator proxy - automated translations

For example, in order to manage documents workflow, file and folder sharing, users' profiles, with forum text asyncronous sessions and live/syncronous sessions, the two first piece of code are enough. In a single-language setting, automated translation is not necessary, and so on.

Generalising Translation Proxy

Translation system and models provided by ADAPT@DCU during the experiment and the pilot are no longer available. They run on costly GPUs for simultaneous pairing of the project 5 languages. To provide an affordable, flexible and extensible translation system, we generalised our previous dcu-proxy code to be able to bridge towards different translation system. The following services are available, and others can be bridged via simple APIs:

  • argos Uses F/LOSS Argos Translate. Argos packages must be installed, make sure to run scripts/install-argos-packages.sh
  • dcu Used api provided by DCU for the EuComMeet project. DCU_USERNAME and DCU_PASSWORD must be set, DCU_API_URL can be used to override default endpoint (https://mt.computing.dcu.ie)
  • moc Fastest translation model in the world, does nothing, just return dummy translations for development use.

The code is being constantly updated on codeberg (the git repos) where detailed tech docs lives