Mirror the French docs onto the English structure
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
title: Python
|
||||
icon: i-lucide-file-code-2
|
||||
@@ -0,0 +1,33 @@
|
||||
---
|
||||
title: Nvidia Stock Bot
|
||||
description: Un bot Python qui surveille la disponibilité des GPU en temps réel et envoie des alertes Discord, créé lors de la pénurie de la série RTX 5000.
|
||||
---
|
||||
|
||||
|
||||
:ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60}
|
||||
|
||||
Depuis déjà 4 ans, la pénurie de materiel electronique fait rage. Et les cartes graphiques ne sont pas épargnées. En 2020, j'ai du attendre 2 mois pour obtenir mon exemplaire de RTX 3080, et pour cela j'ai du m'inscrire sur [JV Hardware](https://discord.gg/gxffg3GA96) où une poignée de geek avait mis en place un bot qui envoyait un ping lorsqu'elles étaient disponibles.
|
||||
|
||||
4 ans après et 5000 abonnés plus tard, vient la sortie des RTX 5000. Et là aucun bot dispo sur le marché ne semble fonctionner correctement. Je ne parle même pas d'un certain "influenceur" qui se permet de faire payer l'accès à son bot qui ne fonctionne meme pas. Il copie à la main les alertes provenant d'autres serveurs, comme le notre qui ont résolu le problème.
|
||||
|
||||
Quoiqu'il en soit, désireux d'obtenir une RTX 5090 pour ma machine dédiée à l'IA, je me suis dit qu'il était peut etre le temps de plonger dans le monde de python et de ChatGPT pour m'épauler. A l'aide d'un autre membre du serveur, KevOut, qui a principalement guidé sur le principe de départ et les sources des différentes API, j'ai réussi à obtenir un bot propre, fonctionnel, qui envoie différents types d'alertes via Discord. Avec un simple conteneur docker à déployer.
|
||||
|
||||
Après moult déconvenues, je suis passé de ceci :
|
||||
|
||||

|
||||
|
||||
à cela :
|
||||
|
||||

|
||||
|
||||
Et plus récemment :
|
||||
|
||||

