Archives de catégorie : Vie de mes sites

Installer un agenda kolab sur le webmail roundcubemail

Ma tendre et chère souhaitait pouvoir disposer d’un agenda qu’elle retrouverait sur le PC et sur son mobile pour se débarrasser de son agenda papier de moins en moins pratique. Comme je ne choisis pas la facilité et dans l’esprit que mes données ne se retrouvent pas quelque part aux US ou en Chine à la merci de hackeurs ou de revendeurs de données, j’ai choisi d’intégrer un plugin d’agenda au webmail Rouncube.

Pour mémoire je me repose sur mon serveur personnel Dell PowerEdge T310 qui tourne dans mon garage et qui fait office de cloud perso et sur lequel tourne Roundcube qui me permet d’accéder à mes mails de mon mobile comme expliqué par ici. J’ai choisi d’installer le plugin kolab, le détail de l’installation est donné par . Voilà ce que ça donne sur l’ordinateur

et sur le mobile

le tout est évidemment complètement synchronisé.

Continuer la lecture de Installer un agenda kolab sur le webmail roundcubemail

Mise à jour de FUNIX.org

J’ai opéré une mise à jour récente de funix.org pour prendre en compte quelques évolutions. Dans le détail il s’agit de :

pages divers
– page trucs et astuces, mise à jour des astuces liées aux logiciel libres qui sont issues de ce blog
– page piloter une montre GPS garmin, rajout du pilotage d’une garmin forerunner 735XT sous linux et rajout d’un paragraphe sur les applications de visualisation GPS en ligne comme GPS Visualizer pour n’en citer qu’un.
 
pages multimédia
– page outils de base pour la vidéo, passage à flac 1.3.3, faad 2.9.2, gpac 1.0.0, x265 3.4, OpenCV 4.4.0, et ffmpeg 4.3.1
– page mediacenter, passage à kodi 18.8 Leia qui est essentiellement une version avec des corrections de bogues et qui ne comprend pas de nouvelles fonctionnalités
– page outils audio divers passage au lecteur audio Audacious 4.0.5 dont l’évolution majeure est le passage à Qt5 sinon les évolutions sont assez peu sensibles, passage la version 1.4.0rc2 pour l’autre lecteur vidéo Clementine qui tourne maintenant sous Qt5 la version stable n’est plus très proche, passage au lecteur vidéo lollypop 1.3.6 et Music Brainz Picard 2.4.4 qui permet de taguer automatiquement les fichiers audio.
– page lecteurs vidéo, passage au lecteur vidéo vlc 3.0.11 qui apporte juste des correctifs

Audacious 4.0.5



pages montage vidéo
– page outils de montage vidéo, passage à mlt 6.22.1, kdenlive 20.08.1, Flowblade 2.6, Shotcut 20.07.11, SynfigStudio 1.3.16 et blender 2.90
– page tutoriel kdenlive, passage à la version 20.08.1 et rajout de fonctionnalités issues de cette nouvelle version, notamment les préconfigurations d’affichage en fonction des phases de travail (rushes, effets, colorimétrie, etc.).

kdenlive 20.08.1

pages gestion des mails
– page filtrer les mails, rajout de quelques subtilités dans la configuration de SpamAssassin pour gérer les whitelist et blacklist, et passage à l’antivirus Clamav 0.103.0. Malgré cela je continue à rencontrer encore des soucis avec les whitelist et les blacklist qui sont mal prises en compte.

Dans la page de téléchargement
Mise à jour du tutoriel kdenlive pour prendre en compte la nouvelle version

Montage vidéo

Pas mal de nouveautés sur le front des logiciels de montage vidéo sous linux, jusqu’à présent j’utilisais Kdenlive mais ces derniers temps j’ai pu faire mes derniers montages avec OpenShot Video Editor qui est maintenant enfin pleinement opérationnel. Dans cet élan, j’ai testé Flowblade Movie Editor et Pitivi Video Editor qui sont deux autres logiciels de montage vidéo, le premier est grossièrement équivalent à Kdenlive alors que le dernier se destine plutôt aux débutants.

Flowblade Movie Editor

