Dirección
Av. General Enriquez e Isla Baltra
Edificio Valle Center Of. C2
Horario Laboral
Lunes a Viernes 7AM - 6PM
Fines de Semana: 9AM - 13PM

Zextras Carbonio CE es una plataforma de colaboración y gestión de correo electrónico de código abierto que permite a las organizaciones implementar su propio servidor de correo electrónico, herramientas de productividad y colaboración. Ofrece funcionalidades como correo electrónico, calendario, gestión de contactos, tareas, chat y videollamdas, todo integrado en un entorno seguro y flexible.
Beneficios Clave:
En esta primera entrada te explicaremos paso a paso como instalar los componentes esenciales de Zextras Carbonio CE 25.x. Antes de comenzar con la instalación de Carbonio CE, es fundamental preparar correctamente el entorno. A continuación, se detallan los requisitos mínimos y recomendados para su implementación:
Para la instalación de los componentes esenciales de Carbonio CE en un único servidor (Sigle Server) se requiere contar con un servidor con las siguientes características:
Carbonio CE es compatible con diversas distribuciones Linux, sin embargo, esta guía está enfocada en una instalación sobre Ubuntu Server 24.04 LTS, utilizando la versión completa del sistema (no se recomienda el uso de imágenes “minimized”). Asegúrate de que el sistema cumpla con las siguientes condiciones antes de iniciar la instalación:
Primero configuraremos el servidor con una dirección IP estática, para ello, edita el archivo de configuración de red:
nano /etc/netplan/50-cloud-init.yaml
Agrega el siguiente contenido:
network:
version: 2
ethernets:
ens192:
addresses:
- "192.168.3.34/24"
nameservers:
addresses:
- 8.8.8.8
search:
- novatiecuador.com
routes:
- to: "default"
via: "192.168.3.254"
Recuerda ajustar el nombre de la interfaz, la dirección IP y el servidor DNS de acuerdo a la red que manejes.
Aplica la configuración realizada:
netplan apply
Define un FQDN (nombre de dominio completo) para el servidor:
hostnamectl set-hostname correo.novatiecuador.com
Edita el archivo de hosts:
nano /etc/hosts
Actualiza el contenido con la dirección IP local de nuestro servidor, seguido del nombre de host+dominio y al final el nombre de host
127.0.0.1 localhost
192.168.3.34 correo.novatiecuador.com correo
Zextras recomienda deshabilitar IPv6, para ello, en el mismo archivo de hosts, comenta todas las referencias a IPv6, deberías tener un archivo similar al siguiente:
127.0.0.1 localhost
192.168.3.34 correo.novatiecuador.com correo
# The following lines are desirable for IPv6 capable hosts
#::1 ip6-localhost ip6-loopback
#fe00::0 ip6-localnet
#ff00::0 ip6-mcastprefix
#ff02::1 ip6-allnodes
#ff02::2 ip6-allrouters
Para deshabilitar IPv6 en el sistema y que sea persistente, crea el siguiente archivo:
nano /etc/sysctl.d/99-ipv6-disable.conf
Agrega el siguiente contenido:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
En Ubuntu Server 24.04, aunque deshabilitemos IPv6 con sysctl, las interfaces activas siguen levantando direcciones IPv6 link-local.
La opción link-local: [] en Netplan desactiva la creación automática de direcciones link-local en la interfaz.
Agrega la siguiente línea en el archivo de configuración de red:
link-local: []
Deberias un tener un archivo similar al siguiente:
nano /etc/netplan/50-cloud-init.yaml
network:
version: 2
ethernets:
ens192:
addresses:
- "192.168.3.34/24"
nameservers:
addresses:
- 8.8.8.8
search:
- novatiecuador.com
routes:
- to: "default"
via: "192.168.3.254"
link-local: []
Aplica la configuración realizada:
netplan apply
Reinicia el sistema para verificar los cambios:
reboot
Carbonio CE requiere estrictamente en_US.UTF-8 como configuración regional predeterminada del sistema; una configuración regional diferente puede provocar problemas inesperados y que los servicios no funcionen correctamente.
Nos aseguramos de que tengamos instalado el paquete locales:
apt install locales
Genera el locale requerido para Carbonio CE:
locale-gen en_US.UTF-8
Edita el archivo de configuración de locale:
nano /etc/default/locale
Agrega el siguiente contenido:
LANG="en_US.UTF-8"
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
Verificamos y aplicamos los cambios realizados:
source /etc/default/locale
Carbonio CE requiere un DNS funcional para resolver correctamente el nombre de dominio y el registro MX. Para nuestra configuración usaremos la aplicación Bind9 como servidor DNS, muy conveniente para entornos empresariales ya que ofrece mejor rendimiento, seguridad y estabilidad..
Instala el paquete de Bind9:
apt install bind9
Edita el archivo de configuración de opciones:
nano /etc/bind/named.conf.options
Agrega el siguiente contenido:
options {
directory "/var/cache/bind";
recursion yes;
allow-query { localhost; 192.168.3.0/24; };
allow-transfer { none; };
listen-on { 192.168.3.34; };
forwarders {
8.8.8.8;
1.1.1.1;
};
dnssec-validation auto;
listen-on-v6 { any; };
};
Ajusta las zonas de red y la dirección IP apuntando a la de tu servidor Carbonio.
Edita el archivo de configuración de zonas:
nano /etc/bind/named.conf.local
Agrega el siguiente contenido al final:
//Definicion de zona de busqueda directa para el dominio novatiecuador.com
zone "novatiecuador.com" {
type master;
file "/var/cache/bind/db.novatiecuador.com";
};
Crea el archivo de zona:
nano /var/cache/bind/db.novatiecuador.com
Agrega el siguiente contenido:
;BIND Zona de Busqueda Directa para el dominio novatiecuador.com
$TTL 86400 ; 2 d
@ IN SOA novatiecuador.com. root.novatiecuador.com. (
2025112701 ; serial
28800 ; refresh (8 horas)
7200 ; retry (2 horas)
24191200 ; expire (4 semanas)
10800 ; Negative Cache TTL
)
NS dns.novatiecuador.com.
@ MX 10 correo.novatiecuador.com.
dns IN A 192.168.3.34
correo IN A 192.168.3.34
Ajusta los registros A y MX para tu dominio de modo que apunte a la IP de tu servidor Carbonio.
Reinicia el servicio Bind9:
systemctl restart bind9
Edita el archivo de configuración de red, de modo que la configuración DNS ahora utilice a la dirección IP de nuestro servidor Carbonio:
nano /etc/netplan/50-cloud-init.yaml
network:
version: 2
ethernets:
ens192:
addresses:
- "192.168.3.34/24"
nameservers:
addresses:
- 192.168.3.34
search:
- novatiecuador.com
routes:
- to: "default"
via: "192.168.3.254"
link-local: []
Aplica la configuración:
netplan apply
Edita el archivo de configuración de resolución de nombres:
nano /etc/systemd/resolved.conf
Agregamos en el valor del DNS la dirección IP de nuestro servidor Carbonio:
[Resolve]
...
DNS=192.168.3.34
FallbackDNS=8.8.8.8 1.1.1.1
Reinicia el servicio systemd-resolved
systemctl restart systemd-resolved
Una vez instalado y configurado Bind9, debemos validar que nuestro servidor resuelve correctamente los nombres y registros MX del dominio.
Verifica que el servidor se encuentre con la configuración de resolución de nombres apuntando al servidor Carbonio:
resolvectl status
Global
Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub
Current DNS Server: 192.168.3.34
DNS Servers: 192.168.3.34
Fallback DNS Servers: 8.8.8.8 1.1.1.1
Link 2 (ens192)
Current Scopes: DNS
Protocols: +DefaultRoute -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
DNS Servers: 192.168.3.34
DNS Domain: novatiecuador.com
Comprueba el registro MX:
dig MX novatiecuador.com
; <<>> DiG 9.18.39-0ubuntu0.24.04.2-Ubuntu <<>> MX novatiecuador.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49460
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;novatiecuador.com. IN MX
;; ANSWER SECTION:
novatiecuador.com. 86400 IN MX 10 correo.novatiecuador.com.
;; ADDITIONAL SECTION:
correo.novatiecuador.com. 86400 IN A 192.168.3.34
;; Query time: 1 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Thu Nov 27 12:31:09 -05 2025
;; MSG SIZE rcvd: 85
Comprueba el registro A:
dig correo.novatiecuador.com
; <<>> DiG 9.18.39-0ubuntu0.24.04.2-Ubuntu <<>> correo.novatiecuador.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44652
;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;correo.novatiecuador.com. IN A
;; ANSWER SECTION:
correo.novatiecuador.com. 0 IN A 192.168.3.34
;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Thu Nov 27 12:32:23 -05 2025
;; MSG SIZE rcvd: 69
Con las pruebas realizadas, verificamos que el servidor DNS resuelve correctamente los registros MX y A, para tu dominio y apuntando a la IP del servidor Carbonio.
Antes de proceder con la instalación de Carbonio CE, es indispensable contar con una base de datos PostgreSQL 16.
Configura el repositorio oficial de PostgreSQL:
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
Instala el paquete PostgreSQL 16:
apt update && apt install postgresql-16
Define una contraseña segura para el usuario administrativo que usará Carbonio:
read -s -p "Insert Password:" DB_ADM_PWD
Cuando se te solicite, introduce la contraseña segura: se almacenará en una variable denominada $DB_ADM_PWD que se podrá utilizar durante todo el procedimiento.
Crea el usuario administrativo para PostgreSQL:
su - postgres -c "psql --command=\"CREATE ROLE carbonio_adm WITH LOGIN SUPERUSER encrypted password '$DB_ADM_PWD';\""
Crea la base de datos:
su - postgres -c "psql --command=\"CREATE DATABASE carbonio_adm owner carbonio_adm;\""
Ajusta los parametros globales de PostgreSQL:
su - postgres -c "psql --command=\"ALTER SYSTEM SET listen_addresses TO '*';\""
su - postgres -c "psql --command=\"ALTER SYSTEM SET max_connections = 500;\""
su - postgres -c "psql --command=\"ALTER SYSTEM SET shared_buffers = 5000;\""
Edita el archivo de control de accesos:
nano /etc/postgresql/16/main/pg_hba.conf
Agrega la subred o la dirección IP del servidor Carbonio para evitar accesos no deseados:
# DO NOT DISABLE!
# If you change this first entry you will need to make sure that the
# database superuser can access the database using some other method.
# Noninteractive access to all databases is required during automatic
# maintenance (custom daily cronjobs, replication, and similar tasks).
#
# Database administrative login by Unix domain socket
local all postgres peer
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 scram-sha-256
host all all 192.168.3.0/24 md5
# IPv6 local connections:
host all all ::1/128 scram-sha-256
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all peer
host replication all 127.0.0.1/32 scram-sha-256
host replication all ::1/128 scram-sha-256
Aplica los cambios reiniciando el servicio de postgresql:
systemctl restart postgresql
Antes de instalar los paquetes de Carbonio CE, debemos configurar el repositorio oficial de Zextras. Este paso asegura que el sistema pueda descargar las versiones correctas y actualizadas de todos los componentes.
Configura el repositorio oficial de Carbonio CE:
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/zextras.gpg] https://repo.zextras.io/release/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/zextras.list
wget -O- "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x5dc7680bc4378c471a7fa80f52fd40243e584a21" | gpg --dearmor | sudo tee /usr/share/keyrings/zextras.gpg > /dev/null
chmod 644 /usr/share/keyrings/zextras.gpg
Recarga los repositorios:
apt update
Con el repositorio de Carbonio CE configurado y el sistema operativo preparado, ya tenemos el entorno listo para iniciar la instalación de los paquetes de Carbonio CE.
En esta guía nos enfocaremos en los componentes esenciales para el servicio de correo electrónico con Carbonio CE , aquellos que constituyen el núcleo del sistema y que deben estar presentes en cualquier despliegue inicial.
Paquetes:
Paquetes:
Paquetes:
Paquetes:
Paquetes:
Después de configurar los repositorios, la instalación de Carbonio CE requiere ejecutar algunos comandos.
Actualiza el sistema y sus repositorios:
apt update && apt upgrade
Instala los paquetes correspondientes:
apt install service-discover-server \
carbonio-directory-server carbonio-message-broker \
carbonio-user-management \
carbonio-files-db carbonio-mailbox-db \
carbonio-docs-connector-db carbonio-tasks-db \
carbonio-message-dispatcher-db \
carbonio-ws-collaboration-db \
carbonio-proxy carbonio-webui \
carbonio-files-ui carbonio-tasks-ui \
carbonio-ws-collaboration-ui carbonio-catalog \
carbonio-files-public-folder-ui \
carbonio-mta \
carbonio-appserver carbonio-storages-ce
Finalizada la instalación de los paquetes, comienza la instalación y configuración de Carbonio CE:
carbonio-bootstrap
Deberías ver en pantalla un contenido similar al siguiente:

