This commit is contained in:
Simon Vieille 2021-04-09 15:46:35 +02:00
parent a552c658c1
commit 5414f5dd18
Signed by: deblan
GPG key ID: 03383D15A1D31745
30 changed files with 442 additions and 937 deletions

View file

@ -3,12 +3,5 @@
* 2019-05-25 04:14:00 * 2019-05-25 04:14:00
* Divers, Informatique, Quick links * Divers, Informatique, Quick links
```html > Dans un dossier complet, Tinternet & cie vous explique comment nous pouvons reprendre la main sur nos données personnelles sur internet.
<blockquote> Un premier article d'une longue série j'espère 🙂
<p>Dans un dossier complet, Tinternet &amp; cie vous explique comment nous pouvons reprendre la main sur nos données personnelles sur internet.</p>
</blockquote>
```
```html
<p>Un premier article d'une longue série j'espère 🙂</p>
```

View file

@ -3,25 +3,17 @@
* 2019-06-12 02:31:00 * 2019-06-12 02:31:00
* Informatique, Quick links * Informatique, Quick links
```html Ce projet génère un rapport générique sur une distribution Debian GNU/Linux (+ Ubuntu).
<p>Ce projet génère un rapport générique sur une distribution Debian GNU/Linux (+ Ubuntu).</p>
```
```html * Nom du système
<ul> * État des paquets et uptime
<li>Nom du système</li> * Points de montage
<li>État des paquets et uptime</li> * Espaces disques
<li>Points de montage</li> * Rapport Smartmontools
<li>Espaces disques</li> * …
<li>Rapport Smartmontools</li>
<li>…</li>
</ul>
```
```html Ce rapport pourra être enregistré dans un fichier et/ou envoyé par mail.
<p>Ce rapport pourra être enregistré dans un fichier et/ou envoyé par mail.</p>
```
```html Sa configuration est très simple et
<p>Sa configuration est très simple et <a href="https://gitnet.fr/deblan/deblan-report/src/branch/master/README.md">tout est documenté dans le README du projet</a>.</p> => https://gitnet.fr/deblan/deblan-report/src/branch/master/README.md tout est documenté dans le README du projet
``` .

View file

@ -3,39 +3,28 @@
* 2019-06-26 17:01:25 * 2019-06-26 17:01:25
* Développement * Développement
```html Pour la fonctionnalité de partage de liens sur ce blog, j'ai développé un script qui récupére le contenu d'une page et analyse ses balises `<meta>` pour identifier ses données
<p>Pour la fonctionnalité de partage de liens sur ce blog, j'ai développé => http://ogp.me/ Open Graph
un script qui récupére le contenu d'une page et analyse ses balises <code>&lt;meta&gt;</code> .
pour identifier ses données <a href="http://ogp.me/">Open Graph</a>.</p>
```
```html Dans un autre contexte, j'ai rencontré un bug dans
<p>Dans un autre contexte, j'ai rencontré un bug dans <a href="https://wallabag.org/">Wallabag</a> => https://wallabag.org/ Wallabag
qui l'empêche de récupérer le contenu de plusieurs pages web que je désirait lire plus tard. qui l'empêche de récupérer le contenu de plusieurs pages web que je désirait lire plus tard. Avec la volonté de créer un rapport de bug, la documentation m'a amené sur la piste du projet
Avec la volonté de créer un rapport de bug, la documentation m'a amené sur la piste du projet <a href="https://github.com/j0k3r/graby">Graby</a> => https://github.com/j0k3r/graby Graby
utilisé par Wallabag.</p> utilisé par Wallabag.
```
```html Pour comprendre et peut-être proposer un correctif, j'ai joué avec Graby et ça m'a amené à réaliser une API pour remplacer le script utilisé par le blog, en combinent Graby et
<p>Pour comprendre et peut-être proposer un correctif, j'ai joué avec Graby et => https://github.com/fusonic/opengraph `fusonic/opengraph`
ça m'a amené à réaliser une API pour remplacer le script utilisé par le blog, . L'objectif de l'API est donc de retourner des données générées par Graby et OpenGraph au format JSON.
en combinent Graby et <a href="https://github.com/fusonic/opengraph"><code>fusonic/opengraph</code></a>.
L'objectif de l'API est donc de retourner des données générées par Graby et OpenGraph au format JSON.</p>
```
```html Voici à quoi ressemble un retour d'appel à l'API avec les données Open Graph :
<p>Voici à quoi ressemble un retour d'appel à l'API avec les données Open Graph :</p>
```
```html ```html
<div id="gist-5d1387f5390e4-e9073e91ca04c978a50b558c0beaad54e40ec581" class="gist-container"></div> <div id="gist-5d1387f5390e4-e9073e91ca04c978a50b558c0beaad54e40ec581" class="gist-container"></div>
```
```html
<script src="https://gist.deblan.org/fr/embedjs/5d1387f5390e4" async></script> <script src="https://gist.deblan.org/fr/embedjs/5d1387f5390e4" async></script>
``` ```
```html => https://gitnet.fr/deblan/apipage Le projet
<p><a href="https://gitnet.fr/deblan/apipage">Le projet</a> est dépendant de PHP 7.3 et c'est libre. est dépendant de PHP 7.3 et c'est libre. Le
Le <a href="https://gitnet.fr/deblan/apipage">code source est dispo ici</a>.</p> => https://gitnet.fr/deblan/apipage code source est dispo ici
``` .

View file

@ -3,46 +3,24 @@
* 2019-07-18 09:35:45 * 2019-07-18 09:35:45
* Informatique * Informatique
```html Hier, en partageant un lien vers un dossier Nextcloud dans une conversation Messenger, Facebook m'a affiché un message qui indique que `deblan.org` ne suit pas les "Standards de la communauté".
<p>Hier, en partageant un lien vers un dossier Nextcloud dans une conversation Messenger,
Facebook m'a affiché un message qui indique que <code>deblan.org</code> ne suit pas
les "Standards de la communauté".</p>
```
```html => https://upload.deblan.org/u/2019-07/5d30238a.png capture d'écran [IMG]
<p><img src="https://upload.deblan.org/u/2019-07/5d30238a.png" alt="capture d'écran" /></p>
```
```html En fouillant un peu plus, il s'avère que **tous les domaines de `deblan.org` sont concernés**. Il semble également que le mot `deblan.org` est aussi en liste noire.
<p>En fouillant un peu plus, il s'avère que <strong>tous les domaines de <code>deblan.org</code>
sont concernés</strong>. Il semble également que le mot <code>deblan.org</code> est aussi en liste noire.</p>
```
```html => https://www.deblan.io/uploads/post//c971a876a320eacdf8b1e6af6d7b49ff.jpeg capture d'écran [IMG]
<p><img src="https://www.deblan.io/uploads/post//c971a876a320eacdf8b1e6af6d7b49ff.jpeg" alt="capture d'écran" /></p>
```
```html En fouillant encore un peu plus, Facebook a décidé que le partage de l'article vers mon projet
<p>En fouillant encore un peu plus, Facebook a décidé que le partage de l'article => https://www.deblan.io/post/569/generer-un-rapport-d-un-serveur-en-html-texte-dans-fichier-et-ou-un-mail `deblan/deblan-report`
vers mon projet <a href="https://www.deblan.io/post/569/generer-un-rapport-d-un-serveur-en-html-texte-dans-fichier-et-ou-un-mail"><code>deblan/deblan-report</code></a> était lui aussi contraire à ces fameux "Standards de la communauté" (cf la
était lui aussi contraire à ces fameux "Standards de la communauté" (cf la <a href="https://upload.deblan.org/u/2019-07/5d301ae6.jpg">capture d'écran</a>) => https://upload.deblan.org/u/2019-07/5d301ae6.jpg capture d'écran
alors que je suis l'auteur d'absolument tous les contenus du dit article.</p> ) alors que je suis l'auteur d'absolument tous les contenus du dit article.
```
```html Alors, on peut se demander pourquoi une telle décision ? Aucune idée. Mais si de mon coté ça ne me pose pas plus de soucis que ça, les quelques personnes qui hébergent du contenu sur mon serveur seront peut-être un peu plus contrariées.
<p>Alors, on peut se demander pourquoi une telle décision ? Aucune idée. Mais si de mon coté
ça ne me pose pas plus de soucis que ça, les quelques personnes qui hébergent du contenu
sur mon serveur seront peut-être un peu plus contrariées.</p>
```
```html Voici un bel exemple de censure, sans fondement et sans explication. Il faut rappeler que Facebook n'est pas qu'un simple hébergeur de contenus, c'est avant tout un site éditorialiste qui décide de ce qui doit apparaître ou pas dans ses pages, en dehors de tout cadre juridique.
<p>Voici un bel exemple de censure, sans fondement et sans explication. Il faut rappeler
que Facebook n'est pas qu'un simple hébergeur de contenus, c'est avant tout un site éditorialiste
qui décide de ce qui doit apparaître ou pas dans ses pages, en dehors de tout cadre juridique.</p>
```
```html Ce web égo-centré est de l'ancien monde et ça me pousse encore plus vers les services du
<p>Ce web égo-centré est de l'ancien monde et ça me pousse encore plus vers les services => https://fr.wikipedia.org/wiki/Fediverse Fediverse
du <a href="https://fr.wikipedia.org/wiki/Fediverse">Fediverse</a>, loins de ces sociétés nauséabondes qui , loins de ces sociétés nauséabondes qui crachent à la gueule de tout le monde et qui continueront à le faire car la majorité des gens s'en tapent.
crachent à la gueule de tout le monde et qui continueront à le faire car la majorité des gens s'en tapent.</p>
```

View file

@ -3,38 +3,15 @@
* 2019-08-01 13:25:45 * 2019-08-01 13:25:45
* Développement, Informatique * Développement, Informatique
```html Dans mon activité personnelle et professionnelle, je suis amené à créer des espaces dhébergement de sites web principalement écrits en PHP.
<p>Dans mon activité personnelle et professionnelle, je suis amené à créer des
espaces dhébergement de sites web principalement écrits en PHP.</p>
```
```html Il y a quelques années, jai écris un script en shell qui posait des questions et générait des fichiers de configuration pour Apache et PHP puis relançait ces services. Il a ensuite évolué et générait également les utilisateurs unix et affinait les permissions. Le principal problème du script est que dun serveur à lautre, il fallait mettre des coups de hache dans le code pour ladapter.
<p>Il y a quelques années, jai écris un script en shell qui posait des questions
et générait des fichiers de configuration pour Apache et PHP puis relançait ces
services. Il a ensuite évolué et générait également les utilisateurs unix et
affinait les permissions. Le principal problème du script est que dun serveur
à lautre, il fallait mettre des coups de hache dans le code pour ladapter.</p>
```
```html Cette semaine, jai entamé une refonte complète du code. Au fur et à mesure du développement, jai rendu pas mal de choses configurables et je pense quil est fonctionnel sur des environnements relativement différents des miens.
<p>Cette semaine, jai entamé une refonte complète du code. Au fur et à mesure du
développement, jai rendu pas mal de choses configurables et je pense quil est
fonctionnel sur des environnements relativement différents des miens.</p>
```
```html Je vous présente donc `vhost-manager`, c'est un projet libre et est toujours orienté vers la génération de vhost Apache et de pools PHP FPM. Il faut `make`, `gcc`, `wget` pour l'installer et `sh`, `whiptail` et `php` sont nécessaires à son utilisation.
<p>Je vous présente donc <code>vhost-manager</code>, c'est un projet libre et est toujours orienté
vers la génération de vhost Apache et de pools PHP FPM. Il faut <code>make</code>, <code>gcc</code>,
<code>wget</code> pour l'installer et <code>sh</code>, <code>whiptail</code> et <code>php</code> sont nécessaires à
son utilisation.</p>
```
```html => https://www.deblan.io/~simon/vhost-manager/vhost-manager2.gif vhost-manager [IMG]
<p><img src="https://www.deblan.io/~simon/vhost-manager/vhost-manager2.gif" alt="vhost-manager" /></p>
```
```html => https://gitnet.fr/deblan/vhost-manager Le code source est disponible ici
<p><a href="https://gitnet.fr/deblan/vhost-manager">Le code source est disponible ici</a>. . Le projet se configure via un fichier de variables et j'ai conservé le principe des questions/réponses pour générer les fichiers.
Le projet se configure via un fichier de variables et j'ai conservé le
principe des questions/réponses pour générer les fichiers.</p>
```

View file

