PROJET AUTOBLOG


Korben

source: Korben

⇐ retour index

WirePiUS + RaSoPle pour faire passer tous vos téléchargement au travers d’un VPN !

mardi 5 septembre 2023 à 09:00

Aujourd’hui, je voudrais vous parler de deux projets géniaux que j’ai récemment découverts – WirePiUS et RaSoPle. Ces projets fonctionnent tous les deux avec Docker-compose et sont incroyablement simples à déployer.

WirePiUS combine WireGuard, Pi-Hole, Unbound et Stubby, vous offrant un VPN fiable et sécurisé avec DNS caching et DNS over TLS.

RaSoPle, quant à lui, combine de nombreux outils tels que Radarr, Sonarr, Lidarr, Jackett, flaresolverr, rdt-client, Plex, Emby, ou encore Jellyfin.

Étant donné que ces deux projets sont liés en termes de fonctionnalités, je vais vous les présenter ensemble.

Une fois WirePiUS installé sur votre machine, à l’aide de Docker, vous pourrez profiter d’un serveur VPN personnel avec blocage de publicités (via PiHole), de mise en cache DNS (via Unbound), et de DNS sécurisé (ia Stubby). Évidemment, les services ne sont pas exposés publiquement afin de garantir la sécurité et la confidentialité. Cerise sur le gâteau : les architectures supportées par le projet incluent x86-64, arm64, Raspberry-Ubuntu et Raspberry-Raspbian.

Une fois le dépôt cloné, le terminal affichera des codes QR que vous pouvez utiliser pour configurer facilement WireGuard sur votre smartphone. Notez quand même que les fichiers de configuration se trouvent dans le dossier wirepius-radarr-sonarr/WireHoleS/wireguard. Le sous-réseau interne est défini par défaut sur 10.6.0.0 et le serveur DNS utilisé par les clients VPN sera joignable sur l’IP 10.2.0.100. Si aucun fichier wg0.conf n’est trouvé (peut-être lors d’une installation initiale), des fichiers de configuration de serveur et de client/peer seront alors générés.

Comme mentionné dans la documentation, je vous recommande d’utiliser la configuration ‘Split tunnel’, qui modifie les AllowedIps de votre client WireGuard en 10.2.0.0/24 afin de ne faire passer par le tunnel VPN que le dashboard web et le trafic DNS. Accédez ensuite à PiHole en vous connectant à WireGuard et en allant sur l’url http://10.2.0.100/admin. Le mot de passe est vide, sauf si vous l’avez spécifié dans docker-compose.yml.

Passons maintenant RaSoPle, un autre projet Docker-compose qui comme je le disais, combine Radarr, Sonarr, Lidarr, Jackett, flaresolverr, rdt-client, Plex, Emby et Jellyfin. Cet outil se comporte comme un chef d’orchestre qui supervise tous vos téléchargements, l’accès à différentes sources de médias et la diffusion de votre contenu préféré, tout cela dans un seul conteneur Docker.

Au moment de déployer ces projets, vous devrez quand même faire quelques ajustements pour vous assurer que les différents éléments fonctionnent en harmonie. Examinez attentivement la configuration IP pour justement éviter les conflits entre les différentes applications dockerisées.

En faisant cohabiter les 2 projets, vos fichiers multimédias, vos services de streaming et vos téléchargements bénéficieront d’une plus grande confidentialité grâce au VPN.

La doc pour faire tourner WirePiUS se trouve ici et celle pour faire tourner RaSoPIe se trouve ici.

Bonne éclate à tous !

À découvrir ici.

Nushell – Le Shell révolutionnaire multi-plateforme

lundi 4 septembre 2023 à 09:00

Nushell est un nouveau type de shell développé en Rust qui rend l’utilisation du terminal encore plus fun et bien sûr plus « productive ». Conçu pour fonctionner sur Linux, macOS, BSD et Windows, Nushell offre des fonctionnalités impressionnantes grâce à ses pipelines, ses plugins et sa compatibilité avec JSON, YAML, SQLite, Excel, etc.

Nushell utilise des pipelines pour contrôler n’importe quel système d’exploitation. Les pipelines de Nu utilisent des données structurées, ce qui permet de sélectionner, filtrer et trier les données en toute sécurité. Pour mieux comprendre, c’est assez similaire à la philosophie Unix où les commandes produisent une sortie stdout et récupèrent de la donnée à partir de stdin – sauf que les commandes Nu peuvent également produire des données structurées. C’est ultra puissant !

Les pipelines de Nu sont composés de commandes regroupées en trois catégories: celles qui produisent un flux (comme des sources de données), celles qui filtrent un flux et celles qui consomment la sortie du pipeline. Les commandes sont séparées par le symbole du pipe (|) pour indiquer un pipeline allant de gauche à droite.

