Cómo instalar Xibo CMS en Ubuntu 20.04 | Ubuntu 20.10

Cómo instalar Xibo CMS en Ubuntu 20.04 | Ubuntu 20.10

 

Xibo es una solución de señalización digital (letreros de exhibición pública) de código abierto 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 la gente por sus anuncios muy importantes se puede hacer con carteles 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 actualizada sobre sus ú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 .

Prerrequisitos

  • Una instancia de Ubuntu 20.04
  • Un usuario con privilegio sudo

Paso 1: instalar Docker

Primero, instalaremos docker-engine y docker-compose.

Instale paquetes de requisitos previos:

$ sudo apt install apt-transport-https ca-certificates curl software-properties-common

Ahora deberíamos agregar la clave GP del repositorio de 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á la 2.0.1versión y guardará 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, configure los permisos correctos para que el docker-composecomando sea 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 de la ventana acoplable para que el usuario pueda usar el comando de la  ventana acoplable sin los privilegios de sudo :

$ sudo usermod -aG docker username

Paso 2: Descargue y extraiga el archivo Docker de Xibo

Primero creemos 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 descarga de 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 mysql, etc. Hay un archivo de plantilla con la información necesaria y se llama config.env.template; haremos una copia de este archivo, renombrándolo aconfig.env

$ cp config.env.template config.env

Ahora editaremos cierta 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 proxy la comunicación en los puertos 80 y 443. Para hacerlo, necesitamos editar el archivo docker-compose para editar solo el puerto del cms-webservicio

$ 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: configurar Xibo con SSL detrás de Nginx

Ahora que usaremos nginx para proxy 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 crea el archivo de configuración de Xibo. Asegúrese de reemplazar el valor de la IP del servidor, el nombre de dominio de Xibo, los certificados de Xibo y las claves por las buenas relacionadas 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 creado 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 inicie 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 lo ha hecho

$ sudo ufw enable

Paso 5: instala 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 llevar 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-quickchart-1

Ahora puede intentar acceder a la página de Xibo con su nombre de dominio http://xibo.domain.com

Cómo instalar Xibo CMS en Ubuntu 20.04

Las credenciales de inicio de sesión de Xibo predeterminadas son:

username: admin
password: password
Cómo instalar Xibo CMS en Ubuntu 20.04

Puede cambiar la contraseña yendo a la configuración del perfil.

Si desea detener Xibo, simplemente 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, contáctenos si tiene algún problema y deje sus valiosos comentarios.

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.