@ -3,63 +3,32 @@
* 2019-08-21 11:44:53 * 2019-08-21 11:44:53
* Informatique * Informatique
```html Lors des échanges sur la protection de la vie privée et la décentralisation des données, la question de YouTube est un sujet qui fait débat. En effet, je peux créer une instance PeerTube ou en choisir une des nombreuses disponibles pour **publier** une vidéo mais qu'est est-il de la **consultation** ? Si des créateurs font le choix de déposer leurs vidéos sur plusieurs plateformes, dautres se contentent de ne publier que sur YouTube. Dès lors, on est contraint de passer par YouTube pour accéder à ses contenus et cela implique de subir le tracking publicitaire de Google.
<p>Lors des échanges sur la protection de la vie privée et la décentralisation
des données, la question de YouTube est un sujet qui fait débat. En effet, je
peux créer une instance PeerTube ou en choisir une des nombreuses disponibles
pour <strong>publier</strong> une vidéo mais qu'est est-il de la <strong>consultation</strong> ? Si des
créateurs font le choix de déposer leurs vidéos sur plusieurs plateformes,
dautres se contentent de ne publier que sur YouTube. Dès lors, on est contraint
de passer par YouTube pour accéder à ses contenus et cela implique de subir le
tracking publicitaire de Google.</p>
```
```html **Invidious** est un projet libre sous licence AGPLv3 qui permet ne plus charger linterface très obèse de YouTube et par effet de bord, de ne plus charger les trackers quon peut y trouver. Invidious est assez complet car il permet également de gérer des comptes utilisateurs **sans compte Google**, de faire des recherches, de sabonner à des chaînes et de faire l'intermédiaire entre vous et les serveurs vidéos de Google.
<p><strong>Invidious</strong> est un projet libre sous licence AGPLv3 qui permet ne plus charger
linterface très obèse de YouTube et par effet de bord, de ne plus charger les
trackers quon peut y trouver. Invidious est assez complet car il permet
également de gérer des comptes utilisateurs <strong>sans compte Google</strong>, de faire des
recherches, de sabonner à des chaînes et de faire l'intermédiaire entre vous et
les serveurs vidéos de Google.</p>
```
```html => https://upload.deblan.org/u/2019-08/5d5d0729.jpg Invidious [IMG]
<p><img src="https://upload.deblan.org/u/2019-08/5d5d0729.jpg" alt="Invidious" /></p>
```
```html Pour autant, ce nest pas totalement suffisant car si vous consultez une page qui affiche une vidéo YouTube ou que quelquun vous partage un lien vers YouTube, vous allez à nouveau afficher des pages obèses et pleines de trackers. Le développeur
<p>Pour autant, ce nest pas totalement suffisant car si vous consultez une page => https://gitlab.com/Booteille Booteille
qui affiche une vidéo YouTube ou que quelquun vous partage un lien vers YouTube, a réalisé une
vous allez à nouveau afficher des pages obèses et pleines de trackers. Le => https://addons.mozilla.org/fr/firefox/addon/invidition/ extension Firefox
développeur <a href="https://gitlab.com/Booteille">Booteille</a> a réalisé destinée à résoudre cela. Une fois installée et activée, lextension va automatiquement remplacer lIframe de YouTube par un encart Invidious et rediriger les pages YouTube vers une instance Invidious de votre choix. Voici à quoi ressemble une vidéo affichée depuis une instance Invidious.
une <a href="https://addons.mozilla.org/fr/firefox/addon/invidition/">extension Firefox</a>
destinée à résoudre cela. Une fois installée et activée, lextension va automatiquement
remplacer lIframe de YouTube par un encart Invidious et rediriger les pages
YouTube vers une instance Invidious de votre choix. Voici à quoi ressemble une
vidéo affichée depuis une instance Invidious.</p>
```
```html ```html
<div class="video-ratio" data-ratio="56.25%"><iframe src="https://invidio.us/embed/3lRkjWTUuhc" allowfullscreen></iframe></div> <div class="video-ratio" data-ratio="56.25%"><iframe src="https://invidio.us/embed/3lRkjWTUuhc" allowfullscreen></iframe></div>
``` ```
```html Après plusieurs semaines dutilisation, retourner sur le site YouTube est presque un calvaire car cest vraiment lent. Invidious charge et affiche les contenus plus rapidement et le lecteur fait extrêmement bien son boulot. Cependant, si linterface de YouTube vous manque un peu, vous pouvez installer le logiciel **
<p>Après plusieurs semaines dutilisation, retourner sur le site YouTube est presque => https://freetubeapp.io/ FreeTube
un calvaire car cest vraiment lent. Invidious charge et affiche les contenus ** qui reprend ses codes et permet de sinterfacer avec une instance Invidious.
plus rapidement et le lecteur fait extrêmement bien son boulot. Cependant, si
linterface de YouTube vous manque un peu, vous pouvez installer le logiciel
<strong><a href="https://freetubeapp.io/">FreeTube</a></strong> qui reprend ses codes et permet de
sinterfacer avec une instance Invidious.</p>
```
```html => https://upload.deblan.org/u/2019-08/5d5d0cc5.jpg FreeTube [IMG]
<p><img src="https://upload.deblan.org/u/2019-08/5d5d0cc5.jpg" alt="FreeTube" /></p>
```
```html Si vous avez envie de tester Invidious, vous pouvez accéder à
<p>Si vous avez envie de tester Invidious, vous pouvez accéder à => https://invidio.us/ l'instance officielle
<a href="https://invidio.us/">l'instance officielle</a> et les et les
<a href="https://github.com/omarroth/invidious/wiki/Invidious-Instances">instances publiques</a> => https://github.com/omarroth/invidious/wiki/Invidious-Instances instances publiques
voire de <a href="https://github.com/omarroth/invidious#installation">l'installer</a> localement voire de
ou sur votre serveur.</p> => https://github.com/omarroth/invidious#installation l'installer
``` localement ou sur votre serveur.

View file

@ -3,35 +3,24 @@
* 2019-12-09 13:34:12 * 2019-12-09 13:34:12
* Informatique * Informatique
```html Fin avril dernier, j'ai publié un projet qui génère un
<p>Fin avril dernier, j'ai publié un projet qui génère un => https://www.deblan.io/post/565/verifier-la-date-d-expiration-de-noms-de-domaine récapitulatif de la date d'expiration d'un ou plusieurs nom de domaines
<a href="https://www.deblan.io/post/565/verifier-la-date-d-expiration-de-noms-de-domaine">récapitulatif de la date d'expiration d'un ou plusieurs nom de domaines</a>.</p> .
```
```html Je publie aujourd'hui une mise à jour qui intègre un outil pour avoir un récapitulatif des **dates d'expirations des certificats SSL**. C'est sur le même principe que pour les noms de domaines avec une uniformisation des affichages.
<p>Je publie aujourd'hui une mise à jour qui intègre un outil pour avoir un récapitulatif
des <strong>dates d'expirations des certificats SSL</strong>. C'est sur le même principe que pour les
noms de domaines avec une uniformisation des affichages.</p>
```
```html Pour l'installation, rien ne change si ce n'est une dépendance à `openssl` :
<p>Pour l'installation, rien ne change si ce n'est une dépendance à <code>openssl</code> :</p>
```
```html ```{.language-bash data-title="Installation"}
<pre><code class="language-bash" data-title="Installation">$ git clone --recurse-submodules https://gitnet.fr/deblan/domain-expiration.git $ git clone --recurse-submodules https://gitnet.fr/deblan/domain-expiration.git
$ cd domain-expiration $ cd domain-expiration
$ composer install $ composer install
</code></pre>
``` ```
```html Les commandes varient un petit peu mais rien de bien méchant. Pour tester les noms de domaines :
<p>Les commandes varient un petit peu mais rien de bien méchant. Pour tester les
noms de domaines :</p>
```
```html ```{.language-bash data-title="Exemple sans couleur"}
<pre><code class="language-bash" data-title="Exemple sans couleur">./check domains google.com amazon.com facebook.com apple.com microsoft.com ./check domains google.com amazon.com facebook.com apple.com microsoft.com
+---------------+------+---------------------+ +---------------+------+---------------------+
| Domain | Days | Date | | Domain | Days | Date |
+---------------+------+---------------------+ +---------------+------+---------------------+
@ -41,15 +30,12 @@ noms de domaines :</p>
| facebook.com | 3033 | 2028-03-30 04:00:00 | | facebook.com | 3033 | 2028-03-30 04:00:00 |
| google.com | 3201 | 2028-09-14 04:00:00 | | google.com | 3201 | 2028-09-14 04:00:00 |
+---------------+------+---------------------+ +---------------+------+---------------------+
</code></pre>
``` ```
```html Pour tester les certificats :
<p>Pour tester les certificats :</p>
```
```html ```{.language-bash data-title="Exemple sans couleur"}
<pre><code class="language-bash" data-title="Exemple sans couleur">./check https-certificates google.com amazon.com facebook.com apple.com microsoft.com ./check https-certificates google.com amazon.com facebook.com apple.com microsoft.com
+---------------+------+---------------------+ +---------------+------+---------------------+
| Domain | Days | Date | | Domain | Days | Date |
+---------------+------+---------------------+ +---------------+------+---------------------+
@ -59,15 +45,10 @@ noms de domaines :</p>
| apple.com | 222 | 2020-07-19 13:25:52 | | apple.com | 222 | 2020-07-19 13:25:52 |
| microsoft.com | 543 | 2021-06-05 13:25:50 | | microsoft.com | 543 | 2021-06-05 13:25:50 |
+---------------+------+---------------------+ +---------------+------+---------------------+
</code></pre>
``` ```
```html Des options peuvent être ajoutées pour modifier le retour en simplifiant le tableau, pour générer du JSON et pour ralentir le programme entre chaque test (très pratique pour récupérer les `whois` sans être bloqué).
<p>Des options peuvent être ajoutées pour modifier le retour en simplifiant le tableau,
pour générer du JSON et pour ralentir le programme entre chaque test (très pratique
pour récupérer les <code>whois</code> sans être bloqué).</p>
```
```html C'est toujours libre et le code est disponible sur
<p>C'est toujours libre et le code est disponible sur <a href="https://gitnet.fr/deblan/domain-expiration">Gitnet</a>.</p> => https://gitnet.fr/deblan/domain-expiration Gitnet
``` .

View file

@ -3,58 +3,40 @@
* 2020-01-09 10:30:54 * 2020-01-09 10:30:54
* Divers * Divers
```html On est arrivé en 2020 depuis plusieurs jours et javais envie de faire le bilan de 2019. Cette année a été assez productive du coté des logiciels libres. Jai pu contribuer avec la réalisation de quelques projets :
<p>On est arrivé en 2020 depuis plusieurs jours et javais envie de faire le bilan de
2019. Cette année a été assez productive du coté des logiciels libres. Jai pu contribuer avec
la réalisation de quelques projets :</p>
```
```html *
<ul> => https://www.deblan.io/post/565/verifier-la-date-d-expiration-de-noms-de-domaine Un outil pour récapituler les dates dexpirations de nom de domaines
<li><a href="https://www.deblan.io/post/565/verifier-la-date-d-expiration-de-noms-de-domaine">Un outil pour récapituler les dates dexpirations de nom de domaines</a>
et sa <a href="https://www.deblan.io/post/575/expiration-de-certificats-ssl">mise à jour pour récapituler les dates dexpirations de certificats SSL</a></li>
<li><a href="https://www.deblan.io/post/569/generer-un-rapport-d-un-serveur-en-html-texte-dans-fichier-et-ou-un-mail">Une refonte et la publication du code pour générer des rapports serveur</a></li>
<li><a href="https://www.deblan.io/post/570/api-pour-recuperer-le-contenu-open-graph-d-une-page-web">Une API pour récupérer les informations OpenGraph et les données générées par Graby</a></li>
<li><a href="https://www.deblan.io/post/573/outil-de-creation-d-un-espace-web-apache-et-php">Un générateur de configuration de vhost pour Apache</a></li>
</ul>
```
```html et sa
<p>Jai également publié dautres projets sans en parler sur mon blog :</p> => https://www.deblan.io/post/575/expiration-de-certificats-ssl mise à jour pour récapituler les dates dexpirations de certificats SSL
```
```html *
<ul> => https://www.deblan.io/post/569/generer-un-rapport-d-un-serveur-en-html-texte-dans-fichier-et-ou-un-mail Une refonte et la publication du code pour générer des rapports serveur
<li><a href="https://gitnet.fr/deblan/sms-sender">Un script pour envoyer des SMS depuis un shell en sappuyant sur KDEConnect</a></li> *
<li><a href="https://gitnet.fr/deblan/mattermost-bot">Un outil de publication sur Mattermost de liens provenants de flux RSS</a></li> => https://www.deblan.io/post/570/api-pour-recuperer-le-contenu-open-graph-d-une-page-web Une API pour récupérer les informations OpenGraph et les données générées par Graby
</ul> *
``` => https://www.deblan.io/post/573/outil-de-creation-d-un-espace-web-apache-et-php Un générateur de configuration de vhost pour Apache
```html Jai également publié dautres projets sans en parler sur mon blog :
<p>En enfin, jai maintenu des projets existants comme
<a href="https://gitnet.fr/deblan/gist">Gist</a> et
<a href="https://gitnet.fr/deblan/office365-oauth2-authenticator">loutil pour sidentifier sur Office 365</a>
(je cherche dailleurs des contributions pour implémenter la double
authentification).
Du côté de lauto-hébergement, jai ajouté quelques services comme <a href="https://wallabag.org/fr">wallabag</a>
et <a href="https://github.com/gchq/CyberChef">cyberchef</a>. Au 31 décembre, 15 services
étaient proposés gratuitement avec un accès libre ou sur inscription et 36
personnes mont fait une demande daccès à un service restreint (hébergement web,
service mail, Nextcloud, …).</p>
```
```html *
<p>Cela fait maintenant plus de 10 ans que je mauto-héberge => https://gitnet.fr/deblan/sms-sender Un script pour envoyer des SMS depuis un shell en sappuyant sur KDEConnect
et jhéberge maintenant pas mal de monde. Ça tourne super bien et je suis très *
content que de plus en plus de gens s'y intéressent. Je suis sollicité par des => https://gitnet.fr/deblan/mattermost-bot Un outil de publication sur Mattermost de liens provenants de flux RSS
associations qui veulent d'affranchir des GAFAM et c'est bien !</p>
```
```html En enfin, jai maintenu des projets existants comme
<p>Tout cela demande de l'investissement mais cest essentiel pour ne pas laisser => https://gitnet.fr/deblan/gist Gist
ses données nimporte où.</p> et
``` => https://gitnet.fr/deblan/office365-oauth2-authenticator loutil pour sidentifier sur Office 365
(je cherche dailleurs des contributions pour implémenter la double authentification). Du côté de lauto-hébergement, jai ajouté quelques services comme
=> https://wallabag.org/fr wallabag
et
=> https://github.com/gchq/CyberChef cyberchef
. Au 31 décembre, 15 services étaient proposés gratuitement avec un accès libre ou sur inscription et 36 personnes mont fait une demande daccès à un service restreint (hébergement web, service mail, Nextcloud, …).
```html Cela fait maintenant plus de 10 ans que je mauto-héberge et jhéberge maintenant pas mal de monde. Ça tourne super bien et je suis très content que de plus en plus de gens s'y intéressent. Je suis sollicité par des associations qui veulent d'affranchir des GAFAM et c'est bien !
<p>On verra comment 2020 va se passer 😉</p>
``` Tout cela demande de l'investissement mais cest essentiel pour ne pas laisser ses données nimporte où.
On verra comment 2020 va se passer 😉

