Simon Vieille

Développeur français animé par la culture du libre et du hacking

Comprendre l'autohébergement avec Yunohost

Comprendre l'autohébergement avec Yunohost

https://news.gandi.net/fr/2022/06/comprendre-autohebergement-avec-yunohost/

L’autohébergement est une pratique consistant à héberger ses services numériques sur ses propres machines (par opposition à l’utilisation d’hébergement de services chez un tiers). Pratiqué en entreprise dans la majorité des cas, l’autohébergement intéresse également les particuliers qui souhaitent garder le contrôle de leur données.

Lien permanent


Un an d'utilisation de AdGuard comme 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


Générer une page dans 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.


Générer un CRUD dans 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.


Le Conseil d'État sauve la reconnaissance faciale du fichier TAJ

Le Conseil d'État sauve la reconnaissance faciale du fichier TAJ

https://www.laquadrature.net/2022/05/03/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.

Lien permanent