Blog - Simon Vieille https://www.deblan.io/ DevOp animé par la culture du libre et du hacking fr <![CDATA[Gitnet héberge vos pages statiques]]> https://www.deblan.io/post/624/gitnet-heberge-vos-pages-statiques Gitnet est la forge logicielle que je gère depuis quelques années et qui héberge la totalité de mes projets. Elle s'appuie sur l'excellentissime Gitea, un logiciel libre pour faire son propre Github/Gitlab sans dépenser des fortunes en ressources matérielles.

Gitea est un logiciel très complet mais une des fonctionnalités qui peut manquer à certain⋅e⋅s est la publication pages web statiques via la forge. Codeberg a développé Codeberg/pages-server, un projet écrit en GO qui permet de réaliser cette fonctionnalité. Il lance un serveur web et sert les fichiers qui sont récupérés via l'API. Après l'avoir forké pour le personnalisé, il est à présent déployé sur Gitnet Pages.

Pour commencer à publier, vous devez créer un dépot pages dans lequel vous déposerez y vos fichiers. Le contenu sera accessible via https://votre-login.gitnet.page/{fichier}.

Dans le cas où vous souhaitez intégrer des pages à un dépot existant, ajoutez une branche pages puis accédez à votre contenu via https://votre-login.gitnet.page/le-depot/{fichier} :

dev@project $ git switch --orphan pages
# Si vous avez des fichiers ignorés par git qui existent :
dev@project $ git rm --cached -r .

Et si vous désirez accéder à du contenu qui se trouve sur une autre branche, il faudra la spécifier de cette façon : https://votre-login.gitnet.page/le-depot/@la-branche/{fichier}.

Vous pouvez utiliser un générateur de site static mais il faudra ajouter un CI/CD. J'ai réalisé des tests avec Hugo + Woordpecker et ça marche bien ! On build la branche ou se trouve les sources, on copie le résultat dans la branche pages et on pousse le code sur Gitnet. Voici la configuration utilisée.

Si toutefois le service venait à être pas mal utilisé, alors j'intégrerai des fonctionnalités plus avancées comme le nom de domaine personnalité. Tel qu'il est déployé actuellement, ce n'est pas possible.

Gitnet Pages

]]>
624 Sun, 31 Jul 2022 21:50:00 +0200
<![CDATA[Gitea 1.17 intègre un registre de paquets]]> https://www.deblan.io/post/623/gitea-1-17-integre-un-registre-de-paquets Gitea est l'une des briques majeures de mon informatique puisque c'est le logiciel qui gère l'ensemble de mes projets de développement.

Dès la version 1.17, il sera possible d'utiliser Gitea comme registre de paquets. Ce registre est compatible avec les principaux gestionnaires de paquets du marché : composer, npm, pip, gem, conan, nuget, …

Cette nouvelle fonctionnalié est géniale car elle permet d'avoir un seul et unique outil qui fait office de registre, quelque soit le type de langage. Les paquets et le code source sont au même endroit donc on se disperse moins. Enfin, on contribue à décentraliser l'hébergement de paquets, ce qui peut radicalement réduire le coût énergétique et les ressources réseaux nécessaires pour tester/builder/installer/déployer un logiciel.
Dans mon cas d'usage, j'ai des projets avec une CI/CD qui repose sur docker et des images persos. Pendant un build, les images seront téléchargées depuis mon réseau local donc ça sera bien plus vite.

J'ai testé plusieurs types de paquets et ça fonctionne très bien ! La documentation est disponible ici.

Package sur Gitea