Devant cette pléthore de logiciel j’ai rédigé un comparatif de Kdenlive, Flowblade, OpenShot et Pitivi sur la base de plusieurs critères les plus objectifs possibles et après avoir passé quelques heures pour réaliser des vrais montages et pas seulement pour survoler les fonctions des uns et des autres. On pourrait résumer ce test avec ce tableau synthétique :

Continuer la lecture de Montage vidéo

Mise à jour de mes pages LAMP

J’ai profité de cette période de confinement pour profondément toiletter mes pages LAMP, en d’autres termes c’est l’ensemble Linux+Apache+MySQL+PHP qui sert à faire tourner les pages web. Avoir un serveur web perso présente plusieurs intérêts, ça permet déjà de pouvoir tester ses pages web avant de les envoyer sur internet sur un autre serveur web hébergé sur internet, cela permet également de monter un serveur web qui pourra être accessible d’internet pour diverses applications. Une illustration de ces applications est donnée en fin de ce post.

Tout d’abord dans la page principale LAMP je présente l’installation d’Apache 2.4.41, de PHP 7.4.4 et, grande nouveauté, de MariaDB à la place de MySQL. Cela fait des années que je tournais avec un serveur MySQL, mais il est passé de mode après un changement de licence et de philosophie, remplacé par son fork MariaDB qui reste totalement libre. J’ai eu un peu de mal à l’installer à partir des sources, mais la migration de mes bases MySQL n’a pas posé de soucis, il faut dire que MariaDB assure une compatibilité avec MySQL. Cerise sur le gâteau, j’ai configuré une connexion chiffrée entre le client et le serveur MariaDB, même si la configuration de la connexion à partir de phpMyAdmin n’a pas été simple.

J’ai également mis à jour la page présentant l’installation d’un moteur de recherche, cela fait 15 ans que je ne l’avais pas mise à jour ! Jusqu’à présent je me basais sur Ht://Dig qui n’est plus maintenu depuis des lustres, je présente maintenant Hl://Dig qui n’est d’autre qu’un fork de Ht://Dig mais qui est toujours maintenu.

Pour terminer j’ai mis à jour la page qui présente les outils webalizer et awstats pour analyser les fichiers logs d’Apache, avec la nouvelle version de mon script qui me sert à récupérer les logs de mon serveur funix hébergé chez online.net et à les analyser et à les rendre accessible sur mon serveur web perso.

Et pour vous donner une illustration de ce qu’on peut faire avec un serveur web, voici une liste non exhaustive des applications de mon serveur web perso:

  • consultation des mails sur mon mobile à distance via le webmail Roundcube Mail, comme présenté ici,
  • synchronisation de mes contacts, de mon agenda et de mes fichiers via NextCloud, comme présenté ,
  • consultation à distance des images et vidéos d’une webcam configurée comme une caméra à détection de mouvement, comme présenté ici,
  • consultation de l’état de l’onduleur qui soutient électriquement mon serveur, présenté .

Lecteurs audio sous linux

Comme lecteur audio cela fait des années que j’utilise Clementine. Par rapport à ses nombreux concurrents, il présente le gros avantage de proposer des listes de lecture intelligentes et c’est bien pour ça que mon choix s’est porté vers lui. En effet, quand on dispose d’un catalogue de plusieurs milliers de titres, c’est souvent laborieux et chronophage de créer ses propres listes de lecture, autant laisser le système le faire à votre place. Clementine propose ainsi les modes de lecture intelligents suivants :

  • 50 pistes aléatoires ;
  • déjà joués ;
  • dernières écoutes ;
  • jamais joués ;
  • les plus joués ;
  • mix aléatoire dynamique ;
  • nouvelles pistes ;
  • pistes favorites ;
  • pistes les moins aimées ;
  • toutes les pistes.

Pour que ça soit efficace, il faut bien sûr utiliser régulièrement Clementine pour qu’il constitue une base de données des goûts musicaux.

Capture d’écran de Clementine en Qt5

Suivant le mode choisi, après un premier choix de liste réalisé par le système, on peut repeupler ou agrandir la liste de lecture comme bon nous semble. Sinon Clementine, comme d’autres, propose un mode parole des chansons, un mode d’information sur l’artiste et l’affichage des pochettes d’album.

Continuer la lecture de Lecteurs audio sous linux

Architecture avec serveur mail local