Configura correctamente la zona horaria. Escribe la opción 1 correspondiente a Common Configuration:

Si visualizas que el valor en la opción de TimeZone no corresponde a tu Zona Horaria, escribe la opción 6 y selecciona el valor adecuado. Para este caso la zona horaria es América/Bogotá:

Una vez establecida la Zona Horaria, escribe ‘r’ para regresar al menú anterior:

Para aplicar y continuar con la configuración escribe ‘y’. El proceso continuará hasta completarse, y presiona Enter para continuar con la configuración de Carbonio Mesh.
Carbonio Mesh es necesario para permitir la comunicación entre Carbonio CE y sus componentes. La configuración se genera de forma interactiva mediante el siguiente comando:
service-discover setup-wizard
Se te solicitará introducir lo siguiente:

Una vez colocados los datos, completa la instalación de Carbonio Mesh mediante el siguiente comando:
pending-setups -a
Se te solicitará introducir la contraseña que estableciste para el servicio de Carbonio Mesh:

Después de instalar los componentes básicos, es necesario inicializar las bases de datos asociadas a cada servicio. Este proceso se realiza con el usuario administrador de PostgreSQL que definimos previamente.
Inicializa las bases de datos:
PGPASSWORD=$DB_ADM_PWD carbonio-mailbox-db-bootstrap carbonio_adm 127.0.0.1
PGPASSWORD=$DB_ADM_PWD carbonio-docs-connector-db-bootstrap carbonio_adm 127.0.0.1
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
PGPASSWORD=$DB_ADM_PWD carbonio-ws-collaboration-db-bootstrap carbonio_adm 127.0.0.1
PGPASSWORD=$DB_ADM_PWD carbonio-message-dispatcher-db-bootstrap carbonio_adm 127.0.0.1
Una vez completada la instalación y el bootstrap de los componentes básicos, es fundamental comprobar que todos los servicios se encuentran activos y funcionando correctamente
En las versiones de Carbonio CE para Ubuntu 24.04, ahora los servicios se gestionan bajo systemd.
Verifica el estado de los servicios:
systemctl status carbonio-*
Carbonio introduce cuatro objetivos de systemd dedicados que agrupan los servicios por función. Puedes gestionar estos servicios de la siguiente manera:
systemctl restart carbonio-directory-server.target
systemctl restart carbonio-appserver.target
systemctl restart carbonio-proxy.target
systemctl restart carbonio-mta.target
Verifica la versión de Carbonio CE
su - zextras -c 'zmcontrol -v'
Carbonio Release 25.9.0
Verifica el estado del servidor manejado por Carbonio Mesh. En el campo Status se debe mostrar el valor alive:
consul members
Node Address Status Type Build Protocol DC Partition Segment
server-correo-novatiecuador-com 192.168.3.34:8301 alive server 1.19.1 2 dc1 default <all>
Verifica el estado de la comunicación entre los servicios de Carbonio CE:
systemctl status service-discover
Si todas las comprobaciones anteriores se encuentran sin problemas, recomendamos realizar un último reinicio del servidor:
reboot
Con la verificación de los servicios completada, confirmamos que la instalación básica de Carbonio CE se encuentra operativa y preparada para ofrecer sus funcionalidades principales.
El siguiente paso es establecer una contraseña al usuario administrador predeterminado zextras mediante la línea de comandos, y luego validar el acceso desde el navegador.
Asigna una contraseña segura para el usuario zextras:
su - zextras -c "carbonio prov setpassword zextras@novatiecuador.com micontraseñasegura"
Accede a la interfaz web de administración, recuerda usar tu propio FQDN o IP:
https://correo.novatiecuador.com:6071


Accede a la interfaz web de usuario o Webmail, recuerda usar tu propio FQDN o IP:
https://correo.novatiecuador.com


Con el acceso a la interfaz web, concluimos exitosamente la instalación de los componentes esenciales de Zextras Carbonio CE en Ubuntu 24.04.
¿Te gusta este post? Es solo un ejemplo de cómo podemos ayudar a tu empresa…