
Xibo es una solución de señalización digital de código abierto (señales de exhibición pública) que se compone de un sistema de administración de contenido (CMS) basado en la web. La mejor manera de captar la atención de las personas para sus anuncios muy importantes se puede hacer con letreros digitales usando Xibo. Nos permite convertir las PC y los televisores en una forma distintiva de hacer correr la voz, transformándolos en mostradores de información que puede colocar en ubicaciones estratégicas para llamar la atención de las personas.
Con Xibo, puede configurar su propio servidor de señalización digital que puede enviar imágenes, videos e incluso presentaciones de PowerPoint a los quioscos automáticamente, lo que le permite mantener a toda su organización al día con las últimas noticias sin tener que recurrir a correos electrónicos masivos o tener que editar manualmente archivos o presentaciones de diapositivas en varias máquinas.
Xibo se puede ejecutar a través de Docker o en un servidor web con MySQL/PHP instalado. En este tutorial, aprendemos cómo instalar Xibo CMS con Docker en Ubuntu 20.04 .
Requisitos previos
- Una instancia de Ubuntu 20.04
- Un usuario con privilegios de sudo
Paso 1:Instalar Docker
Primero, instalaremos docker-engine y docker-compose.
Instalar paquetes de requisitos previos:
$ sudo apt install apt-transport-https ca-certificates curl software-properties-common
Ahora debemos agregar la clave GP del repositorio docker:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Ahora agreguemos Docker a las fuentes APT
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
Podemos instalar docker-engine ahora:
$ sudo apt install docker-ce
Para asegurarnos de obtener la versión estable más actualizada de Docker Compose, descargaremos este software de su repositorio oficial de Github.
Primero, confirme la última versión disponible en su página de lanzamientos. En el momento de escribir este artículo, la versión estable más actual es 2.0.1
.
El siguiente comando descargará el 2.0.1
libere y guarde el archivo ejecutable en /usr/local/bin/docker-compose
, lo que hará que este software sea accesible globalmente como docker-compose
:
$ sudo curl -L https://github.com/docker/compose/releases/download/v2.0.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
A continuación, establezca los permisos correctos para que docker-compose
el comando es ejecutable:
$ sudo chmod +x /usr/local/bin/docker-compose
Para verificar que la instalación fue exitosa, puede ejecutar:
$ docker-compose --version
Docker Compose version v2.0.1
Ahora necesitamos agregar el usuario no root al grupo docker para que el usuario pueda usar el comando docker sin los privilegios de sudo:
$ sudo usermod -aG docker username
Paso 2:Descargue y extraiga el archivo Docker de Xibo
Primero vamos a crear la carpeta de nuestro Xibo CMS
$ sudo mkdir /opt/xibo
Dar los permisos al usuario
$ sudo chown -R username:username /opt/xibo
$ cd /opt/xibo
Puede descargar la última versión de Descargar Xibo CMS:
$ wget -O xibo-docker.tar.gz https://xibo.org.uk/api/downloads/cms
Al momento de escribir este artículo, estoy usando la versión Xibo 3.0.3.
$ tar --strip-components=1 -zxvf xibo-docker.tar.gz
Ya tenemos todo para instalar nuestro Xibo
Paso 3:configurar Xibo Docker-compose
Nuestro contenedor Xibo se ejecutará a través de docker-compose. Entonces los archivos se extraen en /opt/xibo
$ ls -l /opt/xibo
total 84
-rw-rw-r-- 1 franck franck 1491 Sep 8 08:01 cms_custom-ports.yml.template
-rw-rw-r-- 1 franck franck 1159 Sep 8 08:01 cms_remote-mysql.yml
-rw-rw-r-- 1 franck franck 4024 Sep 8 08:01 config.env.template
-rw-rw-r-- 1 franck franck 2231 Sep 8 08:01 config.env.template-remote-mysql
-rw-rw-r-- 1 franck franck 1511 Nov 2 23:18 docker-compose.yml
-rw-rw-r-- 1 franck franck 34520 Sep 8 08:01 LICENSE
-rw-rw-r-- 1 franck franck 2088 Sep 8 08:01 README.md
drwxr-xr-x 5 root root 4096 Nov 2 17:25 shared
-rw-r--r-- 1 franck franck 15570 Sep 8 08:54 xibo-docker.tar.gz
Xibo usa un archivo de configuración para decirle a Docker cómo está configurado el entorno, como la configuración del correo electrónico, la contraseña de mysql, etc. Está presente un archivo de plantilla con la información necesaria y se llama config.env.template; haremos una copia de este archivo, renombrándolo a config.env
$ cp config.env.template config.env
Ahora editaremos parte de la información como se muestra a continuación
$ vim config.env
MYSQL_PASSWORD=YOUR_DB_PASSWORD
CMS_SERVER_NAME=YOUR_DOMAIN_NAME
Normalmente, Xibo posee una interfaz web predeterminada que se ejecuta en el puerto 80, pero solo cambiaremos esta información al puerto 8080, ya que usaremos Nginx para transmitir la comunicación en los puertos 80 y 443. Para hacerlo, debemos editar el archivo docker-compose. para editar solo el puerto del cms-web
servicio
$ vim docker-compose.yml
cms-web:
image: xibosignage/xibo-cms:release-3.0.3
volumes:
- "./shared/cms/custom:/var/www/cms/custom:Z"
- "./shared/backup:/var/www/backup:Z"
- "./shared/cms/web/theme/custom:/var/www/cms/web/theme/custom:Z"
- "./shared/cms/library:/var/www/cms/library:Z"
- "./shared/cms/web/userscripts:/var/www/cms/web/userscripts:Z"
- "./shared/cms/ca-certs:/var/www/cms/ca-certs:Z"
restart: always
links:
- cms-db:mysql
- cms-xmr:50001
environment:
- XMR_HOST=cms-xmr
- CMS_USE_MEMCACHED=true
- MEMCACHED_HOST=cms-memcached
env_file: config.env
ports:
- "8080:80"
Paso 4:Configure Xibo con SSL detrás de Nginx
Ahora, como usaremos nginx para transmitir la comunicación, primero necesitaremos instalarlo
$ sudo apt install nginx
En este artículo, suponemos que ya tienes tu certificado SSL. En nuestro caso, copiaremos el certificado y la clave del nombre de dominio
$ sudo cp xibo.domain.crt /etc/nginx/certs/xibo.domain.crt
$ sudo cp xibo.domain.key /etc/nginx/certs/xibo.domain.key
Ahora cree el archivo de configuración de Xibo. Asegúrese de reemplazar el valor de la IP del servidor, el nombre de dominio Xibo, los certificados Xibo y las claves con los buenos relacionados con sus configuraciones.
$ sudo vim /etc/nginx/sites-available/xibo_cms.conf
upstream xibo.domain.com {
server SERVER_IP:8080;
}
server {
server_name xibo.domain.com;
listen 80 ;
access_log /var/log/nginx/xibo.log;
return 301 https://$host$request_uri;
}
server {
server_name xibo.domain.com;
listen 443 ssl http2 ;
access_log /var/log/nginx/xibo.log;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;
ssl_session_timeout 5m;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
ssl_certificate /etc/nginx/certs/xibo.domain.crt;
ssl_certificate_key /etc/nginx/certs/xibo.domain.key;
add_header Strict-Transport-Security "max-age=31536000";
location / {
proxy_pass http://xibo.domain.com;
}
}
Ahora creó un símbolo del archivo de configuración
$ sudo ln -s /etc/nginx/sites-available/xibo_cms.conf /etc/nginx/sites-enabled/xibo_cms.conf
Como es nuestra primera configuración, elimine la configuración predeterminada en los sitios habilitados para no tener algunos conflictos
$ sudo rm /etc/nginx/sites-enabled/default
Ahora inicia el servicio nginx
$ sudo systemctl start nginx
Ahora habilite al inicio
$ sudo systemctl enable nginx
Comprueba tu configuración
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Ahora reinicie el servicio para tener en cuenta la configuración
$ sudo systemctl restart nginx
Ahora abra los puertos 80 y 443 en el firewall:
$ sudo ufw allow 80,443/tcp
Además, asegúrese de abrir ssh antes de habilitar UFW si aún no lo ha hecho
$ sudo ufw allow 'OpenSSH'
Ahora habilite UFW si aún no
$ sudo ufw enable
Paso 5:Instale el contenedor Xibo
Ahora que nuestro Nginx está configurado, podemos ejecutar nuestro archivo docker-compose
$ cd /opt/xibo
Ejecutaremos el archivo docker-compose en segundo plano. Puede tomar algo de tiempo la primera vez
$ docker-compose up -d
Ahora puede echar un vistazo a los contenedores en ejecución
$ docker container ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b5e8dda81529 xibosignage/xibo-cms:release-3.0.3 "/entrypoint.sh" About a minute ago Up About a minute 0.0.0.0:8080->80/tcp, :::8080->80/tcp xibo-cms-web-1
9f4591f0f91a mysql:5.7 "docker-entrypoint.s…" About a minute ago Up About a minute 3306/tcp, 33060/tcp xibo-cms-db-1
b706402036a0 xibosignage/xibo-xmr:release-0.8 "/entrypoint.sh" 2 minutes ago Up 2 minutes 0.0.0.0:9505->9505/tcp, :::9505->9505/tcp, 50001/tcp xibo-cms-xmr-1
75a971ab7435 memcached:alpine "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 11211/tcp xibo-cms-memcached-1
3d2e30e8f9cb ianw/quickchart "node --max-http-hea…" 2 minutes ago Up 2 minutes 3400/tcp xibo-cms-quickchar
t-1
Ahora puede intentar acceder a la página de Xibo con su nombre de dominio http://xibo.domain.com

Las credenciales de inicio de sesión predeterminadas de Xibo son:
username: admin
password: password

Puede cambiar la contraseña yendo a la configuración del perfil.
Si desea detener a Xibo, solo muévase a la carpeta y ejecute el comando
$ docker-compose down
Conclusión
En este tutorial, aprendimos cómo instalar Xibo CMS con Docker en Ubuntu 20.04. Si desea cargar imágenes de gran tamaño, puede hacerlo mediante la configuración del archivo 'Php.ini'. Para más configuraciones y personalización de Xibo CMS, puede considerar leer su documentación oficial para obtener más detalles. Gracias por leer y comuníquese con nosotros si tiene algún problema y deje sus valiosos comentarios.