Tutorial Xibo: guía completa de instalación, seguridad y primeros pasos

  • Configura XMR/XTR, Apache, PHP y MariaDB para un CMS Xibo robusto.
  • Refuerza el acceso con 2FA, notificaciones y ajustes de correo.
  • Gestiona contenidos con Playlists y diseña con el Editor de Layouts.
  • Ordena y filtra en el CMS para escalar operaciones sin caos.

Tutorial Xibo cartelería digital

Si estás empezando con Xibo o quieres llevar tu cartelería digital un paso más allá, aquí vas a encontrar un recorrido completísimo desde la instalación del CMS en Ubuntu hasta los primeros pasos con contenidos, pantallas y seguridad. Todo lo que necesitas para poner Xibo en marcha con buen criterio está condensado en este artículo, incluyendo recomendaciones para usuarios nuevos, configuración de Apache, PHP, MariaDB, XMR/XTR y pautas para operar el día a día del sistema.

Además de la instalación paso a paso, recogeremos opciones de seguridad como la autenticación en dos factores, trucos de ordenación y filtrado en el propio CMS y la forma de subir y programar imágenes y vídeos ya creados. Si prefieres crear diseños directamente en Xibo, también verás cómo iniciarte con el Editor de Diseños y las plantillas para producir contenido atractivo sin complicarte.

Notas previas y requisitos

Antes de tocar nada conviene conocer algunas aclaraciones. En ciertos escenarios se han utilizado versiones de MariaDB y PHP que no son oficialmente soportadas por Xibo; procura validar tu stack con la matriz de compatibilidad recomendada por el proyecto si buscas estabilidad a largo plazo.

Otro detalle importante es la carpeta de biblioteca de medios. En esta guía se utiliza /var/www/Library como ubicación de la librería, dado que el instalador escribe el log de instalación en /var/www/library y exige que el directorio esté vacío para continuar correctamente.

Para gráficos dinámicos, una instancia local de QuickChart es recomendable por rendimiento y control, aunque no se cubre aquí su instalación. Es un complemento interesante si pretendes mostrar datos renderizados al vuelo.

Todos los requisitos del sistema se pueden instalar con apt en Ubuntu. Necesitarás servidor web, PHP con extensiones y componentes de soporte. El siguiente comando reúne los paquetes mínimos que se han utilizado con éxito en entornos reales:

sudo apt install mariadb-server mariadb-client apache2 php php-cli php-gd php-json php-dom php-mysql php-zip php-soap php-curl php-xml php-mbstring php-zmq libapache2-mod-xsendfile

Si vas a montar un entorno nuevo, asegúrate de que el cortafuegos, DNS y certificados estén previstos. Contar con HTTPS desde el primer día simplifica mucho la posterior configuración de seguridad y notificaciones por correo.

Instalación de Xibo en Ubuntu

Instalación del CMS Xibo en /srv/xibo-cms

Cuando se despliega software de servidor fuera de repositorios, es una buena práctica ubicarlo bajo /srv. En este caso instalaremos el CMS en /srv/xibo-cms para mantenerlo ordenado y separado de otros servicios:

sudo mkdir /srv/xibo-cms
cd /srv/xibo-cms
sudo wget https://github.com/xibosignage/xibo-cms/releases/download/3.0.2/xibo-cms-3.0.2.tar.gz
sudo tar -xvzf xibo-cms-3.0.2.tar.gz --strip-components=1

Una vez extraído, establece como propietario a la cuenta del servidor web para evitar problemas de permisos. En Ubuntu con Apache suele ser www-data:

sudo chown -R www-data:www-data /srv/xibo-cms

Para simplificar la configuración del VirtualHost, se elimina el directorio por defecto de Apache y se crea un enlace simbólico apuntando a la ruta de Xibo. Así /var/www queda vinculado al CMS:

sudo rm -r /var/www
sudo ln -s /srv/xibo-cms /var/www

Configurar Apache2 para Xibo

Habilita los módulos necesarios y crea la configuración del sitio. Necesitarás rewrite, SSL, y session al menos. Activa también X-Sendfile para servir la librería de forma eficiente:

sudo a2enmod rewrite
sudo a2enmod ssl
sudo a2enmod session
sudo nano /etc/apache2/sites-available/xibo-cms.conf