Nushell peut, comme je le disais, travailler avec des données existantes telles que JSON, YAML, SQLite, Excel…etc. Nu est donc capable de prendre en entrée des fichiers et des URL en tant que texte brut ou données structurées.

Et pour ceux qui aiment étendre les fonctionnalités de leur shell, Nushell offre un système de plugins plutôt puissant. Les plugins sont proposés sous la forme de binaires et sont capables d’interagir avec Nushell via un protocole JSON-RPC simple. Les plugins peuvent alors se comporter comme des filtres ou des récepteurs (‘sink’), et ils peuvent traiter les données ou les consommer comme bon leur semble.

Par ailleurs, il existe un dépôt appelé awesome-nu qui répertorie une variété de plugins Nushell ainsi que le dépôt showcase qui présente des tutos et des vidéos techniques sur Nushell, pour vous aider à le prendre en main.

Si vous souhaitez essayer Nushell, vous pouvez le télécharger via les gestionnaires de paquets de votre système ou récupérer directement son code source (ou en tant qu’action GitHub). La documentation officielle se trouve ici.

Puis une fois que vous avez installé Nushell, il suffit de taper la commande nu pour le lancer.

En conclusion, je ne peux que vous recommander d’essayer Nushell et de profiter de ses fonctionnalités. Comme le disait le philosophe Socrate, ‘La vie sans un bon vieux shell ne vaut pas la peine d’être vécue’. Alors, pourquoi ne pas explorer le monde des pipelines, des plugins et des données structurées que Nushell propose ?

Vous pourriez bien être surpris par l’impact que cela aura sur votre manière de bosser.

À découvrir ici : http://www.nushell.sh

Obtenez des réponses à vos questions sans Internet et dans le respect de votre vie privée.

dimanche 3 septembre 2023 à 09:00

Les chatbots IA comme ChatGPT sont critiquables pour tout un tas de raison, mais ce qui revient le plus, c’est le respect de la vie privée de l’utilisateur. Puis comme ce sont des services en ligne, il faut forcément une connexion internet.

Alors que diriez vous si aujourd’hui je vous présentais un outil qui est capable de répondre à toutes vos questions en interrogeant simplement un document, tout ça en local, sans avoir besoin de connexion internet et en protégeant votre vite privée ?

Et bien cela existe et s’appelle privateGPT. C’est super pratique surtout pour les gens qui ont la flemme comme moi de lire des gros pavés en PDF.

Ce bijou utilise la puissance des LLMs sur des documents locaux, ce qui vous assure qu’aucun donnée ne quitte l’environnement d’exécution. Il est conçu avec plusieurs composants, tels que LangChain, GPT4All, LlamaCpp, Chroma, et SentenceTransformers et une fois le document uploadé, vous pouvez lui poser des questions ou lui demander de vous faire des résumés. Voici les formats supportés :

.csv: CSV,
.docx: Word Document,
.doc: Word Document,
.enex: EverNote,
.eml: Email,
.epub: EPub,
.html: HTML File,
.md: Markdown,
.msg: Outlook Message,
.odt: Open Document Text,
.pdf: Portable Document Format (PDF),
.pptx : PowerPoint Document,
.ppt : PowerPoint Document,
.txt: Text file (UTF-8),

Parfait donc pour les gens qui font des recherches ou du travail de synthèse à partir du contenu de leurs pairs.

Pour l’installer, il faudra cloner le dépôt et installer les dépendances comme ceci :

git clone https://github.com/imartinez/privateGPT.git
cd privateGPT
pip3 install -r requirements.txt

Ensuite, téléchargez le modèle LLM de votre choix et placez-le dans un répertoire. Par défaut, c’est ggml-gpt4all-j-v1.3-groovy.bin qui est proposé, mais si vous préférez un modèle compatible GPT4All-J différent, il suffit de le télécharger et de le référencer dans votre fichier .env.

Evidemment, renommez example.env en .env et modifiez les variables :

MODEL_TYPE : prend en charge LlamaCpp ou GPT4All
PERSIST_DIRECTORY : c'est le dossier où vous souhaitez que votre vectorstore soit
MODEL_PATH : Chemin vers votre GPT4All ou LlamaCpp supporté LLM
MODEL_N_CTX : Limite maximale de tokens pour le modèle LLM
EMBEDDINGS_MODEL_NAME : Nom du modèle d'incrustations SentenceTransformers
TARGET_SOURCE_CHUNKS : Le nombre de morceaux (sources) qui seront utilisés pour répondre à une question

Notez que la première fois que vous exécuterez le script, une connexion internet sera nécessaire pour télécharger le modèle d’incrustations.