Bravo aux développeur⋅euses de Gitea qui font un boulot monstrueux 💚

]]>
623 Wed, 20 Jul 2022 12:50:00 +0200
<![CDATA[Un an d'utilisation de AdGuard comme DNS]]> https://www.deblan.io/post/621/utilisation-adguard-dns Au moment où j'ai commencé à utilisé Wireguard, je me suis aperçu que le principal usage que j'en ferais serait le DNS.

Sur l'ensemble de mes périphériques (ordinateurs, smartphones, serveurs), j'apporte une grande attention à la protection de ma vie privée. Mon informatique n'est pas parfaite mais j'essaye de faire de mon mieux en ajustant la sécurité des services, la protection des données et le confort des outils.
À ce titre, j'utilisais Blockada sur mon smartphone. Cette application permet (principalement) de modifier les DNS utilisés sur votre smartphone. Si on choisi un DNS qui opère du filtrage, alors on peut réduire l'affichage des publicités ou bloquer l'accès à des services malveillants. Mais je devais nécessairement passer par un DNS public que je ne peux pas configurer.

Lors de la configuration d'un accès via Wireguard, on peut spécifier un DNS à attribuer au périphérique. J'ai donc mis en place un DNS redondant dans mon réseau privé, accessible aussi via mon réseau VPN Wireguard. J'ai choisi d'utiliser l'application AdGuard et j'ai ajouté quelques listes pour réaliser du filtrage. Tout mon réseau privé et mes périphériques connectés au VPN bénéficient de ces DNS privés. Que je sois chez moi ou en itinérance, mes filtres DNS sont appliqués et mon traffic mobile passe systématiquement dans mon VPN.

En complément de ce DNS, j'utilise l'extension uBlock Origin et je dois dire que la combo est vraiment efficace. C'est extrèment rare de voir de la publicité et ma navigation est selon moi plus sécurisée. Si toutefois uBlock ne bloque pas une requête, alors le DNS prend le relais et fait le reste du ménage.

Sur les 30 dernières jours, le DNS principal a réalisé 1,3 millions de résolutions et en a bloqué près de 43 milles. En moyenne, 3 à 5% des requêtes DNS sont filtrées, ce qui représente environ 500 domaines qui délivrent majoritairement de la publicité et de la télémétrie.

Adguard

]]>
621 Mon, 13 Jun 2022 11:00:00 +0200
<![CDATA[Générer une page dans Murph]]> https://www.deblan.io/post/620/generer-page-murph Murph est un framework open-source pour construire des CMS. Il est développé à l'aide de Symfony et permet de gérer des sites web avec plusieurs noms de domaines et en plusieurs langues.

Cet article fait partie d'une série de tutoriaux pour présenter les fonctionnalités de Murph.

Contrairement à pas mal de CMS, une page permet de rassembler des contenus qui pourront être réutilisés plusieurs fois dans une arborescence, là où certains CMS lient définitivement une page à un élément du menu.

Par ailleurs, une page ne contient que des données qui pourront être présentées comme on le veut. Autrement dit, la manière de rendre une page est indépendante de la façon de rédiger les contenus.

On va créer une nouvelle page ExamplePage avec ces contenus :

  • un titre title qui sera un champ texte
  • un bloc de contenu content avec l'éditeur TinyMCE

On va ensuite enregistrer la page dans Murph et lui donner le nom Page d'exemple.

core:
    site:
        # ...
        pages:
            App\Entity\Page\ExamplePage:
                name: "Page d'exemple"
                templates:
                    - {name: "Default", file: "page/example/default.html.twig"} 

Quand une page est créée, un template par défaut l'est aussi. Une page peut avoir autant de templates qu'on souhaite.

Éditons le template par défaut pour afficher simplement nos contenus :

{% extends 'base.html.twig' %}

{% block page %}
    <h1>{{ _page.title.value }}</h1>

    {{ _page.content.value|raw }}
{% endblock %}

On peut à présent créer un nouvel élément dans le menu, lui attribuer une nouvelle page et commencer à saisir le contenu.

La documentation complète est disponible sur doc.murph-project.org.

]]>
620 Mon, 16 May 2022 10:30:00 +0200
<![CDATA[Générer un CRUD dans Murph]]> https://www.deblan.io/post/619/generer-crud-murph Murph est un framework open-source pour construire des CMS. Il est développé à l'aide de Symfony et permet de gérer des sites web avec plusieurs noms de domaines et en plusieurs langues.

Je vais entamer une série de tutoriaux pour présenter les fonctionnalités de Murph.

Cet article va pour expliquer comment utiliser Murph et générer des interfaces de CRUD afin de créer, voir, mettre à jour et supprimer des entités.

Dans un premier temps, il faut créer une nouvelle entité Example. Si vous avez déjà réaliser cette opération, vous pouvez passer à l'étape suivante.

dev@project $ php bin/console make:entity Example

