Cómo instalar Xibo en Ubuntu Server 20.04 (no-docker)

En este tutorial te enseño cómo instalar Xibo en Ubuntu Server 20.04 usando LAMP como pila web y aplicando TLS usando esta configuración. Xibo es un sistema que utilizo a menudo en colegios y oficinas.

Yo he instalado Xibo usando el laboratorio de maquinas virtuales que describo en el libro “Como ser ingenios@ de Sistemas” que puedes conseguir apuntándote a mi newsletter, pero he descrito el manual con nombre de dominio para que puedas hacer una implementación real y auto alojar Xibo en tu VPS, que puedes contratar en CONTABO.

He completado esto usando los certificados autofirmados autogenerados para TLS (no confiables). Tendrás que seguir otra guía para crear certificados con firma pública.

Recomiendo usar Let’s Encrypt con su certbot.

Cómo instalar Xibo en Ubuntu

Notas

  • Las versiones de MariaDB y PHP instaladas aquí no son soportadas oficialmente por Xibo.
  • La ubicación de la biblioteca es /var/www/Library debido a que el instalador escribe el archivo de registro de la instalación en /var/www/library. El instalador requiere que el directorio de la biblioteca esté vacío.
  • Una instalación local de QuickChart no está cubierta en esta guía pero se recomienda.

Requisitos de instalación

Todos los requisitos se pueden instalar con apt.

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

Cómo instalar Xibo en Ubuntu

Cuando estoy configurando el software del servidor fuera de un gestor de paquetes siempre lo coloco bajo la carpeta /srv. Voy a instalar Xibo en /srv/xibo-cms.

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

Esto extrae el contenido del archivo sin crear una carpeta

sudo tar -xvzf xibo-cms-3.0.2.tar.gz --strip-components=1

El usuario de apache2 ‘www-data’ debe ser establecido como propietario de todos los elementos extraídos.

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

Esto elimina el directorio /var/www existente y crea un enlace simbólico a /srv/xibo-cms.

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

Configurar Apache2

Esto habilita los módulos necesarios de apache2 y crea una configuración del sitio usando vim.

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

fichero de configuración xibo-cms.conf

<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>

Esto desactiva el sitio por defecto

sudo a2dissite 000-default.conf

Este comando activa la configuración del sitio xibo-cms recién creado.

sudo a2ensite xibo-cms.conf

Configure MariaDB

Esto configura una contraseña de usuario root para MariaDB. Asegúrese de cambiar MI_NUEVA_CONTRASEÑA por la contraseña que desee.

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

Configurar PHP

Es necesario modificar la configuración de PHP para permitir la carga de archivos más grandes.
sudo nano /etc/php/7.4/apache2/php.ini

Modifica las siguientes líneas como se muestra

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

Configurar el XMR

Crear archivo de configuración XMR

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

Introduce la siguiente información y cambia la dirección IP de pubOn por la IP pública del servidor. Puedes ver esto ejecutando el comando “ip a”

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

Establece www-data como propietario del archivo.

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

Crear el servicio XMR

sudo nano /etc/systemd/system/xibo-xmr.service

Introduce lo siguiente.