Dans un post précédent j’avais évoqué l’installation d’un serveur webmail basé sur Roundcube mail. L’intérêt de la manip est de pouvoir stocker ses mails sur son serveur perso et de pouvoir y accéder d’internet sur un mobile perso sous android (ou autres) où qu’on soit. Et donc d’être indépendant d’un GAFAM qui n’aura aucun scrupule à décortiquer les mails pour en tirer un quelconque profit. Dans ce post je vais aller plus loin en présentant l’architecture globale de réception et d’envoi de mail.

L’idée générale est que mon serveur récupère les mails sur des serveurs POP ou IMAP sur internet des utilisateurs du réseau local, puis les passe au travers de filtres anti spam et anti virus avant de les délivrer à un serveur de mail local. Ils peuvent être ensuite consultés via un client lourd du réseau local comme Thunberdird, ou d’un navigateur via le webmail du réseau local ou d’internet sur un mobile. Pour l’envoi de mail, les mails ne partent pas directement vers un serveur SMTP sur internet (généralement celui du FAI) mais passe d’abord par le serveur de mail local avec sa batterie anti spam et anti virus.

Commençons par un petit schéma qui vaut bien des discours.

Cette architecture s’appuie sur plusieurs outils:

  • fetchmail permet de récupérer les mails des utilisateurs du réseau local sur des serveurs POP ou IMAP accessibles sur internet
  • sendmail (MTA mail transport agent) serveur SMTP qui permet de gérer localement la réception des mails et d’appliquer certains filtres anti spam et anti virus pour cela on se basera sur SpamAssassin et ClamAV
  • procmail (MDA mail delivery agent) permet de délivrer les mails et les dispatcher suivant le destinataire, il peut également appliquer d’autres filtres
  • le serveur IMAP permet de rendre accessible aux lecteurs de mails (MUA Mail User Agent) du réseau local les mails qui sont arrivés, que vos clients soient sous windows ou sous linux.
  • le serveur webmail basé sur Roundcube mail permet de gérer les mails via un navigateur, y compris d’un téléphone mobile via internet. Pour cela il faudra rendre son serveur apache visible d’internet, tout l’intérêt de la manip est de rendre accessible d’internet que le serveur apache, il n’est pas nécessaire d’ouvrir les ports du serveur IMAP ou SMTP.

Pendant longtemps j’ai utilisé un serveur POP local, j’y accédais via thunderbird et pour que les mails soient accessibles sur tous les postes du réseau local, le répertoire .thunderbird dans lequel sont stockés les mails était partagé par partage NFS. Inconvénient de la méthode, les mails ne sont accessibles que du réseau local et d’un client lourd. Je suis passé au serveur IMAP pour pouvoir installer un webmail car il permet de pouvoir gérer une arborescence de dossiers de mails. C’est à dire sous thunderbird j’ai initialement classé mes mails dans des dossiers et sous dossiers, et seul IMAP permet de retrouver la même arborescence avec le webmail à partir d’un navigateur ou d’un mobile. Pour ce faire j’ai dû migrer le format de stockage de mes mails de mbox (en gros les mails d’un dossier sont dans un fichier unique) vers maildir (un mail est un fichier et un dossier est un répertoire).

C’est une architecture qui peut paraître particulièrement lourdingue et qui se base sur des outils qu’on peut considérer comme obsolète comme sendmail. Certes, certains disent que tant qu’on a pas chercher à  configurer sendmail, on n’est pas un vrai administrateur système… Disons que j’ai mis en place sendmail il y a maintenant plus de 20 ans sur mon réseau local à l’époque où il était encore largement répandu notamment dans le milieu professionnel et qu’il s’adaptait assez bien à la gestion des mails à l’époque des modems 56k et des adresses mails partagés entre plusieurs utilisateurs. Il existe maintenant bien plus facile à administrer comme postfix mais j’ai choisi d’être le dernier des mohicans et donc je persévère à utiliser sendmail.

Du coup j’ai toiletté mes pages sur le site FUNIX sur la gestion des mails, il s’agit notamment de :

kdenlive 19.12.0 et accélération matérielle

