Xibo est une solution d'affichage numérique open source (panneaux d'affichage public) qui comprend un système de gestion de contenu (CMS) basé sur le Web. La meilleure façon de capter l'attention des gens pour vos annonces très importantes peut être faite avec des panneaux numériques utilisant Xibo. Cela nous permet de transformer les PC et les téléviseurs en un moyen distinctif de faire passer le mot, 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 capable de diffuser automatiquement des images, des vidéos et même des présentations PowerPoint vers des kiosques, ce qui vous permet de tenir l'ensemble de votre organisation au courant de vos dernières actualités sans avoir recours à des e-mails en masse ou avoir à éditer 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 sur Ubuntu 20.04 .
Prérequis
- Une instance Ubuntu 20.04
- Un utilisateur avec le privilège sudo
Étape 1 :Installer Docker
Tout d'abord, nous allons installer docker-engine et docker-compose.
Installez les packages prérequis :
$ sudo apt install apt-transport-https ca-certificates curl software-properties-common
Nous devons maintenant 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 récente de Docker Compose, nous téléchargerons ce logiciel à partir de son référentiel Github officiel.
Tout d'abord, confirmez la dernière version disponible sur leur page de 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 dans /usr/local/bin/docker-compose
, ce qui rendra ce logiciel globalement accessible 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 correctes afin 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 les privilèges sudo :
$ sudo usermod -aG docker username
Étape 2 :Téléchargez et extrayez le fichier Xibo Docker
Commençons par créer le dossier de notre CMS Xibo
$ sudo mkdir /opt/xibo
Donnez les permissions à l'utilisateur
$ sudo chown -R username:username /opt/xibo
$ cd /opt/xibo
Vous pouvez télécharger la dernière version de Download 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-composer
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, 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 allons faire une copie de ce fichier, en le renommant config.env
$ cp config.env.template config.env
Nous allons maintenant 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 fonctionnant sur le port 80, mais nous ne modifierons 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 modifier le fichier docker-compose pour modifier uniquement le port du cms-web
services
$ 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 allons copier 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'adresse 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 http://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
Démarrez maintenant 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 lancer notre fichier docker-compose
$ cd /opt/xibo
Nous allons exécuter 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 http://xibo.domain.com
Les identifiants de connexion Xibo par défaut sont :
username: admin
password: password
Vous pouvez modifier le mot de passe en accédant aux paramètres du profil.
Si vous voulez arrêter Xibo, déplacez-vous simplement dans le 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.