To be clear, I am using Carbonio CE 25.3.1 on Ubuntu 20.04.6 LTS.
But installing the present version of Carbonio CE on Ubuntu 24.04.3 LTS seemed impossible.
I did couple of attempts and found Carbonio do not get the server DNS right. May be there are ways to change them later, but I wanted to do things right, as I did with Zimbra and the one I am using right now.
I had to change hostname, IP on both /etc/hostname and /etc/hosts files.
Then I started to follow the official guide. The guide do not say anything about repo configuration at the first step, so when I execute /scripts/install_carbonio_ce_singleserver_ubuntu.sh it says -
$ sudo ./install_carbonio_ce_singleserver_ubuntu.sh Carbonio will be installed on heerabeej.com, using com as default domain and 210.4.64.141 as public IP Hit:1 http://security.ubuntu.com/ubuntu noble-security InRelease Hit:2 http://in.archive.ubuntu.com/ubuntu noble InRelease Hit:3 http://in.archive.ubuntu.com/ubuntu noble-updates InRelease Hit:4 http://in.archive.ubuntu.com/ubuntu noble-backports InRelease Reading package lists... Done Building dependency tree... Done Reading state information... Done All packages are up to date. ###### Carbonio repo are not configured. ######
Then I go to Manual Installation section and perform the Repository Setup.
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
May be this part was not necessary but still I did that.
Then I added /etc/apt/sources.list.d/zextras.list file from Configure Carbonio CE Repository section and add this -
deb [arch=amd64 signed-by=/usr/share/keyrings/zextras.gpg] https://repo.zextras.io/release/ubuntu noble main
imported the key
wget -O- "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x5dc7680bc4378c471a7fa80f52fd40243e584a21" | gpg --dearmor | sudo tee /usr/share/keyrings/zextras.gpg > /dev/null
Add correct permission to the key
chmod 644 /usr/share/keyrings/zextras.gpg
Executed the install_carbonio_ce_singleserver_ubuntu.sh again, and the installation starts.
Now I get this error -
Setting nginx password...done. Initializing ldap...Job for carbonio-openldap.service failed because a timeout was exceeded. See "systemctl status carbonio-openldap.service" and "journalctl -xeu carbonio-openldap.service" for details. Connection timed out at /opt/zextras/libexec/ldapinit.pm line 122. panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x50 pc=0x78c27e] goroutine 1 [running]: github.com/go-ldap/ldap.(*Conn).nextMessageID(...) /home/agent/go/pkg/mod/github.com/go-ldap/ldap@v3.0.3+incompatible/conn.go:235 github.com/go-ldap/ldap.(*Conn).SimpleBind(0x0, 0xc00008ee28) /home/agent/go/pkg/mod/github.com/go-ldap/ldap@v3.0.3+incompatible/bind.go:54 +0x13e github.com/go-ldap/ldap.(*Conn).Bind(0xc0000c2240?, {0xc0000bc5e0?, 0xc00008ef10?}, {0xc0000ba330?, 0x828d60?}) /home/agent/go/pkg/mod/github.com/go-ldap/ldap@v3.0.3+incompatible/bind.go:116 +0x53 github.com/zextras/service-discover/pkg/carbonio.connect(0xc00009a420, 0x65?) /tmp/service-discover/pkg/carbonio/ldap.go:216 +0x1eb github.com/zextras/service-discover/pkg/carbonio.(*ldapContext).QueryAllServersWithService(0x8c9ade?, {0x8be909, 0x10}) /tmp/service-discover/pkg/carbonio/ldap.go:149 +0x65 github.com/zextras/service-discover/cmd/server/command/setup.(*Setup).isFirstInstance(0xc0001de018, {0x96d450, 0xc000198e30}) /tmp/service-discover/cmd/server/command/setup/common.go:211 +0x7b github.com/zextras/service-discover/cmd/server/command/setup.(*Setup).Run(0xc0001de018, 0xc0001de008) /tmp/service-discover/cmd/server/command/setup/common.go:175 +0x1b9 reflect.Value.call({0x88b9e0?, 0xc0001de018?, 0x8b5700?}, {0x8b6d2a, 0x4}, {0xc0001b6dc8, 0x1, 0x1?}) /usr/lib/go/src/reflect/value.go:596 +0xca6 reflect.Value.Call({0x88b9e0?, 0xc0001de018?, 0xc00008f8b8?}, {0xc0001b6dc8?, 0x8b5700?, 0xc00008f7f8?}) /usr/lib/go/src/reflect/value.go:380 +0xb9 github.com/alecthomas/kong.callFunction({0x88b9e0?, 0xc0001de018?, 0xc00008fa30?}, 0xc0002151d0) /home/agent/go/pkg/mod/github.com/alecthomas/kong@v0.9.0/callbacks.go:98 +0x45a github.com/alecthomas/kong.(*Context).RunNode(0xc000192180, 0xc0001e20f0, {0xc00008fef8, 0x1, 0x828d60?}) /home/agent/go/pkg/mod/github.com/alecthomas/kong@v0.9.0/context.go:774 +0x80e github.com/alecthomas/kong.(*Context).Run(0xc000192180?, {0xc00008fef8?, 0xc0001a9f08?, 0x10?}) /home/agent/go/pkg/mod/github.com/alecthomas/kong@v0.9.0/context.go:799 +0x132 main.main() /tmp/service-discover/cmd/server/server.go:66 +0x8bc gpg: can't open '/etc/zextras/service-discover/cluster-credentials.tar.gpg': No such file or directory gpg: decrypt_message failed: No such file or directory tar: This does not look like a tar archive tar: consul-acl-secret.json: Not found in archive tar: Exiting with failure status due to previous errors
And after that it asks for Insert the cluster credential password: couple of times. I pick and put a password all those times and get this finally -
Insert the cluster credential password: service-discover: error: unable to open /etc/zextras/service-discover/cluster-credentials.tar.gpg: cannot find Cluster credential in /etc/zextras/service-discover/cluster-credentials.tar.gpg, please copy the file from the existing server or upload it to LDAP Cannot access to bootstrap token ERROR: zclient.IO_ERROR (invoke Connection refused, server: localhost) (cause: java.net.ConnectException Connection refused) ERROR: zclient.IO_ERROR (invoke Connection refused, server: localhost) (cause: java.net.ConnectException Connection refused) ERROR: zclient.IO_ERROR (invoke Connection refused, server: localhost) (cause: java.net.ConnectException Connection refused) The service-discover password is: CAibgulaH3yAWEHvINI You can find it in file /var/lib/service-discover/password. The PostgreSQL passowrd (DB_ADM_PWD) is: lH7UJTru7P5r7hwtopo Please store it in a safe place, otherwise you will need to reset it!
I am sure the installation did not go smoothly. The funny part is if I do not touch the hosts and hostname files the installation finishes and do get something working. Though maybe I have to change hostname etc. later to make this work but can anyone check these and let me know what is not right?
Hi there,
Perhaps you should have started with Preliminary section here:
https://docs.zextras.com/carbonio-ce/html/install/preliminary.html
@itguy Many thanks. Perhaps I was skipping ahead to some point which did not work.
I will start the research again in 1/2 days but first I need to know this thing about FQDN. My server will run on mx.heera.net.bd but email addresses will be on heera.net.bd If I remember correctly, when I use to install Zimbra, the installer use to ask me about these things.
Now the DNS section guides something about A record and MX record. My mx is set to mx.heera.net.bd which is also an A record. For installing Carbonio, should I set A and MX to heera.net.bd and change them when I am finished?
Another thing I found is confusing in the Preliminaries section, is the DKIM Record. I believe I have to create DKIM Record after Carbonio is up and running. So it should not be in the Preliminaries section.
I took a bit of time and setup a new Proxmox vm - Ubuntu server full. Gave it 8 cores. I set 32GB of RAM - memory usage is high on Carbonio
I used the the guide and followed the preliminary steps down to DNS settings. For now SPF, DMARC, DKIM is not important and can be added later.
Then to the single-server installation section - downloaded the Script for Ubuntu 24.04 with wget and made it executable.
My installation went through and I could login via browser into admin panel. Had to set a password for zextras user.
I do not have a public static IP. I rely on ddclient, local dns (bind9) and dhcp server. My dns provider is now cloudflare. SMTP2GO for MTA.
Your etc/hosts file should look like this:
127.0.0.1 localhost
10.1.1.85 mx.heera.net.bd mx -- your ip of course and I assume hostname is mx
/etc/hostname file:
mx
hostname command:
root@test:/etc# hostname
mx
root@test:/etc# hostname -f
mx.heera.net.bd
Noteworthy:
Fan made script: https://community.zextras.com/forum/carbonio-setup/carbonio-ce-related-scripts/
Telegram: https://t.me/CarbonioMai l" target="_blank" rel="noopener"> https://t.me/CarbonioMail
PS. Do not ask question on Telegram that are not Carbonio related. Just saying.