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
t-1
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
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.