[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

Iniciar el servicio

sudo systemctl daemon-reload
sudo systemctl enable xibo-xmr.service
sudo systemctl start xibo-xmr.service

Comprueba el estado del servicio xibo-xmr para confirmar que está funcionando.

sudo systemctl status xibo-xmr.service

Configurar XTR en el cron

sudo crontab -u www-data -e

Selecciona el editor que prefieras y luego introduce la siguiente línea.

* * * * * /usr/bin/php /var/www/bin/xtr.php

Configurar el cortafuegos

Habilitar el puerto 22 para conexiones ssh

sudo ufw allow ssh

Habilitar puerto 443 para https

sudo ufw allow https

Habilitar el puerto 9505 para XTR

sudo ufw allow 9505/tcp

Habilitar el firewall de Ubuntu

sudo ufw enable

Reiniciar el servicio apache

sudo systemctl restart apache2

Ahora puedes navegar al servidor en la ubicación que configuraste en el xibo-cms.conf

Si todo ha ido bien veras la lista de comprobaciones que Xibo realiza antes de hacer la instalación, lo normal es que estén todas marcadas como correctas, salvo la de “Carga de archivos grandes”.

Si vas a usar Xibo con video, 2 GB no es suficientemente grande para los videos, revisa la configuración del fichero /etc/php/7.4/apache2/php.ini y aumenta los valores de las variables post_max_size y upload_max_filesize

Si todo esta bien puedes desplazarte hasta la parte inferior de la pagina y pulsar “Next” para continuar con la instalación y aparecera la pagina de configuración de la base de datos

Rellenas la información y acuerdate de marcar la opción “Create a new database” para que Xibo cree la base de datos nueva en tu MariaDB.

Si tuvieras ya una base de datos creada configura los datos en la pestaña adyacente.

Xibo creara la base de datos y te pedira un nombre y una contraseña de usuario para el usuario Administrador del CMS

Pulsando Siguente, vas a la pagian donde le dices la ruta en la que va a estar la librería de contenido de Xibo que estará en /var/www/Library y también el numero de licencia de este servidor, que se utilizará para dar de alta los reproductores.

Escribe /var/www/Library en la ruta de la librería y puedes dejar la licencia como la que te propone la propia instalación. La opción de estadísticas enviara información a Xibo de tu sistema para fines estadísticos, desmárcalo si no quieres enviar información

Aparecerá entonces el formulario para acceder al CMS, escribe el nomrbe de usuario y contraseña del Administrador

Y despues accedes al panel de control del CMS

Actualización de nuevas versiones

Copia de seguridad

Lo más sencillo es parar apache2 y el servicio xibo-xmr, moviendo el directorio /srv/xibo-cms

sudo systemctl stop apache2 xibo-xmr

y hacer una copia de seguridad de la base de datos.

sudo mv /srv/xibo-cms /srv/xibo-cms.backup

Sustituye la palabra en azul “usuario” por el nombre de usuario no-root que estes utilizando

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

Crea el directorio xibo-cms y cambia a él. Descarga la nueva versión, en este ejemplo 3.0.2 extráela y copia los archivos necesarios. También tendrás que borrar el archivo install/index.php para que no aparezca una advertencia.

Instalación

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 versiones, es decir, de la 2.x.x a la 3.x.x, tendrás que actualizar la base de datos con este comando que debe ejecutarse desde el directorio /srv/xibo-cms.

vendor/bin/phinx migrate -c phinx.php

Vuelve a poner en marcha los servicios.

sudo systemctl start apache2 xibo-xmr

Después de haber iniciado la sesión, es posible que no veas ningún diseño. Pulsa Shift+F5 para borrar la caché de tu navegador y vuelve a cargar la página. En la parte inferior izquierda esta la opcion de “Acerca” para comprobar tu version

Comprueba que se ha actualizado

Ahora ya solo te falta instalar un player en tu ordenador, suponiendo que tengas un ordenador Windows, puedes descargarte el player (es gratuito) y puedes descargarlo aquí

Una vez descargado instala el Xibo Player como cualquier otra aplicación de windows, Acepta los terminos de la licencia en el instalador y cuando conluya la instalación deja marcado ejecutar el reproductor y pulsa “Finish”

Al ejecutarse el Player aparece la ventana de configuración

Le damos al boton de conectar y despues de unos segundos nos aparece la información de que hemos podido conectar al servidor

Después vamos al panel de control del CMS y en el apartado Pantallas tenemos el nuevo reproductor que hemos dado de alta

Este es el comienzo de tu red de pantallas, ya sabes cómo instalar Xibo en Ubuntu, ya tienes tu sistema de cartelería digital instalado, ahora te dejo jugar con el sistema, puedes encontrar documentación de Xibo en su pagina web y en los foros de la comunidad de código abierto.

¡Que tengas un Ingenioso día!

¡que tengas un ingenioso día!

Contrata tu plan Ingenios@ de Sistemas por 5€ al mes y responderé a todas tus preguntas sobre tecnología en el menor tiempo posible. Pasa a formar parte de la comunidad Ingenios@s de Sistemas y disfruta de contenido exclusivo y aprende sobre sistemas Open Source, Blockchain, SmarContract, Web3, Inteligencia Artificial y Reaidad Virtual, súbete al tren de la Revolución 4.0

Si quieres estar al día y no perderte nada Suscribete al Podcast Ingenios@s de Sistemas, un episodio diario que te mantendrá informado y formado en esta vertiginosa carrera.

Deja un comentario

Share to...