Depuis quelque temps kdenlive me déçoit de plus en plus, je le trouve de plus en plus lent et j’ai perdu les 3/4 des effets qui pouvaient exister par le passé (dont ceux apportés par frei0r). Il devient impossible de monter sans activer les clips intermédiaires, fonction qui permet de dégrader la vidéo lors du montage, mais qui préserve la qualité au rendu de la vidéo finale. Et encore ça reste très lent et laborieux dès qu’on rajoute des effets et transitions un tant soit peu compliqués. Et dire qu’avec les versions 0.9.X c’était parfaitement fluide de monter en HD et on disposait d’un stock considérable d’effets (même si dans la pratique j’en utilisais à peine 10%). Il semblerait que mes problèmes avec kdenlive remontent au passage du moniteur SDL à OpenGL et à la migration de Qt4 (kdenlive <=0.9x) vers Qt5 (kdenlive >=15.x). J’ai constaté un ralentissement général, voire des régressions fonctionnelles et la réapparition de plantage qui avait totalement disparu avec les dernières versions sous Qt4. Il se trouve qu’il existe l’extension movit qui permet de faire bosser un peu plus la GPU et quand je l’activais tout revenait dans l’ordre, je retrouvais la fluidité perdue, sauf que ça plantait toutes les 5min 🙁 .

Il faut croire que tout le monde ne souffre pas du même problème, j’ai pensé à un problème de compatibilité matérielle mais j’ai quand même un i7 avec 16Go de RAM, j’ai également soupçonné ma carte NVIDIA GTX 760 d’être la source de mes ennuis. J’ai même songé à changer de carte. Finalement j’ai exploré la voie de l’accélération matérielle, ça permet de décharger le CPU et la mémoire et de solliciter davantage le GPU et la mémoire de la carte graphique, notamment pour tous les calculs d’encodage et de décodage vidéo. Concrètement, comme à mon habitude en vieux dinosaure que je suis, j’ai récupéré les sources et tout recompilé. J’ai donc activé toutes les fonctions d’accélérations matérielles des différentes bibliothèques sur lesquelles se repose kdenlive. Pour une GPU NVIDIA il s’agit d’activer les bibliothèques et API suivantes :

  • VDPAU (Video Decode and Presentation API for Unix) bibliothèque développée par NVIDIA,
  • NVENC et NVDEC pour l’encodage et le décodage vidéo notamment des codecs H264 et HEVC, ils sont compris dans le package NVIDIA VIDEO CODEC SDK (ex CUVID) et utilisent CUDA (Compute Unified Device Architecture) qui pour simplifier est une boîte à outil de développement pour les GPU également développée par NVIDIA.
  • OpenCL (OpenComputing Language) qui permet de faire des programmes qui vont utiliser à la fois des CPU multi cœurs et la GPU.
  • OpenCV qui sert pour le traitement d’images en temps réel notamment pour faire du tracking d’éléments dans une vidéo.
Continuer la lecture de kdenlive 19.12.0 et accélération matérielle

créer son propre service de messagerie accessible n’importe où et sur n’importe quelle plateforme

Jusqu’à présent j’utilisais les services de messagerie de mon hébergeur, je récupérais mes mails sur son serveur POP et je renvoyais via son serveur SMTP. Localement j’ai mis en place un serveur POP et un serveur SMTP le tout basé sur dovecot et sur sendmail avec toute une batterie anti spam. Utilisant Thunderbird pour la messagerie, tous les mails ensuite se retrouvent dans le répertoire .thunderbird de la home directory de chaque utilisateur de mon réseau personnel. Cette home directory se trouve sur un serveur Dell Poweredge (physiquement qui tourne dans le garage) ce qui permet de pouvoir lancer Thunderbird sur tous les postes de mon réseau local et de profiter des mails. Un script sur le serveur permet de récupérer et d’envoyer toutes les heures les mails respectivement sur le serveur POP et SMTP.

L’inconvénient de tout ça est qu’en déplacement, j’avais accès certes au webmail de mon hébergeur mais pas aux mails présents sur mon réseau local. Qui plus est, je ne pouvais voir les mails qu’entre deux vacations de récupération de mail, c’était plutôt handicapant. Pendant les vacances, quand je n’étais pas là durant une longue durée je coupais le serveur et donc la récupération pour pouvoir voir les mails entrants sur le webmail, mais je n’avais pas accès à mes anciens mails. Bref pas terrible, et je me suis contenté de cette situation pendant trop longtemps avant que je me décide à faire quelque chose, sachant que j’avais d’emblée exclu l’idée d’héberger mes mails dans un cloud quelconque à la main d’un Google ou Microsoft qui n’ont aucun scrupule à consulter les mails personnels pour en tirer une source de profit.

