Comment installer Xibo CMS sur Ubuntu 20.04

Xibo est une solution open source d’affichage numérique (panneaux d’affichage publics) qui comprend un système de gestion de contenu (CMS) basé sur le Web. Le meilleur moyen de capter l’attention des gens pour vos annonces très importantes peut être fait avec des panneaux numériques utilisant Xibo. Il nous permet de transformer les PC et les téléviseurs en un moyen distinctif de faire passer le message, en les transformant en bureaux d’information que vous pouvez placer à des endroits stratégiques pour attirer l’attention des gens.

À l’aide de Xibo, vous pouvez configurer votre propre serveur d’affichage numérique qui peut envoyer automatiquement des images, des vidéos et même des présentations PowerPoint aux kiosques, vous permettant de tenir toute votre organisation au courant de vos dernières nouvelles sans avoir recours à des e-mails de masse ou à avoir à éditez manuellement des fichiers ou des diaporamas sur plusieurs machines.

Xibo peut être exécuté via Docker ou sur un serveur Web avec MySQL/PHP installé. Dans ce tutoriel, nous apprenons à installer Xibo CMS avec Docker au Ubuntu 20.04.

Conditions préalables

  • Une instance Ubuntu 20.04
  • Un utilisateur avec sudo privilège

Étape 1 : Installer Docker

Tout d’abord, nous allons installer docker-engine et docker-compose.

Installez les packages de pré-requis :

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

Maintenant, nous devons ajouter la clé GP du référentiel docker :

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Ajoutons maintenant Docker aux sources APT

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

Nous pouvons installer docker-engine maintenant :

$ sudo apt install docker-ce

Pour nous assurer d’obtenir la version stable la plus à jour de Docker Compose, nous allons télécharger ce logiciel à partir de son référentiel officiel Github.

Tout d’abord, vérifiez la dernière version disponible sur leur page des versions. Au moment d’écrire ces lignes, la version stable la plus récente est 2.0.1.

La commande suivante téléchargera le 2.0.1 relâchez et enregistrez le fichier exécutable sur /usr/local/bin/docker-compose, ce qui rendra ce logiciel accessible dans le monde entier en tant que 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

Ensuite, définissez les autorisations appropriées pour que le docker-compose la commande est exécutable :

$ sudo chmod +x /usr/local/bin/docker-compose

Pour vérifier que l’installation a réussi, vous pouvez exécuter :

$ docker-compose --version

Docker Compose version v2.0.1

Nous devons maintenant ajouter l’utilisateur non root au groupe docker afin que l’utilisateur puisse utiliser la commande docker sans le sudo privilèges :

$ sudo usermod -aG docker username

Étape 2 : Téléchargez et extrayez le fichier Xibo Docker

Créons d’abord le dossier de notre CMS Xibo

$ sudo mkdir /opt/xibo

Donner les autorisations à l’utilisateur

$ sudo chown -R username:username /opt/xibo

$ cd /opt/xibo

Vous pouvez télécharger la dernière Télécharger Xibo CMS:

$ wget -O xibo-docker.tar.gz https://xibo.org.uk/api/downloads/cms

Au moment d’écrire cet article, j’utilise la version Xibo 3.0.3.

$ tar --strip-components=1 -zxvf xibo-docker.tar.gz

Nous avons maintenant tout pour installer notre Xibo

Étape 3 : Configurer Xibo Docker-compose

Notre conteneur Xibo passera par docker-compose. Les fichiers sont donc extraits dans /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 utilise un fichier de configuration pour indiquer à docker comment l’environnement est configuré, comme la configuration de la messagerie électronique, le mot de passe mysql, etc. Un fichier modèle contenant les informations nécessaires est présent et s’appelle config.env.template ; nous ferons une copie de ce fichier, en le renommant en config.env

$ cp config.env.template config.env

Maintenant, nous allons modifier certaines informations comme ci-dessous

$ vim config.env

MYSQL_PASSWORD=YOUR_DB_PASSWORD
CMS_SERVER_NAME=YOUR_DOMAIN_NAME

Normalement, Xibo possède une interface Web par défaut s’exécutant sur le port 80, mais nous ne changerons ces informations que sur le port 8080 car nous utiliserons Nginx pour proxy la communication sur les ports 80 et 443. Pour ce faire, nous devons éditer le fichier docker-compose pour éditer uniquement le port du cms-web un service

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

Étape 4 : Configurer Xibo avec SSL derrière Nginx

Maintenant que nous allons utiliser nginx pour proxy la communication, nous devrons d’abord l’installer

$ sudo apt install nginx

Dans cet article, nous supposons que vous possédez déjà votre certificat SSL. Dans notre cas, nous copierons le certificat et la clé du nom de domaine

$ sudo cp xibo.domain.crt /etc/nginx/certs/xibo.domain.crt

$ sudo cp xibo.domain.key /etc/nginx/certs/xibo.domain.key

Créez maintenant le fichier de configuration de Xibo. Assurez-vous de remplacer la valeur de l’IP du serveur, le nom de domaine Xibo, les certificats Xibo et les clés par les bons liés à vos configurations.

$ 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 https://xibo.domain.com;
}
}

Maintenant créé une symbolique du fichier de configuration

$ sudo ln -s /etc/nginx/sites-available/xibo_cms.conf /etc/nginx/sites-enabled/xibo_cms.conf

Comme il s’agit de notre première configuration, supprimez la configuration par défaut sur les sites activés pour ne pas avoir de conflits

$ sudo rm /etc/nginx/sites-enabled/default

Maintenant, démarrez le service nginx

$ sudo systemctl start nginx

Activer maintenant au démarrage

$ sudo systemctl enable nginx

Vérifiez votre configuration

$ sudo nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Redémarrez maintenant le service pour prendre en compte la configuration

$ sudo systemctl restart nginx

Ouvrez maintenant les ports 80 et 443 sur le pare-feu :

$ sudo ufw allow 80,443/tcp

Assurez-vous également d’ouvrir ssh avant d’activer UFW si ce n’est pas encore fait

$ sudo ufw allow 'OpenSSH'

Activez maintenant UFW si ce n’est pas encore fait

$ sudo ufw enable

Étape 5 : Installer le conteneur Xibo

Maintenant que notre Nginx est configuré, nous pouvons exécuter notre fichier docker-compose

$ cd /opt/xibo

Nous exécuterons le fichier docker-compose en arrière-plan. Cela peut prendre un certain temps la première fois

$ docker-compose up -d

Vous pouvez maintenant jeter un œil aux conteneurs en cours d’exécution

$ 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

Vous pouvez maintenant essayer d’accéder à la page Xibo par votre nom de domaine https://xibo.domain.com

Les identifiants de connexion Xibo par défaut sont :

username: admin
password: password

Vous pouvez changer le mot de passe en allant dans les paramètres du profil.

Si vous souhaitez arrêter Xibo, accédez simplement au dossier et exécutez la commande

$ docker-compose down

Conclusion

Dans ce tutoriel, nous avons appris à installer Xibo CMS avec Docker sur Ubuntu 20.04. Si vous souhaitez télécharger des images de grande taille, vous pouvez le faire en configurant le fichier ‘Php.ini’. Pour plus de paramètres et de personnalisation de Xibo CMS, vous pouvez envisager de lire sa documentation officielle pour plus de détails. Merci d’avoir lu, et revenez vers nous si vous rencontrez des problèmes et laissez vos précieux commentaires.