Ejemplo de VirtualHost para HTTP y HTTPS (ajusta el ServerName y las rutas a certificados): usa XSendFile y permite .htaccess donde corresponde:

<VirtualHost *:80>
    DocumentRoot "/var/www/web"
    ServerName xibo.domain.com
    XSendFile on
    XSendFilePath /var/www/Library
    <Directory "/var/www/web">
        AllowOverride All
        Options Indexes FollowSymLinks MultiViews
        Order allow,deny
        Allow from all
        Require all granted
    </Directory>
</VirtualHost>

<VirtualHost *:443>
    DocumentRoot "/var/www/web"
    ServerName xibo.domain.com
    XSendFile on
    XSendFilePath /var/www/Library
    SSLEngine on
    SSLCertificateFile "/etc/ssl/certs/ssl-cert-snakeoil.pem"
    SSLCertificateKeyFile "/etc/ssl/private/ssl-cert-snakeoil.key"
    <Directory "/var/www/web">
        AllowOverride All
        Options Indexes FollowSymLinks MultiViews
        Order allow,deny
        Allow from all
        Require all granted
    </Directory>
</VirtualHost>

Desactiva el sitio por defecto y activa el nuevo VirtualHost. Después, aplica los cambios. Con esto el CMS quedará servible bajo el nombre configurado:

sudo a2dissite 000-default.conf
sudo a2ensite xibo-cms.conf
sudo systemctl restart apache2

Preparar MariaDB

Accede al cliente de MariaDB y establece una contraseña segura para la cuenta root. Recuerda sustituir MI_NUEVA_CONTRASEÑA por la tuya y guarda el secreto adecuadamente:

sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MI_NUEVA_CONTRASEÑA';
FLUSH PRIVILEGES;
exit;

La creación de la base de datos del CMS la haremos desde el asistente web. En esa pantalla marca la opción de crear una base de datos nueva para que Xibo la inicialice con su esquema y permisos.

Ajustar PHP para cargas de archivos grandes

Si vas a trabajar con vídeo e imágenes pesadas, deberás ampliar límites de ejecución y subida en php.ini. Edita el php.ini del SAPI de Apache (ajusta la versión si no es 7.4):

sudo nano /etc/php/7.4/apache2/php.ini

Modifica las siguientes directivas para evitar cuellos de botella. Con 2G suele ser suficiente para la mayoría de vídeos, pero puedes crecer si tu infraestructura lo soporta. No olvides reiniciar Apache tras el cambio:

max_execution_time = 300
memory_limit = 256M
post_max_size = 2G
upload_max_filesize = 2G
session.cookie_secure = Off
session.cookie_httponly = On
session.cookie_samesite = Lax

Mensajería en tiempo real XMR y tareas programadas XTR

XMR es el componente de mensajería en tiempo real que permite al CMS enviar comandos a los Players de forma inmediata. Edita su archivo de configuración para adaptar IP/puertos. Cambia la IP pública en pubOn a la de tu servidor (puedes consultarla con «ip a» o tu proveedor):

sudo nano /srv/xibo-cms/vendor/xibosignage/xibo-xmr/bin/config.json

Contenido de ejemplo (ajusta pubOn a tu IP pública): mantén listenOn local y publica en el puerto 9505:

{
  "listenOn": "tcp://127.0.0.1:50001",
  "pubOn": ["tcp://192.168.1.1:9505"],
  "debug": false
}

Otorga la propiedad del archivo a www-data para que el servicio pueda leerlo sin problemas. Evitarás errores de permisos al arrancar XMR:

sudo chown www-data:www-data /srv/xibo-cms/vendor/xibosignage/xibo-xmr/bin/config.json

Crea el servicio systemd para XMR y habilítalo. Así se iniciará automáticamente con el sistema. Comprueba el estado tras arrancar para confirmar que no hay errores:

sudo nano /etc/systemd/system/xibo-xmr.service
[Unit]
Description=Xibo XMR
After=network.target

[Service]
User=www-data
Group=www-data
ExecStart=/usr/bin/php /srv/xibo-cms/vendor/bin/xmr.phar
Restart=always
KillMode=process
RestartSec=1

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable xibo-xmr.service
sudo systemctl start xibo-xmr.service
sudo systemctl status xibo-xmr.service