La solution que j’ai mise en place est toujours basée sur le serveur POP et le serveur SMTP de mon hébergeur, sauf que j’ai remplacé le serveur POP par un serveur IMAP local. Le serveur IMAP présente l’avantage de stocker les mails sur le serveur et non pas dans les répertoires d’une home directory d’un utilisateur, permettant ainsi le partage des mails dans la limite de l’accessibilité du serveur IMAP. Et c’est là que les choses intéressantes commencent, sur mon serveur apache local j’ai installé le webmail Roundcube mail, je peux ainsi consulter mes mails localement. Les choses n’ont pas été aussi simples car il a fallu passer d’un format de stockage de mail de type MBOX à un format MAILDIR avec quelques subtilités de configuration pour pouvoir disposer de sous dossier dans l’arborescence des mails. Le détail est donné par ici. Au final on accède à cette élégante interface.

Ce n’est pas fini ! Il faut ensuite sécuriser proprement votre serveur web, ouvrir les routes sur la box et/ou le routeur et mettre les règles shorewall qui vont bien pour que le serveur apache soit visible sur internet, de faire appel à un service de DNS dynamique (comme dyndns ou no-ip) qui fera correspondre automatiquement votre adresse IP fournie par votre fournisseur d’accès à un nom d’hôte. Ensuite à partir d’un bête mobile Android et d’un navigateur quel que soit votre position, vous aurez accès à l’ensemble de vos mails en tout temps et toute circonstance.

J’en profite pour vous signaler que j’en ai profité pour passer mon serveur en apache/httpd 2.4.41, pour franchir le pas vers PHP 7.4.0 et évoluer vers MySQL 8.0.18, ça se passe par ici.

Passage à mageia 7

J’ai passé trois de mes PC en mageia 7, mon PC principal sous mageia cauldron et deux thinkpad, un X230 sous mageia 6.1 et un X200 sous mageia 5.1. Je renvoie vers l’annonce sur linuxfr qui vante les mérites de cette distribution. Si je devais rajouter une couche je dirais que le côté user friendly n’est pas le facteur le plus déterminant me concernant puisque je suis adepte de la ligne commande et je n’utilise jamais les outils de configuration graphiques. Ce que j’apprécie sur la mageia (et la mandrake/mandriva auparavant) c’est le niveau d’aboutissement de configuration des logiciels en particulier les outils serveurs comme apache, sendmail, openssh, l’automontage et j’en passe, ils sont opérationnels quasi immédiatement. J’ai eu à tester d’autres distributions (dont ubuntu en particulier) et ce n’était franchement pas ça, c’était mal compilé (comprendre il manquait plein de modules) voire il manquait des dépendances et il y a souvent aucun fichier de configuration prêt à l’emploi, le travail de finition était beaucoup plus conséquent.
Au final, mageia me fait gagner un temps fou pour configurer un système, d’autant que les mises à jour sont maintenant particulièrement abouties.

Pour en revenir à la mise à jour, j’ai tapé dans un shell les commandes suivante :

urpmi.removemedia -a
urpmi.addmedia --distrib --mirrorlist 'http://mirrors.mageia.org/api/mageia.7.$ARCH.list'
urpmi --replacefiles --auto-update --auto