j'ai décidé d'ajouter ces attributs :

  • label de type string obligatoire
  • content de type text obligatoire

On doit maintenant éditer App\Entity\Example et implémenter l'interface App\Core\Entity\EntityInterface :

<?php

namespace App\Entity;

use App\Core\Entity\EntityInterface;
use App\Repository\ExampleRepository;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity(repositoryClass=ExampleRepository::class)
 */
class Example implements EntityInterface
{

Puis il faut mettre à jour la base de données :

dev@project $ make doctrine-migration

Ensuite on va générer :

  • le générateur de requête App\Repository\ExampleRepositoryQuery
  • la fabrique App\Factory\ExampleFactory
  • le formulaire d'édition App\Form\ExampleType
dev@project $ php bin/console make:repository-query ExampleRepository
dev@project $ php bin/console make:factory ExampleFactory Example
dev@project $ php bin/console make:form ExampleType Example

Générons à présent le CRUD :

dev@project $ php bin/console make:crud-controller \
  ExampleAdminController \
  Example \
  ExampleRepositoryQuery \
  ExampleFactory \
  ExampleType

Enfin, ajoutons le lien dans le menu du backoffice :

{{ include('@Core/admin/module/_menu_section.html.twig', {label: 'My section'}) }}

<ul class="nav flex-column">
    {{ include('@Core/admin/module/_menu_item.html.twig', {
        id: 'example',
        label: 'Examples',
        route: path('admin_example_index'),
        icon: 'fa fa-pen'
    }) }}
</ul>

…et c'est terminé !

Vous pouvez commencer à personnaliser le CRUD en modifiant ExampleAdminController et sa methode getConfiguration. La documentation est ici.

]]>
619 Tue, 10 May 2022 20:00:00 +0200
<![CDATA[Le Conseil d'État sauve la reconnaissance faciale du fichier TAJ]]> https://www.deblan.io/post/618/le-conseil-detat-sauve-la-reconnaissance-faciale-du-fichier-taj Mardi dernier, le Conseil d'État a rejeté nos arguments contre les opérations illégales de reconnaissance faciale réalisées par la police depuis 10 ans à partir du fichier TAJ.

Le décret du fichier TAJ (traitement des antécédents judiciaires) autorise la police à utiliser la reconnaissance faciale (RF) pour comparer les 9 millions de visages qu'il contient aux images captées par vidéosurveillance, smartphone ou sur internet.

]]>
618 Tue, 03 May 2022 14:00:00 +0200
<![CDATA[Les projets à Tinternet & Cie]]> https://www.deblan.io/post/617/les-projets-a-tinternet-cie L'énergie qui anime Tinternet & Cie est formidable et donne l'opportunité à l'équipe de faire beaucoup de projets !

Ce début d’année a été un véritable virage pour l’association. En effet, nous avons décidé de renforcer notre équipe d’intervenants et d’employer une coordinatrice et nous en sommes très fiers !

Cela a été notamment possible grâce à un projet monté conjointement avec le département. Plus de 150 interventions ont été planifiées ce premier semestre dans de nombreux collèges et lycées. Nous abordons quatre grandes thématiques avec les élèves : la cyberdépendance, le cyberharcèlement, la désinformation et l'identité numérique.

C’est un projet fort, portant sur des sujets compliqués et nous espérons accompagner à nouveau le département dès la rentrée prochaine, mais aussi créer et travailler sur de nouveaux projets et partenariats toujours plus utiles et efficaces.

En plus de cela, l'association a mis en place et continue d'animer une permanence numérique les 2ème et 4ème mercredis de chaque mois au bar Le Pixel à Besançon. C'est un moment privilégié pour échanger sur un Internet plus ouvert, éthique et respectueux de la vie privée. Un véritable laboratoire, où la pratique de l’éducation populaire est plus que jamais de mise. À ces occasions, un travail de fond est mené et permet d’ores et déjà de répondre à bon nombre de questions au sujet des outils qui, selon nous, peuvent répondre aux besoins communs des Internautes, quels qu’ils soient.