View file

@ -3,45 +3,22 @@
* 2020-01-31 21:21:49 * 2020-01-31 21:21:49
* Futilités de Geek * Futilités de Geek
```html La semaine dernière, mon quartier a subi une coupure électrique qui a rendu inaccessible mon serveur auto-hébergé pendant 2 heures.
<p>La semaine dernière, mon quartier a subi une coupure électrique qui a rendu
inaccessible mon serveur auto-hébergé pendant 2 heures.</p>
```
```html Il m'a fallu seulement quelques petites minutes pour me rendre compte qu'il y avait un problème et pendant tout le temps de la panne, je me suis rendu compte que la très grande majorité de mes outils étaient indisponibles :
<p>Il m'a fallu seulement quelques petites minutes pour me rendre compte qu'il y
avait un problème et pendant tout le temps de la panne, je me suis rendu compte
que la très grande majorité de mes outils étaient indisponibles :</p>
```
```html * Mes mails
<ul> * Mes calendriers
<li>Mes mails</li> * Mon gestionnaire de tâches
<li>Mes calendriers</li> * Mes contacts téléphoniques
<li>Mon gestionnaire de tâches</li> * Mes fichiers et mes partages
<li>Mes contacts téléphoniques</li> * Mes dépôts pour mes projets
<li>Mes fichiers et mes partages</li> * Mon lecteur de flux RSS et mon instance Wallabag qui m'aide aussi à partager ma veille
<li>Mes dépôts pour mes projets</li> * Des outils de monitoring
<li>Mon lecteur de flux RSS et mon instance Wallabag qui m'aide aussi à partager ma veille</li> * Et encore d'autres services…
<li>Des outils de monitoring</li>
<li>Et encore d'autres services…</li>
</ul>
```
```html C'est pénible mais ce n'est pas insurmontable quand on sait que rien n'est cassé et que c'est juste un problème de courant. Cette une grosse centralisation de données et services que j'aurais largement critiquée dans un autre contexte. Cependant, comme tout est hébergé à la maison, ça ne me pose véritablement aucun problème et il faut accepter des coupures de temps en temps.
<p>C'est pénible mais ce n'est pas insurmontable quand on sait que rien n'est cassé
et que c'est juste un problème de courant. Cette une grosse centralisation de
données et services que j'aurais largement critiquée dans un autre contexte.
Cependant, comme tout est hébergé à la maison, ça ne me pose véritablement aucun
problème et il faut accepter des coupures de temps en temps.</p>
```
```html Je crois que c'est une étape importante qui a été franchie avec la reprise en main de toutes les données numériques qui m'appartiennent qui et ne devraient pas stockées ailleurs.
<p>Je crois que c'est une étape importante qui a été franchie avec la reprise en
main de toutes les données numériques qui m'appartiennent qui et ne devraient
pas stockées ailleurs.</p>
```
```html => https://upload.deblan.org/u/2020-01/5e348a49.jpg Not bad [IMG]
<p><img src="https://upload.deblan.org/u/2020-01/5e348a49.jpg" alt="Not bad" /></p>
```

View file

@ -3,43 +3,32 @@
* 2020-02-20 15:17:02 * 2020-02-20 15:17:02
* Développement * Développement
```html Je travaille régulièrement sur des traitements de fichiers CSV. J'apprécie beaucoup ce format de fichier car il se génère et se lit facilement, qu'on soit informaticien ou non. J'ai d'ailleur écrit 2 librairies PHP pour lire, générer et valider des CSV :
<p>Je travaille régulièrement sur des traitements de fichiers CSV. => https://gitnet.fr/deblan/csv deblan/csv
J'apprécie beaucoup ce format de fichier car il se génère et se lit et
facilement, qu'on soit informaticien ou non. J'ai d'ailleur écrit 2 => https://gitnet.fr/deblan/csv-validator deblan/csv-validator
librairies PHP pour lire, générer et valider des CSV : .
<a href="https://gitnet.fr/deblan/csv">deblan/csv</a> et <a href="https://gitnet.fr/deblan/csv-validator">deblan/csv-validator</a>.</p>
Lors des mes analyses, je me confronte parfois à des fichiers qui comportent beaucoup de colonnes et c'est un enfer d'utiliser un tableur pour visualiser et filtrer ces tableaux très larges.
Après quelques recherches, j'ai découvert deux projets qui se complètent à merveille ! Le premier est un outil qui transforme un fichier CSV en une base de données SQLite :
=> https://pypi.org/project/csvs-to-sqlite/ csvs-to-sqlite
. Le second génère une interface web (avec un serveur web intégré) pour faire des requêtes SQL sur une base de données SQLite :
=> https://pypi.org/project/datasette/ datasette
.
Ce sont des outils écrits en Python qui s'installent et s'utilisent en une poignée de secondes.
```{.language-bash data-title="Installation"}
$ sudo pip3 install csvs-to-sqlite datasette
``` ```
```html Pour illustrer, je vais traiter le fichier CSV de la base officielle des codes postaux disponible sur
<p>Lors des mes analyses, je me confronte parfois à des fichiers qui => https://www.data.gouv.fr/fr/datasets/base-officielle-des-codes-postaux/ data.gouv.fr
comportent beaucoup de colonnes et c'est un enfer d'utiliser un tableur pour .
visualiser et filtrer ces tableaux très larges.</p>
```
```html ```{.language-bash data-title="Installation"}
<p>Après quelques recherches, j'ai découvert deux projets qui se complètent à merveille ! $ wget -O codes_postaux.csv https://datanova.legroupe.laposte.fr/explore/dataset/laposte_hexasmal/download/\?format\=csv\&timezone\=Europe/Berlin\&use_labels_for_header\=true
Le premier est un outil qui transforme un fichier CSV en une base de données SQLite : <a href="https://pypi.org/project/csvs-to-sqlite/">csvs-to-sqlite</a>.
Le second génère une interface web (avec un serveur web intégré) pour faire
des requêtes SQL sur une base de données SQLite : <a href="https://pypi.org/project/datasette/">datasette</a>.</p>
```
```html
<p>Ce sont des outils écrits en Python qui s'installent et s'utilisent en une poignée de secondes.</p>
```
```html
<pre><code class="language-bash" data-title="Installation">$ sudo pip3 install csvs-to-sqlite datasette
</code></pre>
```
```html
<p>Pour illustrer, je vais traiter le fichier CSV de la base officielle des codes postaux
disponible sur <a href="https://www.data.gouv.fr/fr/datasets/base-officielle-des-codes-postaux/">data.gouv.fr</a>.</p>
```
```html
<pre><code class="language-bash" data-title="Installation">$ wget -O codes_postaux.csv https://datanova.legroupe.laposte.fr/explore/dataset/laposte_hexasmal/download/\?format\=csv\&amp;timezone\=Europe/Berlin\&amp;use_labels_for_header\=true
$ csvs-to-sqlite -s ";" codes_postaux.csv codes_postaux.db $ csvs-to-sqlite -s ";" codes_postaux.csv codes_postaux.db
$ datasette serve codes_postaux.db $ datasette serve codes_postaux.db
Serve! files=('codes_postaux.db',) (immutables=()) on port 8001 Serve! files=('codes_postaux.db',) (immutables=()) on port 8001
@ -47,31 +36,18 @@ INFO: Started server process [8550]
INFO: Waiting for application startup. INFO: Waiting for application startup.
INFO: Application startup complete. INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:8001 (Press CTRL+C to quit) INFO: Uvicorn running on http://127.0.0.1:8001 (Press CTRL+C to quit)
</code></pre>
``` ```
```html On peut maintenant accéder à
<p>On peut maintenant accéder à http://127.0.0.1:8001 depuis un navigateur et commencer => http://127.0.0.1:8001
à analyer et traiter les données :</p> depuis un navigateur et commencer à analyer et traiter les données :
```
```html => https://upload.deblan.org/u/2020-02/5e4e93b5.png datasette [IMG]
<p><img src="https://upload.deblan.org/u/2020-02/5e4e93b5.png" alt="datasette" /></p>
```
```html Et le plus intéressant pour moi, c'est de pouvoir écrire des requêtes SQL affiner vraiment les données affichées :
<p>Et le plus intéressant pour moi, c'est de pouvoir écrire des requêtes SQL affiner
vraiment les données affichées :</p>
```
```html => https://upload.deblan.org/u/2020-02/5e4e93c1.png datasette [IMG]
<p><img src="https://upload.deblan.org/u/2020-02/5e4e93c1.png" alt="datasette" /></p>
```
```html Enfin, on peut générer un nouveau fichier CSV (ou JSON) avec les données filtrées.
<p>Enfin, on peut générer un nouveau fichier CSV (ou JSON) avec les données filtrées.</p>
```
```html Simple, rapide et efficace !
<p>Simple, rapide et efficace !</p>
```

View file

@ -3,12 +3,9 @@
* 2020-02-26 08:31:00 * 2020-02-26 08:31:00
* La toile, Quick links * La toile, Quick links
```html > Ils sont attirants, attachants … et rapidement indispensables. Les réseaux sociaux nous appâtent à coup de likes et nous bercent dans leurs "infinite scroll". Et rapidement leurs interfaces nous poussent à la consommation jusquà loverdose. Et ce nest pas un hasard. Ils ont bâti leurs empires sur notre addiction à la dopamine.
<blockquote> >
<p>Ils sont attirants, attachants … et rapidement indispensables. Les réseaux sociaux nous appâtent à coup de likes et nous bercent dans leurs "infinite scroll". Et rapidement leurs interfaces nous poussent à la consommation jusquà loverdose. Et ce nest pas un hasard. Ils ont bâti leurs empires sur notre addiction à la dopamine.</p> > Retrouvez toutes les sources de l'épisode sur :
``` => https://wiki.datagueule.tv/R%C3%A9seaux_:flux_%C3%A0_lier(EP.95)
=> https://wiki.datagueule.tv/R%C3%A9seaux_:flux_%C3%A0_lier(EP.95
```html )
<p>Retrouvez toutes les sources de l'épisode sur : <a href="https://wiki.datagueule.tv/Réseaux_:flux_à_lier(EP.95)">https://wiki.datagueule.tv/Réseaux_:flux_à_lier(EP.95)</a></p>
</blockquote>
```

View file