Pour le premier, c’est gênant le noyau fourni me donne un beau écran noir avec ma NVIDIA, j’ai dû rester sur un noyau plus ancien de la cauldron, pas de soucis particulier ensuite.
Sur le X230, pas de soucis particulier, si ce n’est la petite modification de SDDM pour virer l’image de fond floue (mais quelle idée !), et remettre en place l’automontage qui a été bizarrement supprimé.
Sur le X200 ça était nettement plus compliqué, j’ai d’abord tenté une mise à jour depuis la 5.1 (soyons fou !), et comme je m’y attendais, ça n’a pas marché, l’installation a planté au milieu et je me suis retrouvé avec un système totalement instable, j’ai dû faire une réinstallation propre. J’aurais pu être pu tenter une mise à jour vers la 6.1, puis vers la 7, mais je ne suis pas sûr que j’aurais gagner plus de temps. Suite à la réinstallation, j’ai dû faire face curieusement à un tas de problèmes. Tout d’abord ce n’est pas SDDM qui est lancé au démarrage pour gérer l’écran de login mais lightdm, en plus je voyais la bannière de login furtivement puis un fond d’écran mageia et pas moyen de se loguer ! Retour en console pour réparer tout ça, virer lightdm, installer SDDM proprement à la place. Sinon KDE/Plasma est totalement cassé, mais c’est pas étonnant j’avais pas fait le ménage dans mon répertoire. Pour XFCE, il faut reconnaitre que ce n’est pas beau, au bout d’une vingtaine de minutes de configuration, on obtient enfin quelque chose de plus sympathique et utilisable. Je dois déplorer également que firefox ne veut pas de mon ancien profil et choisit de repartir d’une version vierge.

Screenshot de XFCE avec un fond xplanetFX et quelques conky

Sinon j’ai installé kdenlive 19.04.2 sur mon X230, j’ai dû adapter notamment la compilation d’OpenCV, la bibliothèque graphique spécialisée dans le traitement d’image temps réel, elle m’a donné du fil à retordre. J’ai rajouté notamment la prise en compte des GPU intel. Pour mon X200 j’ai installé le médiacenter kodi Leia 18.2, l’installation est bien plus simple que sous mageia 5.1. Du coup sur mon site funix j’ai mis à jour les pages correspondantes.

Passage à PHP7

La dernière version 5.2 WordPress, sur lequel tourne ce blog, impose maintenant une version de PHP au moins égale à 5.6.20 mais la version 7.X est fortement recommandée d’autant que les versions 5.X de PHP ne sont plus maintenues et supportées. On s’expose donc à des risques de vulnérabilités en restant avec une version 5.X. La migration devient donc quasi obligatoire, étant hébergé en mutualisé chez online il est assez facile de basculer en PHP7 comme on peut le voir ici. En revanche il est sans doute prudent de tester avant la compatibilité du site, pour wordpress il existe une extension qui s’appelle PHP Compatibility checker.

Cela donne quelque chose comme cela

Une fois que vous vous êtes rassuré, on peut basculer chez l’hébergeur en php 7.X, j’ai choisi de basculer en version 7.1. J’ai eu droit de mon côté à un beau message

Not Found

The requested URL /fast-cgi-nontexistent/index.php was not found on this server.

C’était sans compter la page citée plus haut qui indique qu’il faut mettre un

AddHandler ${php7} php

dans le .htaccess à la racine du site, et bien en fait ça ne marche pas ! J’ai un peu galéré pour trouver et pas mal tâtonné, voilà donc ce qui marche chez moi avec un hébergement mutualisé chez online.

RewriteEngine On
RewriteCond %{HTTP:HTTPS} !on
RewriteRule (.*) https://%{SERVER_NAME}/$1 [QSA,L,R=301]
<FilesMatch ^wp-config.php$>
 deny from all
</FilesMatch>
AddType application/x-httpd-php7-1 .php

Pour mémoire les premiers lignes Rewrite sont pour une connexion sécurisée HTTPS, la directive FilesMatch empêche d’accéder au fichier de configuration wp-config. C’est la dernière ligne qui permet de prendre en compte la version 7.1 de PHP.

Cependant j’ai mon extension de galeries photo NextCellent Gallery qui est un fork de la version 1.9.13 de NextGen Gallery qui n’a pas appréciée cette migration. C’est fonctionnel, mais esthétiquement moche avec la non prise en compte du fichier nggallery.css dans le thème Twenty Fourteen. Vu que le développement de NextCellent a l’air totalement stoppé depuis des années, je crains que je vais devoir passer à NextGen et ça risque de ne pas être immédiat et prendre du temps, je me garde sous le coude cette migration et je m’excuse du désagrément visuel. Je suis preneur également de toutes remarques et dysfonctionnements sur les sites du domaine hoarau.org que je n’aurai pas vu.