Enfin, vous le savez, le mois dernier, nous vous avions invité à suivre une conférence très particulière au sujet du Web 2.0. L'évènement était organisé à l'occasion du festival « D'Autres formes » réalisé par La Rodia. La conférence a rencontré un réel succès. Nous avons eu l'occasion de travailler avec des gens formidables et répondre à de vrai challenges techniques. La conférence mêlait des séquences vidéos enregistrées et du live sur fond vert dans le but de faire naitre une interaction insoupçonnée avec le public. Si vous avez loupé l'évènement, voici une courte vidéo avec les moments forts.

Bon visionnage !

Tinternet & Cie au festival « D'Autres Formes »

]]>
617 Fri, 22 Apr 2022 12:30:00 +0200
<![CDATA[Murph v1.13 intègre l'éditeur GrapesJS]]> https://www.deblan.io/post/616/murph-v1-13-integre-lediteur-grapesjs L'une des forces de Wordpress est sa ribambelle de plugins dont Elementor qui permet de créer des pages sans toucher au code.

Pour permettre d'éditer du contenu de la même façon, GrapesJS est maintenant nativement intégré dans Murph depuis la version v1.13. Les blocs permettent de créer n'importe quel contenu en s'appuyant sur les composants Bootstrap 4. La version de développement de Murph intègre d'ores et déjà d'autres outils comme les presets webpage et newsletter pour se passer de Bootstrap.

Si vous voulez essayer, un site de démo a été mis en ligne 😏

GrapesJS dans Murph

Pour mettre à jour Murph, rien de plus simple :

$ composer update
$ yarn upgrade
$ make build
]]>
616 Mon, 18 Apr 2022 23:00:00 +0200
<![CDATA[Tinternet & Cie au festival « d'autres FORMES », le 3 mars à 14h]]> https://www.deblan.io/post/615/tinternet-cie-au-festival-dautres-formes-organise-par-la-rodia L’association Tinternet & Cie participe au festival d'autres FORMES organisé par La Rodia avec une performance très particulière au sujet d'Internet.

Cette performance est ouverte au public et se tiendra le dimanche 3 avril à 14h.

Pour réserver, rien de plus simple puisqu'il faut juste envoyer un mail à info@larodia.com.

On compte sur vous pour venir nombreuses et nombreux !

{{fattr://806e29ca355a8ccaea39a97eaa5b16a8a3515d8405d66b7ec11c05a9133bce87ccef00c7ee1272eabe04e8aa43145055/title}}

]]>
615 Tue, 29 Mar 2022 15:30:00 +0200
<![CDATA[Nouveautés dans Murph v1.12]]> https://www.deblan.io/post/614/nouveautes-dans-murph-v1-12 Murph est un framework open-source pour construire des CMS. Il est développé à l'aide de Symfony et permet de gérer des sites web avec plusieurs noms de domaines et en plusieurs langues.

Voici un aperçu des changements depuis la version 1.7 pour laquelle j'avais réalisé un article.

Dépendances

Dans un premier temps et c'est sans doute le changement le plus important, le core du projet a été migré vers un dépôt dédié. Par conséquent, le moteur de Murph peut être installée comme une dépendance classique via composer.

Ainsi, le fichier composer.json du projet murph/murph-skeleton a été réduit au strict nécessaire et permet de mettre à jour facilement Murph.

Dans cette même démarche à faciliter le développement et surtout la mise à jour des dépendances javascript, toutes les dépendances du fichiers package.json ont été migré vers un package node dédié.

À la suite de ces changements, mettre à jour une instance de Murph est très simple :

    composer update
yarn upgrade
make build

Nouvelles fonctionnalités et correctifs

Globalement, pas mal de petites corrections ont été apportées. Voici les fonctionnalités implémentées depuis la v1.7.

Le gestionnaire de fichiers permet à présent de renommer un fichier. Seule l'extension du fichier ne peut pas être modifiée pour des questions de sécurité.
Son affichage est également mieux géré dans le cas où plusieurs modales sont affichées (ajout d'un flou sur les modales du dessus).

Il est possible d'indiquer des rôles dans la configuration de Murph afin de définir des permissions sur des éléments d'un menu. Ainsi, une page pourra être restreinte à des utilisateur⋅trices spécifiques.

Afin de réaliser des liens dans un template Twig vers des éléments de la navigation, quatre nouvelles fonctions twig ont été ajoutées : code_url, code_path. Pour gérer les cas d'exceptions, vous pouvez également utiliser : safe_code_url et safe_code_path.
Ces fonctions prennent en paramètres le code du menu et le code du nœud. Le moteur va détecter la navigation courante pour générer le lien. Cette fonctionnalité est très pratique quand plusieurs navigations partagent une arborescence commune et qu'on souhaite faciliter le développement des templates. 

Un nouveau maker symfony a été créé pour générer facilement une nouvelle page. Au même titre que pour générer une entité en ligne de commande, vous pourrez créer et paramétrer une page avec php bin/console make:page.

L'éditeur EditorJS a été ajouté dans Murph et ajoute approche complémentaire à TinyMce pour rédiger du contenu. Comme cet éditeur s'appuie sur l'idée de blocs, un nouvelle fonction twig permet de rendre un contenu édité avec EditorJS : editorjs_to_html. Cette fonction peut prendre un tableau de blocs autorisés à être rendus. Par ailleurs, bien que des vues par défaut existent pour rendre chaque bloc, vous pourrez paramétrer des vues spécifiques pour vos blocs. Cet article est d'ailleurs rédigé avec EditorJS.

La gestion du menu de l'administration de Murph a été simplifiée par l'utilisation de vues pour créer des sections et des éléments de menu.

Enfin, la version de Murph a été ajoutée dans l'interface d'administration en haut à droite.

Installation de Murph

Pour installer et Murph et commencer à développer son CMS, le processus est ultra simple :

    composer create-project murph/murph-skeleton MonProjet # Installation du projet
cd MonProjet
cp .env .env.local
vim .env.local 
make build # On génère les données du CMF (base de données, assets, etc.)
php bin/console murph:user:create # Création d'un compte
symfony server:start -d # On lance le serveur web de dev

J'espère que ça vous plaira ☺️

]]>
614 Sat, 26 Mar 2022 17:50:00 +0100
<![CDATA[Nouveautés dans Murph v1.7]]> https://www.deblan.io/post/612/nouveautes-dans-murph-v1-7 Murph est un framework open-source pour construire des CMS. Il est développé à l'aide de Symfony et permet de gérer des sites web avec plusieurs noms de domaines et en plusieurs langues.

Depuis la version v1.0 publiée fin janvier 2022, pas mal de mises à jour sont arrivées. Certains sont visibles dans l'interface d'administration, d'autres sont ancrées dans le moteur du CMS. En voici quelques-unes :

  • Un outils d'analyse web a été ajouté et permet, sur demande, d'activer un outil pour compter les pages vues, les référants et le type de périphérique (mobile ou desktop)
  • Le gestionnaire de fichiers permet d'uploader un répertoire complet. On peut choisir chosir la manière d'afficher les fichiers selon leur nom ou la date de mise à jour
  • Un gestionnaire de redirection a été ajouté et permet de créer des règles fines
  • Le template par défaut a été réécrit et contient le nécessaire pour lancer un nouveau développement
  • node-sass est remplacé par sass et il est nécessaire d'avoir une version de NodeJS >= 16
  • Les assets de Murph ont été déplacés dans le core ce qui permet de faciliter la mise à jour du CMS

Conjoitement à tout ça, des dépendances ont été mises à jour ou remplacées et des bugs ont été corrigés !

Murph

]]>
612 Thu, 03 Mar 2022 14:30:00 +0100
<![CDATA[Tinternet & Cie au sujet du contrôle parental sur France Culture]]> https://www.deblan.io/post/611/france-culture-tinternet-cie-controle-parental