XTR, por su parte, es el conjunto de tareas recurrentes que el CMS ejecuta cada minuto. Añádelo al crontab del usuario del servidor web para que corra sin credenciales adicionales. Programa la ejecución por minuto con esta línea:

sudo crontab -u www-data -e
* * * * * /usr/bin/php /var/www/bin/xtr.php

Firewall, puertos y arranque

Abre los puertos necesarios en UFW: SSH para administración remota, HTTPS para el CMS y el puerto TCP 9505 para la publicación de XMR. Habilita el cortafuegos al final para aplicar las reglas:

sudo ufw allow ssh
sudo ufw allow https
sudo ufw allow 9505/tcp
sudo ufw enable

Reinicia Apache y accede a la URL configurada en el VirtualHost. Si todo está correcto, verás la pantalla de comprobaciones previas de Xibo. La única alerta habitual es la de subidas grandes si no has ajustado php.ini como se indicó:

sudo systemctl restart apache2

Asistente web de instalación

En la primera pantalla, al final, pulsa Next para continuar con el asistente. Rellena los datos de conexión a MariaDB y marca «Create a new database» para que Xibo cree la base y los privilegios necesarios automáticamente.

A continuación, el instalador te pedirá el nombre de usuario y contraseña del administrador del CMS. Anota estas credenciales con seguridad porque las usarás para el primer acceso.

El siguiente paso es indicar la ruta de la librería de contenidos, que en esta guía es /var/www/Library. También puedes confirmar o ajustar la licencia del servidor para el alta de reproductores. Si no te interesa enviar telemetría, desmarca la opción de estadísticas.

Tras finalizar, podrás iniciar sesión con la cuenta de administrador recién creada y acceder al panel principal del CMS. Si no ves diseños o notas rarezas, fuerza la recarga del navegador (por ejemplo, Shift+F5) para limpiar caché.

Primer inicio: seguridad de acceso, perfil y notificaciones

La primera vez que entras conviene cambiar la contraseña. Ve al perfil de usuario, pulsa Editar y establece un secreto nuevo. Aprovecha para añadir un correo válido con el que recibir recordatorios y alertas.

En el Perfil encontrarás Preferencias de la interfaz y un enlace para volver a mostrar la pantalla de bienvenida cuando quieras. Personalizar estos detalles te ahorra tiempo en el día a día si gestionas muchas pantallas.

Refuerza el acceso con Autenticación en Dos Factores (2FA). Puedes elegir recibir el código por correo o introducir el código generado por la app Google Authenticator. Al activarlo, genera Códigos de Recuperación, cópialos y guárdalos en un gestor de contraseñas.

Si alguna vez pierdes el acceso al email o a la app de códigos, un administrador puede restablecer los códigos de recuperación desde la rejilla de Usuarios. Tras el reset, vuelve a habilitar 2FA desde tu perfil siguiendo los pasos.

El sistema de Notificaciones muestra mensajes de usuarios y eventos del sistema. Accede desde la campanita junto al perfil y, si deseas crear una nueva, entra al Centro de Notificaciones y utiliza «Add Notification». Recuerda que las opciones dependen de las características que el administrador habilite para tu rol.

Si no ves el cajón de notificaciones, solicita que te activen las características correspondientes en Features y que se configure una dirección de envío de correos en Ajustes > Red. La opción «interrumpir» en una notificación hace que el usuario sea redirigido automáticamente a verla; para que los avisos por email funcionen, activa «Enable Email Alerts» en Ajustes > Mantenimiento.

Subir y mostrar contenido en pantallas

Si ya tienes imágenes y vídeos creados fuera del CMS, súbelos a la Biblioteca y prográmalos en tus pantallas desde la sección de Planificación. Es rápido y te permite empezar a emitir en minutos.

Para rotaciones tipo carrusel, crea una Playlist que agrupe tus activos y asígnala a los Displays que quieras. Añadir o quitar elementos de la lista actualizará las pantallas sin rehacer diseños enteros.

Si prefieres componer tus mensajes en el propio Xibo, abre el Editor de Diseños (Layout Editor). Puedes partir de plantillas prediseñadas o de un lienzo en blanco, colocando regiones para vídeo, imagen, texto, feeds, etc., y afinando la duración de cada widget.

Recuerda que los Displays deben estar conectados y autorizados en el CMS para empezar a mostrar contenido. Si aún no has creado ninguno, ve a la sección Pantallas, autoriza los que aparezcan como pendientes y asigna tus primeros diseños.