|
||||
|
||||
J'ai également eu la chance d'être référencé dans la fameuse [newsletter selfhost](https://selfh.st/weekly/2025-07-11/) !
|
||||
|
||||
Plus d'infos directement sur le repo :
|
||||
|
||||
::card{title="🐋 __Nvidia Stock Bot__" to="https://git.djeex.fr/Djeex/nvidia-stock-bot" target="_blank"}
|
||||
Robot d'alerte de stock de GPU Nvidia
|
||||
::
|
||||
@@ -0,0 +1,33 @@
|
||||
---
|
||||
title: Adguard CIDRE
|
||||
description: Un script Python pour synchroniser automatiquement les listes CIDR d'AdGuard Home et sécuriser votre serveur DNS auto-hébergé exposé sur internet.
|
||||
---
|
||||
|
||||
|
||||
:ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60}
|
||||
|
||||
Adguard Home est une solution merveilleuse pour filter ses requêtes DNS et ainsi se débarasser de la publicité ou des DNS des fournisseurs d'accès, ou encore réécrire des requetes.
|
||||
|
||||
Quand c'est en local, c'est très chouette. Mais quand on veut que tout ses appareils en profitent même à l'exterieur, on est obligé de l'exposer sur le net. Et n'importe qui peut s'en servir et saturer le petit remote à 1€ qu'on a pris pour l'heberger.
|
||||
|
||||
Adguard permet d'avoir des listes de clients autorisés ou bloqués. Problème, pour autoriser un client il faut son IP, et dans le cas d'un téléphone sur le réseau mobile, beh elle change régulièrement. L'idée est donc plutot de bloquer des listes générales plutot que d'autoriser des IP qui de toute façon changent régulièrement.
|
||||
|
||||
CIDRE est un outil qui permet de synchroniser des listes de plages IP géolocalisées mises à jour régulièrement avec un pare feu. Plutot que de faire tourner CIDRE sur le remote complet avec des règles de pare feu complexes, je me suis dit qu'il fallait simplement s'arranger pour ajouter les plages IP à jour que CIDRE propose au systeme de block list d'adguard, selon les pays que l'on souhaite bloquer.
|
||||
|
||||
C'est ainsi qu'est né Adguard CIDRE Sync, un conteneur qui synchronise régulièrement la block list d'Adguard avec les plages IP recensées par CIDRE à la fréquence que vous voulez.
|
||||
|
||||
L'idée etant de :
|
||||
|
||||
- Backup le fichier de conf d'Adguard au premier lancement (le fichier jamais touché par le robot est ainsi conservé au cas où)
|
||||
- Télécharger la liste des pays selectionnés via une variable d'environnement
|
||||
- Permettre d'ajouter soi-meme des IP "à la main" dans un fichier
|
||||
- Concaténer le tout, backup le fichier de conf (dernière update), et injecter la liste dans la bonne section du fichier de conf d'Adguard
|
||||
- Recharger Adguard en relançant le container (accès au socket via docker socket proxy pour limiter les permissions)
|
||||
|
||||
Tout ceci de manière complètement autonome, avec une fréquence choisie en variable d'environnement dans la conf du compose.
|
||||
|
||||
Plus d'infos directement sur le repo :
|
||||
|
||||
::card{title="🐋 __Adguard CIDRE Sync__"}
|
||||
[Robot de synchronisation de la blocklist d'Adguard](https://git.djeex.fr/Djeex/adguard-cidre)
|
||||
::
|
||||
@@ -0,0 +1,54 @@
|
||||
---
|
||||
title: Lumeex
|
||||
description: Lumeex est un générateur de galerie photo statique en Python, minimaliste, léger et entièrement personnalisable sans CMS.
|
||||
---
|
||||
|
||||
|
||||
:ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60}
|
||||
<div align="center">
|
||||
<img src="https://git.djeex.fr/Djeex/lumeex/raw/branch/main/illustration/logo.svg" alt="Lumeex Screenshot" width="300"/>
|
||||
</div>
|
||||
<div align="center">
|
||||
<p>Yet another minimalist, lightweight photo gallery static site generator.</p>
|
||||
</div>
|
||||
<div align="center">
|
||||
<img src="https://git.djeex.fr/Djeex/lumeex/raw/branch/main/illustration/lumeex.png" alt="Lumeex Screenshot" />
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
Amateur de photographie, j'ai passé plusieurs semaines à chercher un framework avec une galerie photo qui rende mieux qu'Instagram. Je souhaitais quelque chose qui mette en avant les photos plutôt que l'auteur, et qui rende chaque visite unique en chargeant les photos dans un ordre aléatoire, tout en pouvant filtrer et trier par tag ou association de tags.
|
||||
|
||||
Finalement, je n'ai rien trouvé qui faisait exactement ce que je voulais, et lorsque quelque chose s'en approchait, c'était toujours via de lourds CMS. J'ai alors décidé de faire un site statique à la main, à l'ancienne, avec Notepad++. Me débrouillant assez bien en HTML/CSS et un peu en JavaScript, je suis vite tombé sur un résultat sympa, durant mes vacances, entre deux sessions à la plage. Après tout, un bon ouvrier doit avoir de bons outils, et il n'y a pas de meilleurs outils que ceux que l'on crée soi-même.
|
||||
|
||||
Puis je me suis dit qu'il serait peut-être pas mal d'automatiser certaines tâches, comme les formats de favicons, le redimensionnement et la conversion des images, la génération de la galerie au lieu de tout saisir à la main, la création des `robots.txt` et `sitemap`… Et je me suis remis à Python.
|
||||
|
||||
Finalement, après avoir obtenu de bons résultats, je me suis dit autant aller jusqu'au bout : un framework complet permettant de générer une galerie sur un site statique, en remplissant juste les informations du site dans un fichier de config et avec un peu de personnalisation visuelle, sans toucher au code.
|
||||
|
||||
C'est ainsi qu'est né **Lum[eex]{style="color: #1ad6ff"}**.
|
||||
|
||||
<div align="center">
|
||||
<img src="https://git.djeex.fr/Djeex/lumeex/raw/branch/main/illustration/lumeex-webui.png" alt="Lumeex Screenshot" />
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
### Et voilà le bousin
|
||||
|
||||
:::div{class="relative"}
|
||||
:ellipsis{left=0px width=40rem top=10rem blur=140px}
|
||||
:::
|
||||
|
||||
::card-group
|
||||
::card{icon="i-noto-open-book" title="Documentation" to="https://lumeex.djeex.fr" target="_blank"}
|
||||
Accéder à la doc
|
||||
::
|
||||
|
||||
::card{icon="i-simple-icons-gitea" title="Repository" to="https://git.djeex.fr/Djeex/lumeex" target="_blank"}
|
||||
Voir le repo
|
||||
::
|
||||
|
||||
::card{icon="i-fluent-color-design-ideas-48" title="Demo" to="https://modern.djeex.fr" target="_blank"}
|
||||
Explorer la démo
|
||||
::
|
||||
::
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
title: Instameex
|
||||
description: Instameex est un outil Docker pour fusionner des exports SDR et HDR en un JPEG avec gain map prêt pour l'upload HDR sur Instagram.
|
||||
---
|
||||
|
||||
|
||||
:ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60}
|
||||
<div align="center">
|
||||
<img src="https://git.djeex.fr/Djeex/instameex/raw/branch/main/src/assets/img/logo-long.svg" alt="Instameex Screenshot" width="300"/>
|
||||
</div>
|
||||
<div align="center">
|
||||
<p>Mixez vos photos SDR et HDR pour obtenir un fichier parfait pour Instagram</p>
|
||||
</div>
|
||||
<div align="center">
|
||||
<img src="https://git.djeex.fr/Djeex/instameex/raw/branch/main/illustration/instameex-illustration.png" width="640" alt="Instameex Screenshot" />
|
||||
</div>
|
||||
---
|
||||
|
||||
Il n'y a rien de plus frustrant que la gestion du HDR d'Instagram. Ce dernier compresse et démolit les gainmaps, et au moindre changement de ratio ou de taille, supprime purement et simplement le HDR. Quant à Lightroom, son système de "SDR preview" est tout bonnement inacceptable, ne permettant pas d'obtenir des résultats corrects. Jusqu'ici, lorsque l'on veut poster sur Instagram, il faut choisir entre un SDR potable et un HDR déficient, ou l'inverse.
|
||||
|
||||
Pourquoi ne pas tout simplement éditer pleinement son fichier SDR d'une part, son fichier HDR d'une autre part, et recalculer une gainmap à partir de ces deux fichiers parfaits ?
|
||||
Quelques aventuriers se sont déjà lancés sur ce chemin, notamment avec un plugin [Adobe Lightroom Classic](https://github.com/karachungen/lightroom-plugin-export-hdr). Mais jugez-moi comme vous voulez, je n'utilise que Lightroom CC, qui ne gère pas les plugins.
|
||||
|
||||
Je me suis alors inspiré d'un [fork du premier projet](https://github.com/kostis-kounadis/instagram-hdr-assembler) qui a donné lieu au plugin LrC, pour créer un front, déployable facilement avec Docker. On ne va pas se mentir, cela a été un bon moyen de tester mon abonnement Claude Code. Et je dois avouer que c'est très impressionnant de le voir créer ses propres environnements, faire des tests de bout en bout, auto-corriger son code, et écrire des bilans détaillés. J'ai quand même tout relu, je vous rassure. Et j'ai énormément appris sur les principes du HDR, des gainmaps, des courbes HLG/PQ, des espaces colorimétriques, et j'en passe.
|
||||
|
||||
En gros, voilà ce que donne mon workflow à présent pour poster sur Insta :
|
||||
|
||||

|
||||
|
||||
Je vous présente donc **Instam[eex]{style="color: #1ad6ff"}**
|
||||
|
||||
---
|
||||
### Et voilà le résultat
|
||||
|
||||
:::div{class="relative"}
|
||||
:ellipsis{left=0px width=40rem top=10rem blur=140px}
|
||||
:::
|
||||
|
||||
::card-group
|
||||
::card{title="🐋 __Instameex__" to="https://git.djeex.fr/Djeex/instameex" target="_blank"}
|
||||
Accéder au repo
|
||||
::
|
||||
|
||||
::card{title="🌍 __Version en ligne__" to="https://instameex.djeex.fr" target="_blank"}
|
||||
Convertir en ligne
|
||||
::
|
||||
::
|
||||
Reference in New Issue
Block a user