Hi Guys,
I have prepared a draft of the deployment of Carbonio CE 23.12.0 workstream collaboration in step by step format. BTW all the information is available in the documentation (docs.zextras.com); I just summed it up for you.
For Ubuntu 20.04LTS/22.04LTS - Single Server
Simplified version of steps:
[Always check with official documentation for updated information]
A surprise lurks within the post. 😊
1. Preparing the server
[Add Zextras repository using this link ( https://zextras.com/carbonio-community-edition#discoverproduct ) and form ]
Set hostname
Set hosts
Set time-zone reboot
2. Configure PostgreSQL-12 [[On Ubuntu 20.04LTS]]
apt install postgresql-12 -y read -s -p "Password:" DB_ADM_PWD su - postgres -c "psql --command=\"CREATE ROLE carbonio_adm WITH LOGIN SUPERUSER encrypted password '$DB_ADM_PWD';\"" su - postgres -c "psql --command=\"CREATE DATABASE carbonio_adm owner carbonio_adm;\"" systemctl restart postgresql
[Check this link - https://docs.zextras.com/carbonio-ce/html/install/scenarios/single-server-scenario.html#preliminary-task ]
If you want to install postgresql-16, then follow : [On Ubuntu 22.04LTS]
sudo sh -c "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 - apt clean all apt update apt install -y postgresql-16 read -s -p "Password:" DB_ADM_PWD su - postgres -c "psql --command=\"CREATE ROLE carbonio_adm WITH LOGIN SUPERUSER encrypted password '$DB_ADM_PWD';\"" su - postgres -c "psql --command=\"CREATE DATABASE carbonio_adm owner carbonio_adm;\"" systemctl restart postgresql
3. Install Carbonio CE Packages:
apt install 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 -y
4. Mandatory steps:
carbonio-bootstrap service-discover setup-wizard pending-setups -a
5. Bootstrapping installed Files and Tasks DB
PGPASSWORD=$DB_ADM_PWD carbonio-files-db-bootstrap carbonio_adm 127.0.0.1 PGPASSWORD=$DB_ADM_PWD carbonio-tasks-db-bootstrap carbonio_adm 127.0.0.1
Workstream Collaboration Packages Setup:
6. Install workstream collaboration package (carbonio-message-dispatcher-db)
[Save the same DB value once more] read -s -p "Password:" DB_ADM_PWD apt install carbonio-message-dispatcher-db -y pending-setups -a PGPASSWORD=$DB_ADM_PWD carbonio-message-dispatcher-db-bootstrap carbonio_adm 127.0.0.1
7. Install workstream collaboration package (carbonio-message-dispatcher)
[Save the same DB value once more] read -s -p "Password:" DB_ADM_PWD apt install carbonio-message-dispatcher -y pending-setups -a PGPASSWORD=$DB_ADM_PWD carbonio-message-dispatcher-migration carbonio_adm 127.78.0.10 20000 Sometimes this step produces errors, then do followings and try again: 1. systemctl restart service-discover 2. systemctl restart postgresql@16-main.service 3. use the actual password instead of $DB_ADM_PWD
8. Install workstream collaboration package (carbonio-message-broker)
apt install carbonio-message-broker -y pending-setups -a
9. Install workstream collaboration package (carbonio-ws-collaboration-db)
apt install carbonio-ws-collaboration-db -y pending-setups -a PGPASSWORD=$DB_ADM_PWD carbonio-ws-collaboration-db-bootstrap carbonio_adm 127.0.0.1
Now you can remove the value set in the variable as DB password:
unset DB_ADM_PWD
10. Install workstream collaboration package (carbonio-ws-collaboration-ce)
apt install carbonio-ws-collaboration-ce -y pending-setups -a
11. Install workstream collaboration package (carbonio-videoserver-ce)
apt install carbonio-videoserver-ce -y pending-setups -a
12. Install workstream collaboration package (carbonio-ws-collaboration-ui)
apt install carbonio-ws-collaboration-ui -y su - zextras -c "carbonio prov mc default carbonioFeatureChatsEnabled TRUE"
13. Change the password of the admin user:
14. Restart Services:
systemctl enable carbonio-tasks systemctl restart carbonio-tasks systemctl enable carbonio-videoserver systemctl restart carbonio-videoserver systemctl restart carbonio-prometheus-nginx-exporter.service su - zextras -c "zmcontrol restart"
15. Check status of services:
su - zextras -c "zmcontrol -v" su - zextras -c "zmcontrol status" systemctl list-units carbonio*
16. Additional recommendation: (Modify MTA Trusted Network)
su - zextras -c "carbonio prov ms $(hostname -f) zimbraMtaMyNetworks '127.0.0.0/8 $(hostname -i)/32'" su - zextras -c "zmmtactl restart"
17. Restart the server and restart mentioned services as per the order shown below:
reboot now systemctl restart carbonio-tasks systemctl restart carbonio-message-broker systemctl restart carbonio-videoserver systemctl restart carbonio-ws-collaboration systemctl restart carbonio-prometheus-nginx-exporter.service
A reference video link:
Fresh Installation of Carbonio CE 23.12.0 Workstream Collaboration
i find this problem in the process:
After spending the day testing and testing and testing I can now say that it works but requires some care on the steps above and some extra ones to make also Meeting work properly. I'll let the why to devs to answer, all I can tell you is how to make it work.
carbonio-message-dispatcher-migration
This one is the tricky one. If it fails you must wait like 5 minutes and try again. There is something running in background that takes that time to be done and allow it to run successfully.
So, insist running it till it works:
PGPASSWORD=$DB_ADM_PWD carbonio-message-dispatcher-migration carbonio_adm 127.78.0.10 20000
Once that one is done follow all the rest of the tutorial above. It will work.
Meeting
This is just an awesome feature that is just there and doesn't work out of the box, but just because you need to do two minor setups. Credits to Elio Junior from Brazil for figure this out, TYVM!. So...
1 - Edit /etc/janus/janus.jcfg file, look for nat_1_1_mapping and change it with your external IP;
2 - You must allow or redirect all range of ports 20000-40000 on UDP protocol on your Firewall.
Ending
Reboot the whole server... and when it's back, when all services are up and running... restart this services:
systemctl enable carbonio-tasks systemctl enable carbonio-videoserver systemctl restart carbonio-prometheus-nginx-exporter
Wait another minute or two and give it a try.
Telegram: https://t.me/CarbonioMail
im running in LXC container, CARBONIO NOT WORK ON LXC CONTAINERS
It doesn't allow me to upload the image, but this is part of the log when I open the chat window and click create a session
[2024-01-08T22:31:37.830Z] [info] [id=req-c5, hostname=127.78.0.2:20002, ip=127.0.0.1 url=/health/live] Request received Jan 08 16:31:37 email.domain.com carbonio-storages[898]: [2024-01-08T22:31:37.830Z] [debug] No auth checks performed on request req-c5 Jan 08 16:31:37 email.domain.com carbonio-storages[898]: [2024-01-08T22:31:37.831Z] [info] {"res":{"raw":{"_events":{},"_eventsCount":1,"outputData":[],"outputSize":0,"writable":true,"destroyed":false,"_last":false,"chunkedEncoding":false,"shouldKeepAlive":true,"_defaultKeepAlive":true,"useChunkedEncodingByDefault":true,"sendDate":true,"_removedConnection":false,"_removedContLen":false,"_removedTE":false,"_contentLength":null,"_hasBody":true,"_trailer":"","finished":true,"_headerSent":true,"socket":null,"_header":"HTTP/1.1 200 OK\r\ncontent-length: 0\r\nDate: Mon, 08 Jan 2024 22:31:37 GMT\r\nConnection: keep-alive\r\nKeep-Alive: timeout=5\r\n\r\n","_keepAliveTimeout":5000,"_sent100":"[Unknown]","_expect_continue":"[Unknown]","statusMessage":"[Unknown]","statusCode":"[Unknown]"},"request":"[Unknown]","log":"[Unknown]"},"responseTime":"[Unknown]"}
Hi,
Sorry for the inconvenience.
I have made slight modification in the above steps. I would humbly request you to try them again and let us know you feedback 🙏
Regards,
Sharif
Hi Guys,
I have prepared a draft of the deployment of Carbonio CE 23.12.0 workstream collaboration in step by step format. BTW all the information is available in the documentation (docs.zextras.com); I just summed it up for you.
For RHEL8 - Single Server
Simplified version of steps:
[Always check with official documentation for updated information]
1. Preparing the server
[Add Zextras repository using this link ( https://zextras.com/carbonio-community-edition#discoverproduct ) and form ]
Set hostname
Set hosts
Set timezone
2. Disable SELinux and Firewall. Later at the end of this installation process, you can enable firewall ports based on their role and description mentioned here. Reboot your server after disabling SELinux.
3. Configure RHEL subscription to enable relevant repositories. In this release, you need to configure EPEL repositories to configure workstream collaboration related packages and their dependencies.
[EPEL Repo Configuration] subscription-manager repos --enable codeready-builder-for-rhel-8-$(arch)-rpms sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm yum clean all yum repolist
4. Download and configure Zextras repository using this link ( https://zextras.com/carbonio-community-edition#discoverproduct ) and form. Then clean, update and upgrade existing repos and packages.
dnf clean all dnf update -y && dnf upgrade -y
5. PostgreSQL Configuration
yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm dnf -qy module disable postgresql dnf -y install postgresql12 postgresql12-server /usr/pgsql-12/bin/postgresql-12-setup initdb systemctl enable --now postgresql-12
To configure PostgreSQL, edit file
Check out this link, to get the details.
vi /var/lib/pgsql/12/data/pg_hba.conf
find the line:
#IPv4 local connections: host all all 127.0.0.1/32 ident
remove the #
before host
(if present) and change it as follows:
#IPv4 local connections: host all all 127.0.0.1/32 md5
Finally, reload the PostgreSQL
systemctl reload postgresql-12
6. Create PostgreSQL ROLE and DATABASE
read -s -p "Password:" DB_ADM_PWD su - postgres -c "psql --command=\"CREATE ROLE carbonio_adm WITH LOGIN SUPERUSER encrypted password '$DB_ADM_PWD';\"" su - postgres -c "psql --command=\"CREATE DATABASE carbonio_adm owner carbonio_adm;\""
7. Install Packages
dnf install 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
8. Mandatory steps:
carbonio-bootstrap service-discover setup-wizard pending-setups -a
9. Bootstrapping installed Files and Tasks DB
PGPASSWORD=$DB_ADM_PWD carbonio-files-db-bootstrap carbonio_adm 127.0.0.1 PGPASSWORD=$DB_ADM_PWD carbonio-tasks-db-bootstrap carbonio_adm 127.0.0.1
Workstream Collaboration Packages Setup:
10. Install workstream collaboration package (carbonio-message-dispatcher-db)
[Save the same DB value once more] read -s -p "Password:" DB_ADM_PWD dnf install carbonio-message-dispatcher-db -y pending-setups -a PGPASSWORD=$DB_ADM_PWD carbonio-message-dispatcher-db-bootstrap carbonio_adm 127.0.0.1
11. Install workstream collaboration package (carbonio-message-dispatcher)
dnf install carbonio-message-dispatcher -y pending-setups -a PGPASSWORD=$DB_ADM_PWD carbonio-message-dispatcher-migration carbonio_adm 127.78.0.10 20000
12. Install workstream collaboration package (carbonio-message-broker)
dnf install carbonio-message-broker -y pending-setups -a
13. Install workstream collaboration package (carbonio-ws-collaboration-db)
dnf install carbonio-ws-collaboration-db -y pending-setups -a PGPASSWORD=$DB_ADM_PWD carbonio-ws-collaboration-db-bootstrap carbonio_adm 127.0.0.1
Now you can remove the value set in the variable as DB password:
unset DB_ADM_PWD
14. Install workstream collaboration package (carbonio-ws-collaboration-ce)
dnf install carbonio-ws-collaboration-ce -y pending-setups -a
15. Install workstream collaboration package (carbonio-videoserver-ce)
dnf install carbonio-videoserver-ce -y pending-setups -a
16. Install workstream collaboration package (carbonio-ws-collaboration-ui)
dnf install carbonio-ws-collaboration-ui -y su - zextras -c "carbonio prov mc default carbonioFeatureChatsEnabled TRUE"
17. Change the password of the admin user:
18. Restart Services:
systemctl enable carbonio-tasks systemctl restart carbonio-tasks systemctl enable carbonio-videoserver systemctl restart carbonio-videoserver systemctl restart carbonio-prometheus-nginx-exporter.service su - zextras -c "zmcontrol restart"
19. Check status of services:
su - zextras -c "zmcontrol -v" su - zextras -c "zmcontrol status" systemctl list-units carbonio*
20. Additional recommendation: (Modify MTA Trusted Network)
su - zextras -c "carbonio prov ms $(hostname -f) zimbraMtaMyNetworks '127.0.0.0/8 $(hostname -i)/32'" su - zextras -c "zmmtactl restart"
21. Restart the server and restart mentioned services as per the order shown below:
reboot now systemctl restart carbonio-tasks systemctl restart carbonio-message-broker systemctl restart carbonio-videoserver systemctl restart carbonio-ws-collaboration systemctl restart carbonio-prometheus-nginx-exporter.service
And that's it !
Thank you dear for this installation walkthrough, please correct 'apt' to 'dnf' for RHEL installation, furthermore please indicate optional modules (can skip if modules not required like chat and video)
Hi,
Thank you for pointing out the corrections. I have changed all of them.
If you skip Step-10 to 16, you will not have the workstream collaboration-related packages. So, without step-10 to 16 an account would have the mentioned features:
- Contacts
- Calendar
- Files
- Tasks
- Search
- Settings
I hope this helps.
Have a great day!
Regards,
Sharif
hello i have this error when i try to run this official documentation command on Rocky 8.9 :
root@mail:~# dnf install carbonio-tasks-ui carbonio-storages-ce carbonio-docs-connector-ce carbonio-docs-editor carbonio-docs-connector-db carbonio-prometheus carbonio-message-broker carbonio-message-dispatcher carbonio-docs-connector-dbcarbonio-message-dispatcher-db carbonio-ws-collaboration-db carbonio-ws-collaboration-ui
Failed to set locale, defaulting to C.UTF-8
Last metadata expiration check: 0:16:36 ago on Wed Jan 24 13:20:46 2024.
No match for argument: carbonio-docs-connector-dbcarbonio-message-dispatcher-db
Error: Unable to find a match: carbonio-docs-connector-dbcarbonio-message-dispatcher-db
I don't no why, i added the carbonio repository but it's doesn't work again
how can fix it please
I just want to test carbonio ce collaboration(video, chat, docs) functionality
@sharif I also have this error when i try to run :
~# PGPASSWORD=$DB_ADM_PWD carbonio-message-dispatcher-db-bootstrap carbonio_adm 127.0.0.1
Database: 127.0.0.1:5432 user carbonio_adm
Error connecting to Consul agent: Error loading token file: open /etc/carbonio/message-dispatcher-db/service-discover/token: no such file or directory
root@mail:~#
when i run this pending-setups -a
i get this :
Insert the cluster credential password:
Executing all setup scripts...
--------------------------------------------------------------------------------
Executing /etc/zextras/pending-setups.d/carbonio-message-dispatcher.sh
Insert the cluster credential password:
ID: e4e9f944-6d88-88a1-cf1f-795d1b371453
Name: carbonio-message-dispatcher-policy
Description: Carbonio Message Dispatcher policy for service and sidecar proxy
Datacenters:
Rules:
{
"key_prefix": [
{
"carbonio-message-dispatcher/": {
"policy": "write"
},
"carbonio-message-dispatcher-db/": {
"policy": "read"
}
}
],
"node_prefix": [
{
"": {
"policy": "read"
}
}
],
"service": [
{
"carbonio-message-dispatcher-xmpp": {
"policy": "write"
},
"carbonio-message-dispatcher-http": {
"policy": "write"
},
"carbonio-message-dispatcher-auth": {
"policy": "write"
},
"carbonio-message-dispatcher-http-sidecar-proxy": {
"policy": "write"
},
"carbonio-message-dispatcher-xmpp-sidecar-proxy": {
"policy": "write"
},
"carbonio-message-dispatcher-auth-sidecar-proxy": {
"policy": "write"
}
}
]
}
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
Carbonio Message Dispatcher database password not found.
Please install carbonio-message-dispatcher-db and run carbonio-message-dispatcher-db-bootstrap command.
Script for Message Dispatcher terminated with error
Setup script failed, keeping it
pending faile why ?
@gagie Rocky Linux is not officially supported.... I'll suggest you to use Ubuntu 20.04... it's working perfectly =)
Hello, thanks for the installer post.
I've got this error, but i can't find the file in github:
At your point "7"
apt install carbonio-message-dispatcher -y
pending-setups -a
PGPASSWORD=$DB_ADM_PWD carbonio-message-dispatcher-migration carbonio_adm 127.78.0.10 20000
Last command, the result was:
Cannot run script file '/etc/carbonio/message-dispatcher/sql-scripts/migrations//6.0.0.sql'
You need to add a CR at the end of the file 6.0.0.sql, then it works
Thanks
Marco