@ -3,47 +3,26 @@
* 2020-03-25 02:00:56 * 2020-03-25 02:00:56
* Développement * Développement
```html Il y a quelques semaines, nous avons acheté un terrarium pour le pogona de ma chère et tendre moitié. C'est un animal qui implique un environnement particulier avec des températures de jour et de nuit à ne pas dépasser, et une hygrométrie qui ne doit pas franchir le 50%.
<p>Il y a quelques semaines, nous avons acheté un terrarium pour le pogona de ma chère
et tendre moitié. C'est un animal qui implique un environnement particulier avec
des températures de jour et de nuit à ne pas dépasser, et une hygrométrie
qui ne doit pas franchir le 50%.</p>
```
```html On a installé un thermomètre et un hygromètre analogiques mais les valeurs ne sont pas précises à la lecture. Cela a été un bon prétexte pour jouer avec un Raspberry PI et entreprendre l'installation d'une sonde pour mesurer la température et l'hygrométrie. On a en profité pour ajouter une caméra infra-rouge. Nous pouvons donc avoir des alertes quand les seuils sont dépassés et il est possible de quitter l'appartement tout en gardant un œil sur le dinosaure 🦖
<p>On a installé un thermomètre et un hygromètre analogiques mais les valeurs ne sont
pas précises à la lecture. Cela a été un bon prétexte pour jouer avec un Raspberry PI
et entreprendre l'installation d'une sonde pour mesurer la température et l'hygrométrie.
On a en profité pour ajouter une caméra infra-rouge. Nous pouvons donc avoir
des alertes quand les seuils sont dépassés et il est possible de quitter l'appartement
tout en gardant un œil sur le dinosaure 🦖</p>
```
```html Le Raspberry PI utilisé est le modèle 4 avec 2Go de RAM muni de Raspbian Lite. La vidéo s'appuie sur la
<p>Le Raspberry PI utilisé est le modèle 4 avec 2Go de RAM muni de Raspbian Lite. => https://www.kubii.fr/cameras-accessoires/2333-raspberry-pi-camera-fisheye-grand-angle-5mp-kubii-3272496012561.html caméra fisheyes à vision nocturne
La vidéo s'appuie sur la <a href="https://www.kubii.fr/cameras-accessoires/2333-raspberry-pi-camera-fisheye-grand-angle-5mp-kubii-3272496012561.html">caméra fisheyes à vision nocturne</a> et le logiciel
et le logiciel <a href="https://motion-project.github.io/motion_config.html">Motion</a> => https://motion-project.github.io/motion_config.html Motion
combiné au frontend <a href="https://github.com/ccrisan/motioneye/wiki">MotionEye</a>. Le combiné au frontend
capteur est un <a href="https://www.kubii.fr/composants-raspberry-pi/2329-capteur-am2011-humidite-et-temperature-kubii-3272496012493.html">AM2302</a> => https://github.com/ccrisan/motioneye/wiki MotionEye
et mesure la température et l'hygrométrie.</p> . Le capteur est un
``` => https://www.kubii.fr/composants-raspberry-pi/2329-capteur-am2011-humidite-et-temperature-kubii-3272496012493.html AM2302
et mesure la température et l'hygrométrie.
```html => https://upload.deblan.org/u/2020-03/5e7aa606.jpg [IMG]
<p><img src="https://upload.deblan.org/u/2020-03/5e7aa606.jpg" alt="" /><img src="https://upload.deblan.org/u/2020-03/5e7aa73f.jpg" alt="" /></p> => https://upload.deblan.org/u/2020-03/5e7aa73f.jpg [IMG]
```
```html Le Raspberry PI est dédié pour faire les mesures et gérer la caméra. Les mesures sont envoyées vers une application web développée en PHP avec Symfony pour produire de jolis graphiques 📈. Des enregistrements vidéos sont également réalisés lorsqu'un mouvement est détecté. Les captures sont récupérés périodiquement vers l'application web afin qu'on puisse les consulter quand on veut 📽
<p>Le Raspberry PI est dédié pour faire les mesures et gérer la caméra. Les mesures sont
envoyées vers une application web développée en PHP avec Symfony pour produire
de jolis graphiques 📈. Des enregistrements
vidéos sont également réalisés lorsqu'un mouvement est détecté. Les captures
sont récupérés périodiquement vers l'application web afin qu'on puisse les consulter
quand on veut 📽</p>
```
```html Le résultat est plutôt pas mal cool et on apprécie vraiment l'aide que ça apporte !
<p>Le résultat est plutôt pas mal cool et on apprécie vraiment l'aide que ça apporte !</p>
```
```html ```html
<video controls loop preload style="width: 100%; height: auto"> <video controls loop preload style="width: 100%; height: auto">

View file

@ -3,30 +3,16 @@
* 2020-04-07 13:53:45 * 2020-04-07 13:53:45
* Développement * Développement
```html En ces temps de confinement, j'essaye de travailler sur les quelques idées de projet de ma todo list 📘
<p>En ces temps de confinement, j'essaye de travailler sur les quelques idées de projet
de ma todo list 📘</p>
```
```html Aujourd'hui j'ai publié une application destinée à Nextcloud et qui permet de modifier l'affichage du menu principal pour en faire un panneau qui s'ouvre sur la gauche de l'interface :
<p>Aujourd'hui j'ai publié une application destinée à Nextcloud et qui permet de => https://apps.nextcloud.com/apps/side_menu Side menu
modifier l'affichage du menu principal pour en faire un panneau qui s'ouvre sur la . Cette application est plutôt adaptée aux instances qui activent beaucoup d'outils 🔨
gauche de l'interface : <a href="https://apps.nextcloud.com/apps/side_menu">Side menu</a>.
Cette application est plutôt adaptée aux instances qui activent beaucoup d'outils 🔨</p>
```
```html Pour l'installer, vous pouvez passer par le gestionnaire d'application de Nextcloud ou vous pouvez l'installer manuellement en suivant les instructions (en anglais) disponibles dans le
<p>Pour l'installer, vous pouvez passer par le gestionnaire d'application de Nextcloud => https://gitnet.fr/deblan/side_menu/releases dépot du projet
ou vous pouvez l'installer manuellement en suivant les instructions (en anglais) 🧪
disponibles dans le <a href="https://gitnet.fr/deblan/side_menu/releases">dépot du projet</a> 🧪</p>
```
```html Une fois installée, la liste des applications du menu supérieur sera masquées et une bouton va apparaître à gauche du logo. C'est depuis ce bouton que vous pourrez afficher le menu. Fonctionne sur bureau, tablette et mobile 📱
<p>Une fois installée, la liste des applications du menu supérieur sera masquées et
une bouton va apparaître à gauche du logo. C'est depuis ce bouton que vous pourrez
afficher le menu. Fonctionne sur bureau, tablette et mobile 📱</p>
```
```html => https://upload.deblan.org/u/2020-03/5e81b219.jpg Application side_menu Nextcloud [IMG]
<p><img src="https://upload.deblan.org/u/2020-03/5e81b219.jpg" alt="Application side_menu Nextcloud" /></p>
```

View file

@ -3,8 +3,4 @@
* 2020-04-01 00:46:00 * 2020-04-01 00:46:00
* Quick links * Quick links
```html Des caméras de Nice à la répression chinoise des Ouïghours, cette enquête dresse le panorama mondial de l'obsession sécuritaire, avec un constat glaçant : le totalitarisme numérique est pour demain.
<p>Des caméras de Nice à la répression chinoise des Ouïghours, cette enquête dresse
le panorama mondial de l'obsession sécuritaire, avec un constat glaçant :
le totalitarisme numérique est pour demain.</p>
```

View file

@ -2,11 +2,5 @@
* 2020-04-06 03:04:00 * 2020-04-06 03:04:00
```html > La "guerre" contre le coronavirus Covid-19 met le système de santé et les
<blockquote> institutions à l'épreuve et paralyse l'économie. Mais au-delà de la crise sanitaire, doit-on également craindre une crise informatique ? Réponses et réflexions, avec des spécialistes.
<p>La "guerre" contre le coronavirus Covid-19 met le système de santé et les
institutions à l'épreuve et paralyse l'économie. Mais au-delà de la crise sanitaire,
doit-on également craindre une crise informatique ? Réponses et réflexions,
avec des spécialistes.</p>
</blockquote>
```

View file

@ -2,16 +2,9 @@
* 2020-04-27 00:50:00 * 2020-04-27 00:50:00
```html > Le "Festival 100% local et virtuel pour inventer Le 1er jour d'après",
<blockquote> > cest réfléchir ensemble, imaginer et inventer un autre monde ainsi
<p>Le "Festival 100% local et virtuel pour inventer Le 1er jour d'après", > que recenser ce qui existe déjà, à notre échelle. Cest trouver et
cest réfléchir ensemble, imaginer et inventer un autre monde ainsi > valoriser des solutions collectives, adaptées, à développer et mettre en
que recenser ce qui existe déjà, à notre échelle. Cest trouver et > place sans attendre.
valoriser des solutions collectives, adaptées, à développer et mettre en J'interviendrai à 19h25 pour parler du numérique 😊
place sans attendre.</p>
</blockquote>
```
```html
<p>J'interviendrai à 19h25 pour parler du numérique 😊</p>
```

View file

@ -2,31 +2,18 @@
* 2020-05-05 15:13:01 * 2020-05-05 15:13:01
```html Le "Festival 100% local et virtuel pour inventer Le 1er jour d'après", cest réfléchir ensemble, imaginer et inventer un autre monde ainsi que recenser ce qui existe déjà, à notre échelle locale. Cest trouver et valoriser des solutions collectives, adaptées, à développer et mettre en place sans attendre. Événement organisé par
<p>Le "Festival 100% local et virtuel pour inventer Le 1er jour d'après", cest => https://www.lepixel-besancon.fr/fr/page/lassociation-la-furieuse l'association La Furiseuse
réfléchir ensemble, imaginer et inventer un autre monde ainsi que recenser ce , gérante du café-resto associatif et culturel Le Pixel à Besançon.
qui existe déjà, à notre échelle locale. Cest trouver et valoriser des solutions
collectives, adaptées, à développer et mettre en place sans attendre. Événement
organisé par <a href="https://www.lepixel-besancon.fr/fr/page/lassociation-la-furieuse">l'association La Furiseuse</a>, gérante du café-resto associatif et
culturel Le Pixel à Besançon.</p>
```
```html Festival 100% local et virtuel pour inventer Le 1er jour d'après - Organisé par
<p>Festival 100% local et virtuel pour inventer Le 1er jour d'après - Organisé par <a href="https://www.lepixel-besancon.fr/fr/page/lassociation-la-furieuse">La Furiseuse et Le Pixel</a></p> => https://www.lepixel-besancon.fr/fr/page/lassociation-la-furieuse La Furiseuse et Le Pixel
```
```html Le numérique est un enjeu sociétal important. Nous réalisons plusieurs constats qui doivent mener à une prise de conscience collective et permettre de changer en profondeur notre compréhension et nos usages du numérique.
<p>Le numérique est un enjeu sociétal important. Nous réalisons plusieurs constats Nous proposons quelques pistes de réflexions pour créer un numérique plus éthique et plus juste.
qui doivent mener à une prise de conscience collective et permettre de changer
en profondeur notre compréhension et nos usages du numérique.<br />
Nous proposons quelques pistes de réflexions pour créer un numérique plus éthique
et plus juste.</p>
```
```html Participants : Alexis Gabry, Benjamin Lavigne, Fabien Normand, Simon Vieille
<p>Participants : Alexis Gabry, Benjamin Lavigne, Fabien Normand, Simon Vieille</p>
```
```html L'ensemble du festival est disponible sur
<p>L'ensemble du festival est disponible sur <a href="https://www.youtube.com/watch?v=DJs5f-AOs4o">Youtube</a>.</p> => https://www.youtube.com/watch?v=DJs5f-AOs4o Youtube
``` .

View file

@ -3,51 +3,30 @@
* 2020-08-24 11:07:42 * 2020-08-24 11:07:42
* La toile * La toile
```html Mozilla Corporation, la société filiale de la fondation Mozilla ne se porte pas très bien. Il y a eu pas mal de licenciements et léquipe de réponse aux incidents de sécurité a volé en éclats. C'est problématique car mon navigateur joue un rôle centrale dans mon informatique. J'ai alors commencé à réfléchir à une migration vers un nouveau navigateur.
<p>Mozilla Corporation, la société filiale de la fondation Mozilla ne se porte pas
très bien. Il y a eu pas mal de licenciements et léquipe de réponse aux incidents
de sécurité a volé en éclats. C'est problématique car mon navigateur joue un rôle
centrale dans mon informatique. J'ai alors commencé à réfléchir à une migration
vers un nouveau navigateur.</p>
```
```html Avant tout, cela fait un moment que j'ai intégré la gestion de mes mots de passes en dehors du navigateur en m'appuyant sur
<p>Avant tout, cela fait un moment que j'ai intégré la gestion de mes mots de passes en dehors => https://apps.nextcloud.com/apps/passwords passwords
du navigateur en m'appuyant sur <a href="https://apps.nextcloud.com/apps/passwords">passwords</a>. . Mes marques pages sont duppliqués vers
Mes marques pages sont duppliqués vers <a href="https://apps.nextcloud.com/apps/bookmarks">bookmarks</a>. => https://apps.nextcloud.com/apps/bookmarks bookmarks
et mes lectures différées sont gérées avec <a href="https://github.com/wallabag/wallabag">wallabag</a>. . et mes lectures différées sont gérées avec
Tous ces outils possèdent des extensions compatibles avec les "autres" navigateurs.</p> => https://github.com/wallabag/wallabag wallabag
``` . Tous ces outils possèdent des extensions compatibles avec les "autres" navigateurs.
```html Passons maintenant au "choix" du potentiel remplaçant. En dehors de Firefox, tous s'appuient sur chromium, le Internet Explorer du 21ème siècle. Je n'ai pas voulu faire le mec ultra borné donc j'ai fais un choix dans la maigre liste des navigateurs qui tiennent la route. Je me suis arrêté sur Vivaldi : il est possible de synchroniser son profil avec un compte Vivaldi et les données sont chiffrées. Les extensions que j'utilise tous les jours fonctionnent avec et Vivaldi ne semble pas collecter mes données. En terme de licence, le code de l'interface n'est pas accessible mais le moteur et les modifications le sont (
<p>Passons maintenant au "choix" du potentiel remplaçant. En dehors de => https://fr.vivaldi.net/vivaldi-et-open-source/ source
Firefox, tous s'appuient sur chromium, le Internet Explorer du 21ème siècle. Je n'ai pas ).
voulu faire le mec ultra borné donc j'ai fais un choix dans la maigre liste des
navigateurs qui tiennent la route. Je me suis arrêté sur Vivaldi : il est possible
de synchroniser son profil avec un compte Vivaldi et les données sont chiffrées. Les extensions
que j'utilise tous les jours fonctionnent avec et Vivaldi ne semble pas collecter mes données.
En terme de licence, le code de l'interface n'est pas accessible mais le moteur et les modifications
le sont (<a href="https://fr.vivaldi.net/vivaldi-et-open-source/">source</a>).</p>
```
```html Donc j'ai installé Vivaldi, j'ai synchronisé mes marques pages, j'ai retrouvé mes mes mots de passe et mes extensions favorites sont paramétrées. Chouette.
<p>Donc j'ai installé Vivaldi, j'ai synchronisé mes marques pages,
j'ai retrouvé mes mes mots de passe et mes extensions favorites sont paramétrées. Chouette.</p>
```
```html => https://upload.deblan.org/u/2020-08/5f438202.jpg Vivaldi [IMG]
<p><img src="https://upload.deblan.org/u/2020-08/5f438202.jpg" alt="Vivaldi" /></p>
```
```html …mais en navigant à tout casser 3 minutes, je me suis posé cette question : où sont mes
<p>…mais en navigant à tout casser 3 minutes, je me suis posé cette question : où sont => https://support.mozilla.org/fr/kb/onglets-contextuels-avec-les-containers conteneurs comme chez Firefox
mes <a href="https://support.mozilla.org/fr/kb/onglets-contextuels-avec-les-containers">conteneurs comme chez Firefox</a> ? ? Spoiler : ils n'existent pas et aucun navigateur ne le propose. Donc j'ai ravalé ma salive et je me suis demandé s'il y avait un
Spoiler : ils n'existent pas et aucun navigateur ne le propose. Donc j'ai ravalé ma salive => https://support.mozilla.org/en-US/kb/use-primary-password-protect-stored-logins-and-pas Master Password
et je me suis demandé s'il y avait un <a href="https://support.mozilla.org/en-US/kb/use-primary-password-protect-stored-logins-and-pas">Master Password</a> pour sécuriser les mots de passe collectés ? Spoiler : il n'existe pas non plus…
pour sécuriser les mots de passe collectés ? Spoiler : il n'existe pas non plus…</p>
```
```html Du coup, je suis revenu sur Firefox et
<p>Du coup, je suis revenu sur Firefox et <a href="https://donate.mozilla.org/fr/">j'ai fais un don à Mozilla</a>, en espérant que d'autres => https://donate.mozilla.org/fr/ j'ai fais un don à Mozilla
feront comme moi et que Firefox survivra encore longtemps.</p> , en espérant que d'autres feront comme moi et que Firefox survivra encore longtemps.
```