Ordenación y filtros en el CMS

En casi todas las rejillas del CMS (Diseños, Medios, Pantallas, Usuarios, etc.) tienes herramientas de ordenación y filtrado para encontrar lo que buscas. Ordena por columnas, aplica filtros por nombre, etiqueta, fecha o estado y guarda vistas si lo necesitas.

Usar correctamente estas opciones te ayuda a gestionar catálogos grandes y despliegues con decenas de pantallas. Una buena taxonomía con etiquetas y filtros coherentes reduce errores y acelera el trabajo del equipo.

Actualizaciones del CMS

Cuando toque actualizar, lo más sencillo es parar Apache y XMR, hacer copia de seguridad y desplegar la nueva versión. Empieza por detener servicios y versionar el directorio actual para tener vuelta atrás rápida:

sudo systemctl stop apache2 xibo-xmr
sudo mv /srv/xibo-cms /srv/xibo-cms.backup

Realiza un dump de la base de datos (sustituye «usuario» por tu usuario no-root) y guárdalo en tu home o en almacenamiento seguro:

sudo mysqldump -u root -p xibo > /home/usuario/xibo-cms.sql

Despliega la nueva versión del CMS en un directorio limpio, copia settings.php, la Library completa y el config.json de XMR. Elimina el instalador web para evitar advertencias y fija permisos adecuados:

sudo mkdir /srv/xibo-cms
cd /srv/xibo-cms
sudo wget https://github.com/xibosignage/xibo-cms/releases/download/3.0.8/xibo-cms-3.0.8.tar.gz
sudo tar -xvzf xibo-cms-3.0.8.tar.gz --strip-components=1
sudo cp /srv/xibo-cms.backup/web/settings.php web/
sudo cp -r /srv/xibo-cms.backup/Library .
sudo cp /srv/xibo-cms.backup/vendor/xibosignage/xibo-xmr/bin/config.json vendor/xibosignage/xibo-xmr/bin/
sudo chown -R www-data:www-data /srv/xibo-cms
sudo rm web/install/index.php

Si actualizas entre ramas mayores (por ejemplo de la 2.x a la 3.x), ejecuta la migración de base de datos desde el directorio del CMS. Este paso aplica los cambios de esquema necesarios:

vendor/bin/phinx migrate -c phinx.php

Vuelve a arrancar servicios y entra al CMS. Si no se cargan correctamente los diseños, haz un refresco forzado del navegador (Shift+F5). Puedes verificar la versión instalada desde el enlace «Acerca de» en la esquina inferior izquierda:

sudo systemctl start apache2 xibo-xmr

Player de Windows y alta de Displays

Para probar tu red de pantallas en un PC con Windows, descarga e instala el Xibo Player para Windows (gratuito). Acepta la licencia, deja marcada la opción de ejecutar al finalizar y completa el asistente.

Al abrir el Player, introduce la URL del CMS y conéctalo. Pasados unos segundos, debería indicar que la conexión se ha realizado. Después, entra al CMS y autoriza ese nuevo reproductor desde la sección Pantallas.

Con el Player autorizado, ya puedes asignar diseños o listas de reproducción a ese Display. Este es el punto de partida de tu red: añade más Players en tus ubicaciones y orquesta la cartelería desde el CMS.

Formación, documentación y comunidad

Si buscas materiales de aprendizaje, hay vídeos que complementan la documentación oficial y recursos útiles en la comunidad. Los foros de código abierto de Xibo son una gran fuente de soluciones prácticas y buenas ideas.

En algunos entornos encontrarás planes de soporte y comunidades privadas dedicadas a tecnologías abiertas (por ejemplo, iniciativas como «Ingenios@s de Sistemas», con suscripciones asequibles y podcasts diarios). Estos recursos pueden ayudarte a resolver dudas rápidamente y mantenerte al día.

Con una instalación cuidada, seguridad reforzada con 2FA, mensajería XMR operativa, XTR programado y buenas prácticas de subida y programación de contenidos, tendrás una plataforma de cartelería digital estable y flexible. Aprovecha la ordenación y los filtros del CMS, autoriza tus pantallas con criterio, y combina Playlists y Diseños para iterar rápido sin perder calidad en lo que muestras.