Journal de 8h de France Culture, 22/02/2022

Je suis intervenu au nom de l'association Tinternet & Cie au du projet de loi pour imposer aux fabriquant de matériels connectés l'installation d'un contrôle parental.

Si le contrôle parental est un outil plébiscité par l'association, les parents doivent être conscients des usages et doivent les comprendre pour mieux agir.

]]>
611 Tue, 22 Feb 2022 09:00:00 +0100
<![CDATA[Administrer son serveur Matrix]]> https://www.deblan.io/post/610/administrer-serveur-matrix Au moment où j'écris cet article, j'administre 2 serveurs Matrix Synpase. Pour rappel, Matrix est un protocole de messagertie instantannée très interopérable. Le projet Matrix Synpase est un serveur écrit en python qui implémente ce protocole. Matrix Synpase fournit une API qui va communiquer avec nos clients de messageries favoris comme Element.

Afin d'administrer ces serveurs, j'avais besoin d'une interface web qui peut me permettre de réguler les accès. Synapse-Admin a complétement répondu à mon besoin. Cette interface n'est composées que de fichiers statics et se greffe sur les API des serveurs.

Avant d'installer Synapse-Admin, il faut s'assurer d'être administreur sur le serveur Matrix. Si vous travaillez avec SQLite, il suffira de faire comme suit mais la requête SQL sera la même si vous utilisez PostgreSQL.