View file

@ -3,15 +3,6 @@
* 2020-10-04 11:34:46 * 2020-10-04 11:34:46
* Cinéma * Cinéma
```html Entre documentaire et drame, ce film donne la parole à des experts qui nous mettent en garde contre leurs inventions et décrient l'impact dangereux des réseaux sociaux.
<p>Entre documentaire et drame, ce film donne la parole à des experts qui nous
mettent en garde contre leurs inventions et décrient l'impact dangereux des
réseaux sociaux.</p>
```
```html Ce film réalisé par Jeff Orlowski et produit par Larissa Rhodes a pour objectif de nous faire prendre conscience que derrière un post Facebook ou Instagram, qu'autour d'un e-mail affiché sur Gmail ou pendant que vous regardez un contenu sur YouTube, des algorithmes font leur possible pour accaparer votre temps.
<p>Ce film réalisé par Jeff Orlowski et produit par Larissa Rhodes a pour objectif
de nous faire prendre conscience que derrière un post Facebook ou Instagram,
qu'autour d'un e-mail affiché sur Gmail ou pendant que vous regardez un contenu
sur YouTube, des algorithmes font leur possible pour accaparer votre temps.</p>
```

View file

@ -3,65 +3,41 @@
* 2020-10-14 19:14:20 * 2020-10-14 19:14:20
* Développement * Développement
```html Depuis avril dernier, l'application **
<p>Depuis avril dernier, l'application <strong><a href="https://apps.nextcloud.com/apps/side_menu">Custom menu</a></strong> (anciennement <em>Side menu</em>) => https://apps.nextcloud.com/apps/side_menu Custom menu
a beaucoup évoluée et pas moins de 46 versions ont déjà été publiées. ** (anciennement *Side menu*) a beaucoup évoluée et pas moins de 46 versions ont déjà été publiées.
<a href="https://apps.nextcloud.com/apps/side_menu">Custom menu</a> est complet et très stable.</p> => https://apps.nextcloud.com/apps/side_menu Custom menu
``` est complet et très stable.
```html => https://nextcloud.com/ Nextcloud
<p><a href="https://nextcloud.com/">Nextcloud</a> est une plateforme web qui se compose d'applications est une plateforme web qui se compose d'applications pour faire tout et n'importe quoi. On peut héberger et partager des documents, gérer ses calendriers et ses contacts, enregistrer ses marque-pages, lire des flux RSS, réaliser des sondages, etc.
pour faire tout et n'importe quoi. On peut héberger et partager des documents,
gérer ses calendriers et ses contacts, enregistrer ses marque-pages, lire des flux
RSS, réaliser des sondages, etc.</p>
```
```html Selon moi, quand on active beaucoup d'applications, un des problèmes principaux est le menu qui n'est pas du tout adapté.
<p>Selon moi, quand on active beaucoup d'applications, un des problèmes principaux
est le menu qui n'est pas du tout adapté.</p>
```
```html => https://upload.deblan.org/u/2020-10/5f872888.jpg Nextcloud [IMG]
<p><img src="https://upload.deblan.org/u/2020-10/5f872888.jpg" alt="Nextcloud" /></p>
```
```html Pour résoudre ce problème, j'ai entrepris le développement d'une application dédiée à la gestion de ce menu et j'ai
<p>Pour résoudre ce problème, j'ai entrepris le développement d'une application => https://www.deblan.io/post/581/application-nextcloud-nouvel-emplacement-pour-le-menu publiées les premières versions
dédiée à la gestion de ce menu et j'ai <a href="https://www.deblan.io/post/581/application-nextcloud-nouvel-emplacement-pour-le-menu">publiées les premières versions</a> pendant le confinement du début d'année.
pendant le confinement du début d'année.</p>
```
```html => https://apps.nextcloud.com/apps/side_menu Custom menu
<p><a href="https://apps.nextcloud.com/apps/side_menu">Custom menu</a> est totalement personnalisable. On peut modifier l'emplacement du menu est totalement personnalisable. On peut modifier l'emplacement du menu selon trois dispositions : dans un panneau latéral, affiché en permanance comme le menu d'Ubuntu ou via un panneau qui s'ouvre sur le dessus. Vous pouvez bien sur choisir les couleurs de tous les éléments, afficher votre logo, la photo de profil de l'utilisateur ou rien du tout, choisir la taille du texte celle des icônes, etc.
selon trois dispositions : dans un panneau latéral, affiché en
permanance comme le menu d'Ubuntu ou via un panneau qui s'ouvre sur le dessus. Vous pouvez
bien sur choisir les couleurs de tous les éléments, afficher votre logo, la photo
de profil de l'utilisateur ou rien du tout, choisir la taille du texte celle des
icônes, etc.</p>
```
```html On peut aussi désigner des applications qui doivent rester affichées dans le menu original, choisir lesquelles doivent s'ouvrir dans un nouvel onglet et si l'administrateur le permet, alors chaque utilisateur pourra faire sa propre organisation.
<p>On peut aussi désigner des applications qui doivent rester affichées dans le menu original,
choisir lesquelles doivent s'ouvrir dans un nouvel onglet et si l'administrateur
le permet, alors chaque utilisateur pourra faire sa propre organisation.</p>
```
```html => https://apps.nextcloud.com/apps/side_menu Custom menu
<p><a href="https://apps.nextcloud.com/apps/side_menu">Custom menu</a> est compatible avec <a href="https://apps.nextcloud.com/apps/apporder">AppOrder</a> de manière à pouvoir choisir l'ordre est compatible avec
d'affichage des applications.</p> => https://apps.nextcloud.com/apps/apporder AppOrder
``` de manière à pouvoir choisir l'ordre d'affichage des applications.
```html => https://upload.deblan.org/u/2020-10/5f8adaae.png Custom menu [IMG]
<p><img src="https://upload.deblan.org/u/2020-10/5f8adaae.png" alt="Custom menu" /></p>
```
```html Si vous êtes curieux, n'hésitez pas à tester
<p>Si vous êtes curieux, n'hésitez pas à tester <a href="https://apps.nextcloud.com/apps/side_menu">Custom menu</a> et si vous avez des idées => https://apps.nextcloud.com/apps/side_menu Custom menu
pour faire évoluer l'application ou que vous rencontrez un bug alors je vous invite et si vous avez des idées pour faire évoluer l'application ou que vous rencontrez un bug alors je vous invite à
à <a href="https://gitnet.fr/deblan/side_menu">ouvrir un ticket sur le dépot du projet</a>.</p> => https://gitnet.fr/deblan/side_menu ouvrir un ticket sur le dépot du projet
``` .
```html Enfin, si vous désirez soutenir mon travail, vous avez la possibilité de
<p>Enfin, si vous désirez soutenir mon travail, vous avez la possibilité de => https://www.buymeacoffee.com/deblan m'offrir un café
<a href="https://www.buymeacoffee.com/deblan">m'offrir un café</a> 😀</p> 😀
```

View file