Une fois que le ou les documents sont en place et que le fichier de config est OK, vous pouvez commencer la « digestion » de la donnée avec le script suivant :

python ingest.py

Le fichier ingest.py utilise des outils LangChain et HuggingFaceEmbeddings (SentenceTransformers) pour analyser le document, créer des embeddings et stocker les résultats localement avec Chromavector store.

Dès que ce sera terminé, lancez l’interface du chatbot comme ceci et posez-lui toutes vos questions.

python privateGPT.py

Le fichier privateGPT.py utilise un LLM local basé sur GPT4All-Jor et LlamaCpp pour comprendre les questions, extraire des réponses dans leur contexte et vous les fournir en s’appuyant sur les embeddings stockés localement.

C’est chouette non ? Alors oui, je sais, c’est un peu technique alors si vous voulez faire tout pareil, mais l’installation en moins, il existe également un service nommé ChatPDF qui vous permettra en uploadant un document de l’interroger comme si c’était votre meilleur pote, mais en perdant le bénéfice de la vie privée évidemment.

À découvrir ici : privateGPT sur GitHub

Anse – Une chouette interface pour les chatbots IA

samedi 2 septembre 2023 à 09:00

Il était une fois, un passionné d’IA qui rêvait d’une interface utilisateur universelle parfaitement optimisée pour les chatbots et qui s’est dit, « ça n’existe pas, alors je vais la créer« .

Voici donc Anse, l’outil idéal pour tous ceux qui veulent profiter pleinement des plateformes d’IA telles que celles d’OpenAI et de Replicate. Anse dispose d’un système de plugins puissant qui permet d’étendre facilement les possibilités des plateformes, mais aussi de prendre en charge les paramètres custom du des modèles.

Une preview est disponible ici si vous souhaitez tester.

Mais ce n’est pas tout puisque Anse propose également plusieurs modes de conversation, notamment une conversation unique, une conversation continue, de la génération d’images via OpenAI (Dall-E 2) ou via Stable Diffusion.

L’interface utilisateur d’Anse est adaptée aux mobiles et propose un mode sombre pour ceux qui vivent la nuit. L’appli prend également en charge le déploiement en un clic sur des plateformes telles que Vercel, Netlify, Docker et Node, ce qui facilite grandement la vie des développeurs.

Pour exécuter Anse localement, c’est également possible mais il est recommandé d’utiliser Node v18 ou ultérieur et pnpm pour gérer les dépendances. Et surtout, avant de lancer l’application, n’oubliez pas de récupérer une clé API auprès d’OpenAI.

Pour déployer le projet, je vous invite à jeter un coup d’œil à ce document. Et si vous préférez déployer Anse sur Docker, utilisez l’image Docker disponible ici.

Pour conclure, je dirais que Anse est bien pratique et plaira aux amateurs éclairés et aux professionnels des chatbots IA.

Amusez-vous bien !

À découvrir ici

Le guide ultime et open source du pain au levain

vendredi 1 septembre 2023 à 09:00

Qui n’aime pas le délicieux goût et l’arôme du pain au levain frais ?

Mais saviez-vous que la réussite de cette merveille consiste principalement à en maîtriser la fermentation ?

Et bien, sachez-le, il existe un livre open source absolument fantastique qui va vous aider à réaliser le meilleur pain au levain possible à la maison?

Suivre une recette sans connaître les bases de la fermentation peut être une vraie source de frustrations et d’échecs donc au lieu de simplement fournir des recettes, ce livre fournit un véritable framework qui vous permettra d’adapter les différentes méthodes de fabrication à votre propre environnement. Il prend en considération les différences entre les farines, les levains et les configurations de chaque maison.

Ce projet collaboratif (en anglais) a été créé pour rassembler et exploiter nos connaissances collectives sur la fermentation naturelle. Les versions modifiées du bouquin sont automatiquement mises à jour à chaque modification sur la branche principale du dépôt git, pour que chaque contribution puisse s’ajouter au projet et atteindre l’objectif commun, à savoir mieux comprendre la fermentation et réussir notre pain au levain à la maison.

Le livre est disponible en plusieurs formats : PDF, EPUB, MOBI, et AZW3.

Le projet encourage les contributions constructives pour améliorer sans cesse le contenu. Si vous trouvez une faute de frappe ou que vous trouvez qu’une formulation pourrait être améliorée, n’hésitez pas à ouvrir une pull request à tout moment ! C’est ça, la beauté et la force de l’open-source ;-).

Bref, n’attendez plus pour découvrir cet incroyable univers du pain au levain et laissez-vous guider par ce livre ouvert auquel vous pourrez participer.

A vous de jouer, les boulangers amateurs !