# su - matrix-synapse -s /bin/bash
$ sqlite3 /var/lib/matrix-synapse/homeserver.db
sqlite> UPDATE users SET admin = 1 WHERE name = '@identifiant:example.com';
sqlite> .exit

Ensuite, vous avez juste à récupérer l'archive de Synapse-Admin depuis Github et de la rendre accessible derrière un serveur HTTP local ou en ligne.

Synapse-Admin UI

Une fois identifié⋅e, vous pourrez administrer l'ensemble des comptes du serveurs, avoir une visibilité sur les salons créés et les médias. Bien sur, il n'est pas possible d'accéder aux données qui restent totalement chiffrées même pour l'administrateur.

Synapse-Admin UI

]]>
610 Mon, 07 Feb 2022 12:30:00 +0100
<![CDATA[Installer un proxy SMTP transparent]]> https://www.deblan.io/post/609/installer-un-proxy-smtp-transparent Il y a quelques temps. j'expliquais que des applications métiers qui envoient du mail n'arrivaient plus à ouvrir de connexion vers les serveurs SMTP de Microsoft : Microsoft 365 - Problème de connexion aux serveurs SMTP.
La solution de contournement avait été de placer en liste verte la plage IP des serveurs qui hébergent ces applications.

Deux mois et demi sont passés et ça ne fonctionne plus. Évidemment, toujours pas d'explication du pourquoi du comment. Je travaille avec Microsoft depuis 5 ans et je ne m'y suis toujours pas habitué 🤬

Après quelques heures de tests et de bidouilles, j'ai décidé d'installer un proxy qui fera l'intermédiaire entre les applications bloquées et Microsoft. Pour ne pas avoir à gérer d'avantages d'accès, ce proxy sera totalement transparent.

Il n'existe (à priori) pas beaucoup de logiciels qui font ça et s'ils le font, ils ne sont plus maintenus. On retrouve beaucoup d'articles sur Nginx et Haproxy mais ils ne conviennent pas. Nginx n'est pas un proxy SMTP transparent et mes tests avec Haproxy ont échoués.
J'ai réussi à dénicher tuck1s/go-smtpproxy. Bien qu'il n'est pas reçu de mise à jour depuis 2 ans, il ne fait qu'utiliser une librairie qui elle a un développement actif : emersion/go-smtp.

Contexte / Prérequis :

  • Le serveur tourne avec Debian 11
  • Nom de domaine du proxy : relais-smtp.exemple.com
  • Il y a un certificat SSL généré par Let's Encrypt
  • Le serveur va écouter sur le port 587 avec la couche STARTTLS

Pour compiler le projet, il suffit d'installer Go, récupérer les sources et lancer le build. À l'issue du build, le binaire proxy sera généré dans le répertoire go/src/github.com/tuck1s/go-smtpproxy.

apt update
apt install golang
go get github.com/emersion/go-smtp-proxy
go get gopkg.in/natefinch/lumberjack.v2
go get github.com/tuck1s/go-smtpproxy
cd go/src/github.com/tuck1s/go-smtpproxy
./build.sh

Il ne reste plus qu'à lancer le proxy :

./proxy
  -certfile /etc/letsencrypt/live/relais-smtp.exemple.com/fullchain.pem \
  -privkeyfile /etc/letsencrypt/live/relais-smtp.exemple.com/privkey.pem \
  -in_hostport 0.0.0.0:587 \
  -insecure_skip_verify \
  -out_hostport smtp.office365.com:587 \
  -verbose