@ -3,51 +3,34 @@
* 2020-10-20 11:58:23 * 2020-10-20 11:58:23
* Développement, Divers * Développement, Divers
```html J'utilise énormément mon instance Nextcloud et dans certaines situations, j'ai besoin d'éditer soit des fichiers Open Document Format (format natif de LibreOffice) ou soit des fichiers Open XML (format natif de la suite office de Microsoft).
<p>J'utilise énormément mon instance Nextcloud et dans certaines situations, j'ai besoin
d'éditer soit des fichiers Open Document Format (format natif de LibreOffice)
ou soit des fichiers Open XML (format natif de la suite office de Microsoft).</p>
```
```html L'an passé, j'utilisais exclusivement
<p>L'an passé, j'utilisais exclusivement <a href="https://www.onlyoffice.com/fr/">OnlyOffice</a> via => https://www.onlyoffice.com/fr/ OnlyOffice
son <a href="https://apps.nextcloud.com/apps/onlyoffice">connecteur Nextcloud</a> et une instance via son
installée sur un serveur dédié. Puis, lors d'<a href="https://github.com/ONLYOFFICE/DocumentServer/issues/805">un déboire au sujet de l'édition => https://apps.nextcloud.com/apps/onlyoffice connecteur Nextcloud
depuis un terminal mobile</a>, j'ai décidé et une instance installée sur un serveur dédié. Puis, lors d'
de migrer vers <a href="https://www.collaboraoffice.com/fr/code/">Collabora Online</a> via => https://github.com/ONLYOFFICE/DocumentServer/issues/805 un déboire au sujet de l'édition depuis un terminal mobile
son <a href="https://apps.nextcloud.com/apps/richdocuments">connecteur Nextcloud</a> et une instance , j'ai décidé de migrer vers
installée sur un serveur (presque) dédié.</p> => https://www.collaboraoffice.com/fr/code/ Collabora Online
``` via son
=> https://apps.nextcloud.com/apps/richdocuments connecteur Nextcloud
et une instance installée sur un serveur (presque) dédié.
```html Le problème est que si Collabora Online sait très bien traiter les fichiers ODF, il galère un peu plus avec les fichiers Open XML. Aussi, force est de constater que OnlyOffice reste très performant pour jouer avec Open XML. J'ai donc décidé de les installer ensemble. Collabora Online est donc l'éditeur ouvert pour les documents ODF tandis que OnlyOffice le sera pour les fichiers Open XML.
<p>Le problème est que si Collabora Online sait très bien traiter les fichiers ODF,
il galère un peu plus avec les fichiers Open XML. Aussi, force est de constater que
OnlyOffice reste très performant pour jouer avec Open XML. J'ai donc
décidé de les installer ensemble. Collabora Online est donc l'éditeur ouvert pour
les documents ODF tandis que OnlyOffice le sera pour les fichiers Open XML.</p>
```
```html => https://upload.deblan.org/u/2020-10/5f8eb3c9.png Collabora Online et OnlyOffice [IMG]
<p><img src="https://upload.deblan.org/u/2020-10/5f8eb3c9.png" alt="Collabora Online et OnlyOffice" /></p>
```
```html Afin de les discerner dans le menu pour créer un nouveau document, j'ai développé un bout de javascript que vous pouvez injecter via
<p>Afin de les discerner dans le menu pour créer un nouveau document, j'ai développé => https://apps.nextcloud.com/apps/jsloader JSLoader
un bout de javascript que vous pouvez injecter via <a href="https://apps.nextcloud.com/apps/jsloader">JSLoader</a>. . Je pense d'ailleurs que cela sera une bonne idée de forker cette application afin d'en reprendre la maintenance.
Je pense d'ailleurs que cela sera une bonne idée de forker cette application
afin d'en reprendre la maintenance.</p>
```
```html => https://upload.deblan.org/u/2020-10/5f8eb3b3.png Cohabitation de Collabora Online et OnlyOffice sur Nextcloud [IMG]
<p><img src="https://upload.deblan.org/u/2020-10/5f8eb3b3.png" alt="Cohabitation de Collabora Online et OnlyOffice sur Nextcloud" /></p>
```
```html Alors ce n'est sans doute pas le code le plus élégant mais il fonctionne bien.
<p>Alors ce n'est sans doute pas le code le plus élégant mais il fonctionne bien.</p>
```
```html ```{.language-js data-title="Code à insérer dans JS Loader"}
<pre><code class="language-js" data-title="Code à insérer dans JS Loader">try { try {
setInterval(function() { setInterval(function() {
var elements = { var elements = {
'docx': 'onlyofficeDocx', 'docx': 'onlyofficeDocx',
@ -94,5 +77,4 @@ afin d'en reprendre la maintenance.</p>
} catch (e) { } catch (e) {
} }
</code></pre>
``` ```

View file

@ -3,44 +3,16 @@
* 2020-10-17 15:13:52 * 2020-10-17 15:13:52
* Divers * Divers
```html > Ou comment instrumentaliser à des fins politiques un événement tragique qui n'a aucun rapport pour relancer une loi anticonstitutionnelle : La loi AVIA
<blockquote> ### Pourquoi la loi Avia est liberticide et inutile ?
<p>Ou comment instrumentaliser à des fins politiques un événement tragique qui n'a aucun rapport pour relancer une loi anticonstitutionnelle : La loi AVIA</p>
</blockquote>
```
```html L'appareil législatif contient déjà tous les outils pour lutter contre les contenus manifestement illicites tels que les incitations à la haine, les injures à caractère raciste ou anti-religieuses.
<h3>Pourquoi la loi Avia est liberticide et inutile ?</h3>
```
```html Les contenus terroristes ou pédopornographiques doit être considérés comme tel **par un juge** et non par l'appréciation de l'administration. Les plateformes privées ne doivent pas jouer le rôle d'organe de censure et encore moins l'automatiser.
<p>L'appareil législatif contient déjà tous les outils pour lutter contre les Le conseil constitutionnel s'est déja prononcé en indiquant que « **le législateur porte une atteinte à la liberté d'expression** qui n'est ni adaptée, ni proportionnée au but poursuivi ». Il persiste « **le risque que les opérateurs soient incités à retirer tous les contenus contestés, y compris ceux qui sont licites** » [
contenus manifestement illicites tels que les incitations à la haine, => https://www.vie-publique.fr/loi/268070-loi-avia-lutte-contre-les-contenus-haineux-sur-internet 1
les injures à caractère raciste ou anti-religieuses.</p> ].
```
```html Si un contenu devait être supprimé, cela veut donc dire qu'il a été nécessairement publié donc le mal est déjà fait. Mais sous couvert de la lutte contre l'anonyma sur Internet (qui n'est qu'une idée reçue), la loi Avia va permettre de museler les personnes qui dérangent, ceux qui ont des idées en marge, les mouvements contestataires, ceux qui militent pour un état de droit et non pas pour un état policier en imposant une suppression pure et dure de leurs contenus sans l'accord d'un juge.
<p>Les contenus terroristes ou pédopornographiques doit être considérés comme tel
<strong>par un juge</strong> et non par l'appréciation de l'administration. Les
plateformes privées ne doivent pas jouer le rôle d'organe de censure et encore
moins l'automatiser.<br />
Le conseil constitutionnel s'est déja prononcé en indiquant que
« <strong>le législateur porte une atteinte à la liberté d'expression</strong> qui n'est ni adaptée,
ni proportionnée au but poursuivi ». Il persiste « <strong>le risque que les opérateurs
soient incités à retirer tous les contenus contestés, y compris ceux qui sont licites</strong> » [<a href="https://www.vie-publique.fr/loi/268070-loi-avia-lutte-contre-les-contenus-haineux-sur-internet">1</a>].</p>
```
```html Cette loi est la porte ouverte vers une énième derive totalitaire où l'état va nous imposer son idéologie.
<p>Si un contenu devait être supprimé, cela veut donc dire qu'il a
été nécessairement publié donc le mal est déjà fait. Mais sous couvert de la
lutte contre l'anonyma sur Internet (qui n'est qu'une idée reçue), la loi Avia
va permettre de museler les personnes qui dérangent, ceux qui ont des idées en
marge, les mouvements contestataires, ceux qui militent pour un état de droit et
non pas pour un état policier en imposant une suppression pure et dure de leurs
contenus sans l'accord d'un juge.</p>
```
```html
<p>Cette loi est la porte ouverte vers une énième derive totalitaire où l'état va nous
imposer son idéologie.</p>
```

View file

@ -3,79 +3,50 @@
* 2020-11-12 18:04:42 * 2020-11-12 18:04:42
* Développement, Informatique * Développement, Informatique
```html J'essaye de plus en plus de réduire le volume de mails que je reçois. Du coup, quand une newsletter m'intéresse et que les auteurs ne fournissent pas de flux RSS, cela me donne un prétexte pour écrire un nouveau projet :
<p>J'essaye de plus en plus de réduire le volume de mails que je reçois. Du coup, => https://gitnet.fr/deblan/mail-rss Mail RSS
quand une newsletter m'intéresse et que les auteurs ne fournissent pas de flux RSS, cela .
me donne un prétexte pour écrire un nouveau projet : <a href="https://gitnet.fr/deblan/mail-rss">Mail RSS</a>.</p>
=> https://upload.deblan.org/u/2020-11/5fad64ef.png [IMG]
### Comment ça marche ?
L'idée est assez simple : en utilisant
=> https://linux.developpez.com/formation_debian/serveur-mail2.html#AEN7717 les alias de mail dans Postfix
, on peut faire en sorte qu'un mail qui arrive sur le serveur soit traité par une commande. J'ai décidé de rediriger les mails dans un répertoire précis du serveur et je demande à **Mail RSS** de les lire et de les importer.
Prenons la newsletter de
=> https://www.techtrash.fr/ TechTrash
comme exemple.
#### Configuration du serveur de mail
Il faut ajouter un alias qui va générer des fichiers.
```{.language-bash data-title="/etc/aliases"}
techtrash: "| cat > /var/lib/mailrss/techtrash-$(date +%s) && chmod o+rw /var/lib/mailrss/techtrash-$(date +%s)"
``` ```
```html Au préalable, j'ai créé le répertoire `/var/lib/mailrss` et je me suis assuré que mon application pouvait lire et écrire dedans, de même que Postfix (`nobody:nogroup`).
<p><img src="https://upload.deblan.org/u/2020-11/5fad64ef.png" alt="" /></p>
```
```html #### Configuration de l'application
<h3>Comment ça marche ?</h3>
```
```html On doit générer un mailing pour TechTrash. Quand on va importer les mails de TechTrash, on pourra les associer au mailing via son identifiant (`ID`). On pourra ensuite accéder au flux RSS via le lien généré à sa création. Évidement, on peut créer autant de mailing que l'on veut, les modifier et les supprimer.
<p>L'idée est assez simple : en utilisant <a href="https://linux.developpez.com/formation_debian/serveur-mail2.html#AEN7717">les alias de mail dans Postfix</a>,
on peut faire en sorte qu'un mail qui arrive sur le serveur soit traité par une commande.
J'ai décidé de rediriger les mails dans un répertoire précis du serveur et je
demande à <strong>Mail RSS</strong> de les lire et de les importer.</p>
```
```html ```{.language-bash data-title="Configuration du mailing"}
<p>Prenons la newsletter de <a href="https://www.techtrash.fr/">TechTrash</a> comme exemple.</p> $ php bin/console mailing:new "TechTrash"
```
```html
<h4>Configuration du serveur de mail</h4>
```
```html
<p>Il faut ajouter un alias qui va générer des fichiers.</p>
```
```html
<pre><code class="language-bash" data-title="/etc/aliases">techtrash: "| cat &gt; /var/lib/mailrss/techtrash-$(date +%s) &amp;&amp; chmod o+rw /var/lib/mailrss/techtrash-$(date +%s)"
</code></pre>
```
```html
<p>Au préalable, j'ai créé le répertoire <code>/var/lib/mailrss</code> et je me suis assuré que mon application
pouvait lire et écrire dedans, de même que Postfix (<code>nobody:nogroup</code>).</p>
```
```html
<h4>Configuration de l'application</h4>
```
```html
<p>On doit générer un mailing pour TechTrash. Quand on va importer les mails de TechTrash,
on pourra les associer au mailing via son identifiant (<code>ID</code>). On pourra ensuite
accéder au flux RSS via le lien généré à sa création. Évidement, on peut créer
autant de mailing que l'on veut, les modifier et les supprimer.</p>
```
```html
<pre><code class="language-bash" data-title="Configuration du mailing">$ php bin/console mailing:new "TechTrash"
$ php bin/console mailing:list $ php bin/console mailing:list
------------ -------------------------------------- ------------------------------------------------------------------------ --------------------- --------------------- ------------ -------------------------------------- ------------------------------------------------------------------------ --------------------- ---------------------
Label ID Feed Created at Updated at Label ID Feed Created at Updated at
------------ -------------------------------------- ------------------------------------------------------------------------ --------------------- --------------------- ------------ -------------------------------------- ------------------------------------------------------------------------ --------------------- ---------------------
Tech Trash xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx https://exemple.fr/mailing/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/rss 2020-11-12 13:37:00 2020-11-12 13:37:00 Tech Trash xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx https://exemple.fr/mailing/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/rss 2020-11-12 13:37:00 2020-11-12 13:37:00
------------ -------------------------------------- ------------------------------------------------------------------------ --------------------- --------------------- ------------ -------------------------------------- ------------------------------------------------------------------------ --------------------- ---------------------
</code></pre>
``` ```
```html Enfin, il faut un script qui va traiter les fichiers de `/var/lib/mailrss` en les important dans le mailing correspondant et qui les supprime du serveur.
<p>Enfin, il faut un script qui va traiter les fichiers de <code>/var/lib/mailrss</code> en les important
dans le mailing correspondant et qui les supprime du serveur.</p>
```
```html ```{.language-bash .line-numbers data-title="Script lancé periodiquement"}
<pre><code class="language-bash line-numbers" data-title="Script lancé periodiquement">#!/bin/sh #!/bin/sh
cd "/path/to/exemple.fr" cd "/path/to/exemple.fr"
@ -84,33 +55,24 @@ import_mails() {
MAILING_ID="$2" MAILING_ID="$2"
find /var/lib/mailrss -name "${LABEL}-*" | while read MAIL; do find /var/lib/mailrss -name "${LABEL}-*" | while read MAIL; do
php bin/console mail:import "${MAILING_ID}" -f "$MAIL" &amp;&amp; rm "$MAIL" php bin/console mail:import "${MAILING_ID}" -f "$MAIL" && rm "$MAIL"
done done
} }
import_mails "techtrash" "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" import_mails "techtrash" "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
</code></pre>
``` ```
```html Quand un mail est importé, les données récupérées sont :
<p>Quand un mail est importé, les données récupérées sont :</p>
```
```html * Le sujet du mail
<ul> * La date du mail
<li>Le sujet du mail</li> * Le contenu HTML
<li>La date du mail</li> * Le contenu texte
<li>Le contenu HTML</li> * Les pièces jointes
<li>Le contenu texte</li>
<li>Les pièces jointes</li>
</ul>
```
```html Toutes ces données seront accessibles à la consultation.
<p>Toutes ces données seront accessibles à la consultation.</p>
```
```html => https://gitnet.fr/deblan/mail-rss L'application
<p><a href="https://gitnet.fr/deblan/mail-rss">L'application</a> s'appuie sur Symfony (en version de développement) et <a href="https://gitnet.fr/deblan/mail-rss">le code</a> est s'appuie sur Symfony (en version de développement) et
totalement libre 😄</p> => https://gitnet.fr/deblan/mail-rss le code
``` est totalement libre 😄

View file

@ -3,7 +3,4 @@
* 2020-11-19 10:39:00 * 2020-11-19 10:39:00
* Quick links * Quick links
```html Le PDG de FaceBook, Mark Zuckerberg, malmené par le sénateur Josh Hawley lors de son audition au Sénat américain. le 17 novembre 2020.
<p>Le PDG de FaceBook, Mark Zuckerberg, malmené par le sénateur Josh Hawley lors de son audition au Sénat américain.
le 17 novembre 2020.</p>
```

View file

@ -3,38 +3,17 @@
* 2020-12-09 09:46:52 * 2020-12-09 09:46:52
* Divers * Divers
```html > Après la loi sécurité globale et la loi séparatisme, le gouvernement poursuit
<blockquote> > son offensive généralisée visant à museler toute opposition politique.
<p>Après la loi sécurité globale et la loi séparatisme, le gouvernement poursuit > Mercredi dernier, les trois fichiers de « sécurité publique » (PASP, GIPASP et EASP)
son offensive généralisée visant à museler toute opposition politique. > ont été largement étendus par trois décrets (ici, ici et là). Ils
Mercredi dernier, les trois fichiers de « sécurité publique » (PASP, GIPASP et EASP) On y est, on peut maintenant être fiché pour nos opinions politiques, nos convictions philosophiques, religieuses ou notre appartenance syndicale.
ont été largement étendus par trois décrets (ici, ici et là). Ils</p>
</blockquote>
```
```html Alors pour reprendre un vieux débat sur la protection des données où on me répondait "je n'ai rien à cacher", ma réponse était systématiquement :
<p>On y est, on peut maintenant être fiché pour nos opinions politiques,
nos convictions philosophiques, religieuses ou notre appartenance syndicale.</p>
```
```html * Bien sur que si, tu as des choses à cacher car ta vie privée est par définition privée
<p>Alors pour reprendre un vieux débat sur la protection des données où on me répondait "je n'ai rien à cacher", * Dans un futur plus ou moins proche, on pourra te reprocher quelque chose encore toléré aujourd'hui.
ma réponse était systématiquement :</p>
```
```html Ce futur est maintenant le présent.
<ul>
<li>Bien sur que si, tu as des choses à cacher car ta vie privée est par définition privée</li>
<li>Dans un futur plus ou moins proche, on pourra te reprocher quelque chose encore toléré aujourd'hui.</li>
</ul>
```
```html En dehors de toute activité, nos simples opinions seront inscrites dans un fichier d'état. C'est très grave et nous avons avançons encore vers un état totalitaire. Je pense que le point de non retour à été atteint.
<p>Ce futur est maintenant le présent.</p>
```
```html
<p>En dehors de toute activité, nos simples opinions seront inscrites dans un fichier
d'état. C'est très grave et nous avons avançons encore vers un état totalitaire.
Je pense que le point de non retour à été atteint.</p>
```

View file

@ -3,57 +3,38 @@
* 2020-12-22 10:00:00 * 2020-12-22 10:00:00
* Divers * Divers
```html Cette année très particulière m'a quand même permis de consacrer plus de temps pour le logiciel libre que l'an passé.
<p>Cette année très particulière m'a quand même permis de consacrer plus de
temps pour le logiciel libre que l'an passé.</p>
```
```html Mes efforts se sont naturellement dirigés vers les outils que j'utilise et c'est Nextcloud et son écosystème sur lesquels je me suis concentré.
<p>Mes efforts se sont naturellement dirigés vers les outils que j'utilise et c'est
Nextcloud et son écosystème sur lesquels je me suis concentré.</p>
```
```html Mon plus gros projet de 2020 est
<p>Mon plus gros projet de 2020 est <a href="https://apps.nextcloud.com/apps/side_menu">Custom menu</a>, une application pour Nextcloud qui => https://apps.nextcloud.com/apps/side_menu Custom menu
permet de modifier le menu par défaut en proposant d'autres affichages. Je suis , une application pour Nextcloud qui permet de modifier le menu par défaut en proposant d'autres affichages. Je suis très content du résultat et beaucoup d'administrateurs ont décidé de l'installer sur leur instance. En effet, toutes versions confondues,
très content du résultat et beaucoup d'administrateurs ont décidé de l'installer => https://apps.nextcloud.com/apps/side_menu Custom menu
sur leur instance. En effet, toutes versions confondues, <a href="https://apps.nextcloud.com/apps/side_menu">Custom menu</a> a été a été téléchargé plus de 102 mille fois et les dernières versions sont installées sur environ 9000 instances.
téléchargé plus de 102 mille fois et les dernières versions sont installées sur
environ 9000 instances.</p>
```
```html J'ai réalisé du code pour faire évoluer l'application
<p>J'ai réalisé du code pour faire évoluer l'application <a href="https://apps.nextcloud.com/apps/forms">Forms</a> on y ajoutant de => https://apps.nextcloud.com/apps/forms Forms
nouveaux types de champ. Cela n'a pas du tout été évident d'échanger avec on y ajoutant de nouveaux types de champ. Cela n'a pas du tout été évident d'échanger avec l'équipe de développement mais j'espère voir arriver ces évolutions dans une prochaine version.
l'équipe de développement mais j'espère voir arriver ces évolutions dans une
prochaine version.</p>
```
```html Ensuite, j'ai traduis
<p>Ensuite, j'ai traduis <a href="https://apps.nextcloud.com/apps/analytics">Analytics</a> en français même si je ne suis pas satisfait. => https://apps.nextcloud.com/apps/analytics Analytics
Je vais faire de nouvelles traductions l'année prochaine ! Cette application en français même si je ne suis pas satisfait. Je vais faire de nouvelles traductions l'année prochaine ! Cette application permet de mettre en graphique des données stockées sur Nextcloud ou accessibles depuis une API. C'est encore relativement basique mais c'est tout de même très pratique.
permet de mettre en graphique des données stockées sur Nextcloud ou accessibles
depuis une API. C'est encore relativement basique mais c'est tout de même très pratique.</p>
```
```html Même si le développement n'est pas très actif, j'utilise l'application
<p>Même si le développement n'est pas très actif, j'utilise l'application <a href="https://apps.nextcloud.com/apps/printer">Printer</a> => https://apps.nextcloud.com/apps/printer Printer
et j'ai proposé du code pour gérer les permissions et réduire les risques et j'ai proposé du code pour gérer les permissions et réduire les risques d'injection de code.
d'injection de code.</p>
```
```html Dans un contexte très différent de Nextcloud, j'ai apporté un correctif au projet
<p>Dans un contexte très différent de Nextcloud, j'ai apporté un correctif au => https://pdnsmanager.org/ PDNS Manager
projet <a href="https://pdnsmanager.org/">PDNS Manager</a>, une interface web qui permet de gérer les enregistrements , une interface web qui permet de gérer les enregistrements d'un serveur
d'un serveur <a href="https://www.powerdns.com">Powerdns</a>.</p> => https://www.powerdns.com Powerdns
``` .
```html J'ai récemment publié
<p>J'ai récemment publié <a href="https://www.deblan.io/post/591/mail-rss-transformer-des-mails-en-flux-rss">Mail RSS</a>, une application pour transformer des => https://www.deblan.io/post/591/mail-rss-transformer-des-mails-en-flux-rss Mail RSS
emails en flux RSS. Enfin, un peu plus tôt cette année, j'ai mis en ligne les sources du , une application pour transformer des emails en flux RSS. Enfin, un peu plus tôt cette année, j'ai mis en ligne les sources du site web qui permet de
site web qui permet de <a href="https://www.deblan.io/post/580/monitoring-d-un-terrarium">monitorer le terrarium</a> de la maison.</p> => https://www.deblan.io/post/580/monitoring-d-un-terrarium monitorer le terrarium
``` de la maison.
```html Je crois avoir fait le tour de mon activité en espérant poursuivre en 2021 !
<p>Je crois avoir fait le tour de mon activité en espérant poursuivre en 2021 !</p>
```

View file

@ -3,36 +3,27 @@
* 2021-02-12 13:09:02 * 2021-02-12 13:09:02
* Développement * Développement
```html Cela fait des années que j'utilise ZSH comme interpréteur de commande. En complément, j'utilise également des plugins disponibles via l'excellent projet
<p>Cela fait des années que j'utilise ZSH comme interpréteur de commande. En complément, => https://ohmyz.sh/ oh-my-zsh
j'utilise également des plugins disponibles via l'excellent projet <a href="https://ohmyz.sh/">oh-my-zsh</a>.</p> .
```
```html J'ai harmonisé l'ensemble des configurations sur mes différents accès. Pour ce faire, j'ai principalement travaillé sur le prompt et je publie aujourd'hui le code de mon thème.
<p>J'ai harmonisé l'ensemble des configurations sur mes différents accès. Pour ce faire,
j'ai principalement travaillé sur le prompt et je publie aujourd'hui le code de mon thème.</p>
```
```html Voici une capture d'écran qui décrit l'ensemble des fonctionnalités de mon thème :
<p>Voici une capture d'écran qui décrit l'ensemble des fonctionnalités de mon thème :</p>
```
```html * Une gestion des codes de sortie avec différentes couleurs et éventuellement le code
<ul> * L'affichage de l'heure
<li>Une gestion des codes de sortie avec différentes couleurs et éventuellement le code</li> * L'affichage de l'utilisateur et de la machine
<li>L'affichage de l'heure</li> * Changement de couleur si l'utilisateur⋅trice est privilégié⋅e
<li>L'affichage de l'utilisateur et de la machine</li> * Le chemin courant avec un retour à la ligne s'il dépasse une certaine longueur
<li>Changement de couleur si l'utilisateur⋅trice est privilégié⋅e</li> * Intégration de GIT (nécessite
<li>Le chemin courant avec un retour à la ligne s'il dépasse une certaine longueur</li> => https://github.com/olivierverdier/zsh-git-prompt olivierverdier/zsh-git-prompt
<li>Intégration de GIT (nécessite <a href="https://github.com/olivierverdier/zsh-git-prompt">olivierverdier/zsh-git-prompt</a>)</li> )
</ul>
```
```html ```html
<p><img src="https://upload.deblan.org/u/2021-02/60266e22.jpg" alt="Mon thème pour ZSH" title="Mon thème pour ZSH" style="padding: 10px; background: #031019"></p> <p><img src="https://upload.deblan.org/u/2021-02/60266e22.jpg" alt="Mon thème pour ZSH" title="Mon thème pour ZSH" style="padding: 10px; background: #031019"></p>
``` ```
```html Le code source est disponible sur
<p>Le code source est disponible sur <a href="https://gitnet.fr/deblan/gists/src/branch/master/zsh/themes/deblan/deblan.zsh-theme">cette page</a> => https://gitnet.fr/deblan/gists/src/branch/master/zsh/themes/deblan/deblan.zsh-theme cette page
et il est totalement libre.</p> et il est totalement libre.
```

View file

@ -3,17 +3,6 @@
* 2021-02-12 00:11:00 * 2021-02-12 00:11:00
* Quick links * Quick links
```html En 2 mois, Google a licencié ses deux co-directrices de l'éthique des IA, Timnit Gebru et Margarett Mitchell. Pendant ce temps, Google a aussi développé, et probablement bientôt déployé, des algorithmes entraînés sur d'immenses quantités de données non-sécurisées, de manière extrêmement opaque, ce qui avait été critiqué par les deux co-directrices dans un article de recherche.
<p>En 2 mois, Google a licencié ses deux co-directrices de l'éthique des IA, Timnit
Gebru et Margarett Mitchell. Pendant ce temps, Google a aussi développé, et probablement bientôt
déployé, des algorithmes entraînés sur d'immenses quantités de données non-sécurisées,
de manière extrêmement opaque, ce qui avait été critiqué par les deux co-directrices
dans un article de recherche.</p>
```
```html Le déploiement précipité d'algorithmes très dangereux sans aucune audit interne ni externe, sur les téléphones de milliards d'humains, me semble absolument terrifiant. Mais le plus effrayant, c'est que cette histoire est complètement ignorée par le grand public, les médias, l'industrie de la tech et le monde académique...
<p>Le déploiement précipité d'algorithmes très dangereux sans aucune audit interne
ni externe, sur les téléphones de milliards d'humains, me semble absolument terrifiant.
Mais le plus effrayant, c'est que cette histoire est complètement ignorée par le grand
public, les médias, l'industrie de la tech et le monde académique...</p>
```

View file

@ -3,27 +3,27 @@
* 2021-03-31 10:08:00 * 2021-03-31 10:08:00
* Le blog, Développement * Le blog, Développement
```html Mon blog a été mon premier vrai projet quand j'ai commencé de faire du développement web et il me suit toujours aujourd'hui.
<p>Mon blog a été mon premier vrai projet quand j'ai commencé de faire du développement web et il me suit toujours aujourd'hui.</p>
```
```html Beaucoup de versions ont été réalisées car elles suivent mon évolution et les technologies que j'utilise. La précédente mouture était basée sur Trinity, un
<p>Beaucoup de versions ont été réalisées car elles suivent mon évolution et les technologies que j'utilise. La précédente mouture était basée sur Trinity, un <a href="https://fr.wikipedia.org/wiki/Content_management_framework">CMF</a> basé sur Symfony 2, développé par <a href="https://www.webetdesign.com/">web&amp;design</a> et sur lequel j'ai beaucoup travaillé. Trinity est puissant mais la conception n'est plus d'actualité et la migration vers une version récente de Symfony est impossible.<br /> => https://fr.wikipedia.org/wiki/Content_management_framework CMF
Je travaille sur la refonte du site web de l'association <a href="https://www.tinternet.net/">Tinternet &amp; cie</a> et s'est rapidement posée la question du CMS. Cela m'a permis d'entreprendre l'écriture de Murph, un <a href="https://fr.wikipedia.org/wiki/Content_management_framework">CMF</a> qui repose sur Symfony 5 et qui reprend les bonnes idées de Trinity avec une conception qui tient plus la route.</p> basé sur Symfony 2, développé par
``` => https://www.webetdesign.com/ web&design
et sur lequel j'ai beaucoup travaillé. Trinity est puissant mais la conception n'est plus d'actualité et la migration vers une version récente de Symfony est impossible.
Je travaille sur la refonte du site web de l'association
=> https://www.tinternet.net/ Tinternet & cie
et s'est rapidement posée la question du CMS. Cela m'a permis d'entreprendre l'écriture de Murph, un
=> https://fr.wikipedia.org/wiki/Content_management_framework CMF
qui repose sur Symfony 5 et qui reprend les bonnes idées de Trinity avec une conception qui tient plus la route.
```html Tandis que `Trinity` était un hommage à Matrix, `Murph` est tout droit tiré d'Interstellar, un film pour lequel j'ai une affection très particulière. Voici quelques images du backoffice.
<p>Tandis que <code>Trinity</code> était un hommage à Matrix, <code>Murph</code> est tout droit tiré d'Interstellar, un film pour lequel j'ai une affection très particulière. Voici quelques images du backoffice.</p>
```
```html => https://upload.deblan.org/u/2021-03/606429c7.png [IMG]
<p><img src="https://upload.deblan.org/u/2021-03/606429c7.png" alt="" /></p>
```
```html => https://upload.deblan.org/u/2021-03/606429b4.png [IMG]
<p><img src="https://upload.deblan.org/u/2021-03/606429b4.png" alt="" /></p>
```
```html Si le projet vous intéresse, le
<p>Si le projet vous intéresse, le <a href="https://gitnet.fr/deblan/deblan.io-murph">code source du blog est disponible ici</a> et celui du <a href="https://gitnet.fr/deblan/murph-skeleton">squelette de Murph se trouve là</a>.</p> => https://gitnet.fr/deblan/deblan.io-murph code source du blog est disponible ici
``` et celui du
=> https://gitnet.fr/deblan/murph-skeleton squelette de Murph se trouve là
.

View file

@ -3,94 +3,63 @@
* 2021-04-07 10:30:00 * 2021-04-07 10:30:00
* Informatique * Informatique
```html Les VPN ont le vent en poupe depuis quelques temps. Rares sont les vidéastes qui n'auront pas fait l'éloge de services comme NordVPN. Cependant, avant de permettre de visualiser le contenu US de Netflix, un VPN permet de créer un réseau entre plusieurs machines au travers d'autres réseaux comme Internet. Ainsi, quand des machines sont connectées au même réseau VPN, elles peuvent communiquer de la même façon que dans un réseau local. C'est donc très intéressant lorsque l'ont souhaites isoler une application d'internet en la rendant tout de même accessible dans ce réseau isolé.
<p>Les VPN ont le vent en poupe depuis quelques temps. Rares sont les vidéastes qui n'auront pas fait l'éloge de services comme NordVPN. Cependant, avant de permettre de visualiser le contenu US de Netflix, un VPN permet de créer un réseau entre plusieurs machines au travers d'autres réseaux comme Internet. Ainsi, quand des machines sont connectées au même réseau VPN, elles peuvent communiquer de la même façon que dans un réseau local. C'est donc très intéressant lorsque l'ont souhaites isoler une application d'internet en la rendant tout de même accessible dans ce réseau isolé.</p>
```
```html => https://upload.deblan.org/u/2021-04/606cc06e.png VPN [IMG]
<p><img src="https://upload.deblan.org/u/2021-04/606cc06e.png" alt="VPN" /></p>
```
```html Il existe tout un tas de solutions pour réaliser son VPN. La plus connue est certainement OpenVPN mais je lui préfère Wireguard pour sa très grande simplicité d'installation.
<p>Il existe tout un tas de solutions pour réaliser son VPN. La plus connue est certainement OpenVPN mais je lui préfère Wireguard pour sa très grande simplicité d'installation.</p>
```
```html Dans mon cas d'usage, j'ai un serveur Wireguard sous Debian et des clients qui tournent principalement sur Debian mais aussi Windows et Android.
<p>Dans mon cas d'usage, j'ai un serveur Wireguard sous Debian et des clients qui tournent principalement sur Debian mais aussi Windows et Android.</p>
```
```html Sous Debian 10, il est nécessaire d'utiliser les dépots backports pour insaller Wireguard.
<p>Sous Debian 10, il est nécessaire d'utiliser les dépots backports pour insaller Wireguard.</p>
```
```html ```{.language-bash}
<pre><code class="language-bash">echo "deb http://deb.debian.org/debian buster-backports main contrib non-free" \ echo "deb http://deb.debian.org/debian buster-backports main contrib non-free" \
| sudo tee /etc/apt/sources.list.d/buster-backports.list | sudo tee /etc/apt/sources.list.d/buster-backports.list
</code></pre>
``` ```
```html Une fois le dépot ajouté, il suffit de mettre à jour la liste des paquets et d'installer Wireguard.
<p>Une fois le dépot ajouté, il suffit de mettre à jour la liste des paquets et d'installer Wireguard.</p>
```{.language-bash}
sudo apt update && sudo apt install wireguard
``` ```
```html Sur d'autres distributions, il faudra installer `wireguard-tools` mais je vous laisse vous référer à
<pre><code class="language-bash">sudo apt update &amp;&amp; sudo apt install wireguard => https://www.wireguard.com/install/ la page d'installation
</code></pre> pour plus d'informations.
```
```html En complément de Wireguard, je vous invite à installer `iptables` et `resolvconf` sur le serveur et uniquement `resolvconf` sur vos clients linux. `iptables` va permettre de realiser le routage des paquets tandis que `resolvconf` va permettre de gérer les DNS via la connexion VPN.
<p>Sur d'autres distributions, il faudra installer <code>wireguard-tools</code> mais je vous laisse vous référer à <a href="https://www.wireguard.com/install/">la page d'installation</a> pour plus d'informations.</p>
```
```html Une fois l'installation terminée, on va générer un couple de clés sur le serveur.
<p>En complément de Wireguard, je vous invite à installer <code>iptables</code> et <code>resolvconf</code> sur le serveur et uniquement <code>resolvconf</code> sur vos clients linux. <code>iptables</code> va permettre de realiser le routage des paquets tandis que <code>resolvconf</code> va permettre de gérer les DNS via la connexion VPN.</p>
```
```html ```{.language-bash}
<p>Une fois l'installation terminée, on va générer un couple de clés sur le serveur.</p> cd /etc/wireguard
```
```html
<pre><code class="language-bash">cd /etc/wireguard
umask 077 umask 077
wg genkey | tee privateKey | wg pubkey &gt; publicKey wg genkey | tee privateKey | wg pubkey > publicKey
</code></pre>
``` ```
```html Suite à ces commandes, 2 nouveaux fichiers ont été générés : `privateKey` contient la clé privée et `publicKey` contient la clé publique. Il faudra conserver la clé privée secrète tandis que la clé publique va permettre d'identifier le serveur auprès des clients. Son contenu sera donc partagé sur d'autres machines. Vous pouvez réaliser la même opération sur vos machines clientes qui seront elles aussi identifiées avec leur clé publique. Les interfaces graphiques de Wireguard réaliseront la générations des clés automatiquement. Bien sur, vous pouvez créer autant de clés que vous le désirez. Je recommande de créer un couple de clé par serveur VPN.
<p>Suite à ces commandes, 2 nouveaux fichiers ont été générés : <code>privateKey</code> contient la clé privée et <code>publicKey</code> contient la clé publique. Il faudra conserver la clé privée secrète tandis que la clé publique va permettre d'identifier le serveur auprès des clients. Son contenu sera donc partagé sur d'autres machines. Vous pouvez réaliser la même opération sur vos machines clientes qui seront elles aussi identifiées avec leur clé publique. Les interfaces graphiques de Wireguard réaliseront la générations des clés automatiquement. Bien sur, vous pouvez créer autant de clés que vous le désirez. Je recommande de créer un couple de clé par serveur VPN.</p>
```
```html => https://upload.deblan.org/u/2021-04/606cd5c8.jpg Exemples [IMG]
<p><img src="https://upload.deblan.org/u/2021-04/606cd5c8.jpg" alt="Exemples" /></p>
```
```html Nous allons ensuite générer le fichier `/etc/wireguard/wg0.conf` où `wg0` désigne le nom de l'interface réseau qui sera créée par wireguard. Selon vos besoins, vous pourrez en ajouter autant que vous le désirez.
<p>Nous allons ensuite générer le fichier <code>/etc/wireguard/wg0.conf</code> où <code>wg0</code> désigne le nom de l'interface réseau qui sera créée par wireguard. Selon vos besoins, vous pourrez en ajouter autant que vous le désirez.</p>
```
```html ```{.language-bash}
<pre><code class="language-bash">[Interface] [Interface]
Address = 10.0.0.1/24 Address = 10.0.0.1/24
SaveConfig = false SaveConfig = false
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERAD = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERAD = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820 ListenPort = 51820
PrivateKey = clé_privée_du_serveur PrivateKey = clé_privée_du_serveur
</code></pre>
``` ```
```html Dans cette configuration, je définie la page IP du réseau (`10.0.0.1/24`) et l'IP du serveur (`10.0.0.1`). Veillez à modifier le nom de l'interface connectée à Internet (ici `eth0`). Insérer également le contenu de la clé privée à la dernière ligne. `SaveConfig` à `false` indique que le fichier pourra être modifié pendant que le serveur est lancé. Enfin, on indique que le serveur écoute sur le port `51820`. Vous pourrez répéter cette opération sur vos client mais vous devrez omettre les lignes avec `PostUp`, `PostDown` et `ListenPort`. Vous devrez également changer `Address` en incrémentant l'ip et en fixant la page à 32 (exemple : `10.0.0.2/32`, `10.0.0.3/32`, etc.).
<p>Dans cette configuration, je définie la page IP du réseau (<code>10.0.0.1/24</code>) et l'IP du serveur (<code>10.0.0.1</code>). Veillez à modifier le nom de l'interface connectée à Internet (ici <code>eth0</code>). Insérer également le contenu de la clé privée à la dernière ligne. <code>SaveConfig</code> à <code>false</code> indique que le fichier pourra être modifié pendant que le serveur est lancé. Enfin, on indique que le serveur écoute sur le port <code>51820</code>.
Vous pourrez répéter cette opération sur vos client mais vous devrez omettre les lignes avec <code>PostUp</code>, <code>PostDown</code> et <code>ListenPort</code>. Vous devrez également changer <code>Address</code> en incrémentant l'ip et en fixant la page à 32 (exemple : <code>10.0.0.2/32</code>, <code>10.0.0.3/32</code>, etc.).</p>
```
```html Enfin, il faudra renseigner la liste des clients du réseau VPN en utilisant leur clé publique et l'adresse IP qu'ils auront configurée.
<p>Enfin, il faudra renseigner la liste des clients du réseau VPN en utilisant leur clé publique et l'adresse IP qu'ils auront configurée.</p>
```
```html ```{.language-bash}
<pre><code class="language-bash">[Interface] [Interface]
... ...
[Peer] [Peer]
@ -100,15 +69,12 @@ AllowedIPs = 10.0.0.2/32
[Peer] [Peer]
PublicKey = clé_publique_du_client_2 PublicKey = clé_publique_du_client_2
AllowedIPs = 10.0.0.3/32 AllowedIPs = 10.0.0.3/32
</code></pre>
``` ```
```html Coté client, il faudra renseigner le serveur :
<p>Coté client, il faudra renseigner le serveur :</p>
```
```html ```{.language-bash}
<pre><code class="language-bash">[Interface] [Interface]
... ...
[Peer] [Peer]
@ -116,14 +82,8 @@ PublicKey = clé_publique_du_server
AllowedIPs = 10.0.0.0/24 AllowedIPs = 10.0.0.0/24
Endpoint = ip.du.serveur.vpn:51820 Endpoint = ip.du.serveur.vpn:51820
PersistentKeepalive = 20 PersistentKeepalive = 20
</code></pre>
``` ```
```html Dans cet exemple, j'ai définie que seuls les paquets à destination du réseau VPN seront routés dans le VPN : `AllowedIPs = 10.0.0.0/24`. Si vous voulez router tout votre traffic, saisissez `AllowedIPs = 0.0.0.0/0`. Pour ajouter plusieurs plages, il suffit de les séparer par des virgules. Dans le bloc `[Interface]` des clients, vous avez la possibilté d'ajouter une propriété `DNS` afin de paramétrer un ou plusieurs serveurs DNS. Les serveurs DNS devront être accessibles par le serveur VPN ou le client selon le paramétrage de `AllowedIPs`. Attention, les DNS seront paramétrés comme des DNS classiques et ils seront sollicités pour résoudre tous les noms.
<p>Dans cet exemple, j'ai définie que seuls les paquets à destination du réseau VPN seront routés dans le VPN : <code>AllowedIPs = 10.0.0.0/24</code>. Si vous voulez router tout votre traffic, saisissez <code>AllowedIPs = 0.0.0.0/0</code>. Pour ajouter plusieurs plages, il suffit de les séparer par des virgules.
Dans le bloc <code>[Interface]</code> des clients, vous avez la possibilté d'ajouter une propriété <code>DNS</code> afin de paramétrer un ou plusieurs serveurs DNS. Les serveurs DNS devront être accessibles par le serveur VPN ou le client selon le paramétrage de <code>AllowedIPs</code>. Attention, les DNS seront paramétrés comme des DNS classiques et ils seront sollicités pour résoudre tous les noms.</p>
```
```html Une fois les configuration effectuée, vous pourrez démarrer ou arrêter la connexion VPN avec `sudo wg-quick up wg0` et `wg-quick down wg0` sur le serveur et sur les clients. Vous pourrez monitorer les connexions avec la commande `sudo wg`.
<p>Une fois les configuration effectuée, vous pourrez démarrer ou arrêter la connexion VPN avec <code>sudo wg-quick up wg0</code> et <code>wg-quick down wg0</code> sur le serveur et sur les clients. Vous pourrez monitorer les connexions avec la commande <code>sudo wg</code>.</p>
```