Coté application, le serveur SMTP change de smtp.office365.com à relais-smtp.exemple.com. Si on envoie un mail, le proxy va afficher du log et on pourra s'assurer que ça fonctionne. Il faut également améliorer tout ça avec un compte utilisateur dédié au proxy, gérer son démarrage avec un service Systemd/SysvInit/OpenRC/Whatever, etc.

On verra combien de temps ça dure 🧐

]]>
609 Thu, 03 Feb 2022 18:50:00 +0100
<![CDATA[Jouer à Motus dans Matrix]]> https://www.deblan.io/post/608/jouer-motus-matrix Je reconnais que ce titre peut générer un gros mind fuck mais laissez moi vous expliquer !

Depuis quelques temps, je joue quotidiennement à Sutom, une copie du jeu vieux jeu télévisé Motus. Le principe du jeu est simple : nous devons découvrir un mot avec comme indices sa taille et la première lettre qui le compose. On peut faire maximum 6 propositions qui permettent de découvrir les lettres. Une lettre découverte sera affichée dans un carré rouge, une lettre découverte mais mal placée sera dans un rond jaune. Les autres lettres resteront en bleu. Seuls des mots du dictionnaire peuvent être proposés.

Sutom est addictif...mais pas tant que ça car il n'y a qu'un seul mot à découvrir par jour !

Cela m'a donné un bon prétexte pour monter un nouveau projet : écrire un bot avec lequel je pourrai jouer via Matrix, ma messagerie instantanée. Le bot se connecte avec un compte utilisateur créé pour l'occasion puis accepte les invitations à rejoindre une conversation. Le bot va ensuite lire les messages qu'on envoit et va réagir quand c'est nécessaire. Ainsi on peut lancer ou relancer une partie et tester des mots. À chaque proposition, on retrouve un affichage comme dans Motus 🥸

Le code source du projet est dispo ici, c'est vraiment sans prétention !

Motus sur Matrix

]]>
608 Tue, 01 Feb 2022 17:45:00 +0100
<![CDATA[Murph, la version v1.0 est publiée]]> https://www.deblan.io/post/607/murph-la-version-v1-est-publiee Murph est un framework open-source pour construire des CMS. Il est développé à l'aide de Symfony et permet de gérer des sites web avec plusieurs noms de domaines et en plusieurs langues. Il possède un gestionnaire de navigations et de menus, il met à diposition un générateur de CRUD et intègre quelques outils indispensables comme un gestionnaire de fichiers, un gestionnaire de tâches, un panneau de configuration, la double authentification, etc.

La procédure d'installation est simple et rapide. Toutes les informations essentielles sont sur la documentation et les sources sont sur gitnet.

composer create-project murph/murph-skeleton MonProjet ^1 # Installation du projet
cp .env .env.local
vim .env.local 
make doctrine-migration # Configuration de la base de données
make asset # Création des assets
php bin/console murph:user:create # Création d'un compte
symfony server:start -d # On lance le serveur web de dev

À partir de là, Murph est opérationnel. L'interface d'administration est accessible sur https://127.0.0.1:8080.
Tout le reste du travail s'articule dans la conception de votre CMS via du code. Je vous invite à lire la documentation du projet.

L'idée générale de Murph se résume dans ces quelques points :

  • Une installation de Murph contient une ou plusieurs navigations représentées par des noms de domaines et des langues
  • Une navigation contient des menus dans lesquels on ajoute des nœuds
  • Un nœud peut représenter une URL et peut s'associer à une page ou un autre nœud
  • Une page contient des blocs de contenu
  • À coté de ça, on peut générer des CRUD pour éditer des données métiers (exemple : les articles d'un blog)

Beaucoup de travail a été mené et Murph peut couvrir beaucoup de cas d'usages rencontrés par les développeurs de sites web sur-mesure. J'ai par exemple réalisé mon blog, un site de recrutement, un outil pour s'inscrire à un évènement et un site qui présente les services d'un hôtel dont voici quelques images du backoffice :

Murph

]]>
607 Wed, 26 Jan 2022 08:25:00 +0100
<![CDATA[Les drones policiers autorisés par le Conseil constitutionnel]]> https://www.deblan.io/post/606/les-drones-policiers-autorises-par-le-conseil-constitutionnel Le Conseil constitutionnel vient de rendre sa décision sur la loi « responsabilité pénale et sécurité intérieure ». Ce texte, adopté le 18 novembre 2021 par le Parlement, prévoyait notamment de ré-autoriser les drones policiers. Si les drones avaient été interdits à quatre reprises depuis 2020 (deux fois par le Conseil d’État, une fois par la CNIL et une fois par le Conseil constitutionnel), l’entêtement du gouvernement a porté ses fruits. Après deux années d’illégalité, les drones vont ré-occuper le ciel et restaurer la surveillance de masse.

Cette mauvaise nouvelle ne vient pas seule : le Conseil constitutionnel valide aussi les caméras embarquées sur les véhicules de police (hélicoptères, voitures…) ainsi que la vidéosurveillance des cellules de garde-à-vue.

]]>
606 Fri, 21 Jan 2022 16:00:00 +0100
<![CDATA[Nouvelle version majeure de Custom Menu]]> https://www.deblan.io/post/605/nouvelle-version-majeure-de-custom-menu La version v2.3.2 de Custom Menu a été publiée il y a quelques jours. Cette version contient des mises à jours importantes qui rendent l'application à présent très complète.

Pour rappel, Custom Menu est une application qu'on installe dans Nextcloud. Elle permet de corriger un manque cruel de mise en page dans le menu de navigation de Nextcloud. L'application permet de paramétrer 4 modes d'affichage du menu avec, à ce jour, une 40ène de paramètres.

Parmis les dernières mises à jour, on retrouve la capacité de l'application à s'adapter aux couleurs de Nextcloud dès son installation. Mais le plus gros du travail s'est concentré autour la gestion des catégories. En effet, les applications sont organisées dans des catégories gérées par les développeurs Nextcloud. Custom Menu permet maintenant de créer de nouvelles catégories (dans toutes les langues utilisées dans votre Nextcloud) et de les affecter aux applications qui sont installées.

]]>
605 Fri, 14 Jan 2022 20:45:00 +0100
<![CDATA[Microsoft 365 - Problème de connexion aux serveurs SMTP]]> https://www.deblan.io/post/604/microsoft-365-probleme-connexion-smtp Quand Microsoft change de nom (Office 365 → Microsoft 365), les devops doivent aussi en profiter pour la changer configuration de leurs serveurs de mail…et rien de plus normal que de bloquer les connexions des applicatifs qui ne sont pas estampiller Microsoft.

Depuis plusieurs semaines, j'ai en effet détecté de grandes difficultés à émettre des mails depuis des applicatifs non Microsoft. Les connexions vers les serveurs SMTP d'Office 365 (smtp.office365.com) échouaient très souvent jusqu'à être complétement bloquées sur une 40ène de bureaux à distance où se trouve une application métier.

Pour contourner ce problème (intolérable selon moi), une des solutions est de placer en liste verte les IP depuis lesquelles on se connecte. C'est stupide mais rien de surprenant venant de Microsoft.

Pour réaliser cette opération, je me suis dirigé vers le Centre d'administration Exchange accessible depuis le portail d'administration.

Centre d'administration Exchange

J'ai complété cette configuration par l'édition de la Stratégie de filtre de connexion qu'on retrouve dans les Paramètres anti-courrier indésirable.

Stratégie de filtre de connexion

Après un moment, les envois de mail on pu reprendre et je n'ai pas encore eu de retour qui indiqueraient de nouvelles difficultés de connexion.

]]>
604 Wed, 10 Nov 2021 10:30:00 +0100
<![CDATA[Repars avec ton Claude]]> https://www.deblan.io/post/603/repars-avec-ton-claude Les membres de l'association Tinternet & Cie te proposent une journée conviviale et créative le samedi 6 décembre 2021, au FabLab à Besançon ! Le but ? Fabriquer et repartir avec ton serveur personnel basé sur un RaspberryPi pour héberger et partager tes données. Pourquoi ? Car l'auto-hébergement de nos données et l'un des enjeux majeurs liés à notre usage des outils numériques.

En plus de la création personnalisé de ton serveur, la journée sera rythmée par des conférences/discussions sur le fonctionnement de l’internet, l’auto-hébergement, logiciels et licences libres...

]]>
603 Sat, 06 Nov 2021 14:00:00 +0100