<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Afa' — Code, Systems &amp; AI</title><link>https://afa.demanou.com/</link><description>A personal engineering notebook about software, systems, infrastructure, AI and things worth understanding.</description><language>en</language><copyright>© 2026 Afa'</copyright><managingEditor>Sébastien Demanou</managingEditor><generator>Hugo</generator><lastBuildDate>Sun, 27 Sep 2026 02:43:42 +0000</lastBuildDate><atom:link href="https://afa.demanou.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Ṣeto: a small orchestrator for Docker</title><link>https://afa.demanou.com/posts/2026/seto-a-small-orchestrator-for-heterogeneous-docker-clusters/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2026/seto-a-small-orchestrator-for-heterogeneous-docker-clusters/</guid><pubDate>Fri, 25 Sep 2026 14:50:00 +0000</pubDate><category>Docker, Networking, Security, Hardware, Traefik, Linux, Python</category><description>Orchestrating Docker Swarm and Compose deployments with hardware-aware placement, NFS storage and Traefik integration.</description></item><item><title>Ṣeto</title><link>https://afa.demanou.com/projects/seto/</link><guid isPermaLink="true">https://afa.demanou.com/projects/seto/</guid><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><category>cli, devops, docker, docker-compose, docker-swarm, infrastructure, nfs, orchestration, Python, storage</category><description>An orchestrator for Docker Swarm and Compose deployments with device targeting and automated NFS storage provisioning</description></item><item><title>Building a Complete AI Engineering Team with DSH Agent Presets</title><link>https://afa.demanou.com/posts/2026/building-a-complete-ai-engineering-team-with-dsh-agent-presets/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2026/building-a-complete-ai-engineering-team-with-dsh-agent-presets/</guid><pubDate>Sun, 20 Sep 2026 13:30:40 +0000</pubDate><category>AI, DSH, Tooling</category><description>Build a multi-agent AI engineering workflow with DSH agent presets.</description></item><item><title>Oremi Device</title><link>https://afa.demanou.com/projects/oremi-device/</link><guid isPermaLink="true">https://afa.demanou.com/projects/oremi-device/</guid><pubDate>Sun, 20 Sep 2026 00:00:00 +0000</pubDate><category>audio, home-assistant, microphone, mqtt, oremi, pyaudio, Python, smart-home, speech-to-text, stt, transcription, voice-assistant, wakeword</category><description>Audio capture service for the Oremi smart home ecosystem with wake word detection, speech transcription, and Home Assistant integration via MQTT.</description></item><item><title>Taking Oremi Izwi to the GPU: What We Learned from a Deep TTS Performance Investigation</title><link>https://afa.demanou.com/posts/2026/taking-oremi-izwi-to-the-gpu-what-we-learned-from-a-deep-tts-performance-investigation/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2026/taking-oremi-izwi-to-the-gpu-what-we-learned-from-a-deep-tts-performance-investigation/</guid><pubDate>Sat, 19 Sep 2026 13:17:42 +0000</pubDate><category>AI, GPU, Python, TTS</category><description>A deep performance investigation into moving the Oremi Izwi text-to-speech service to the GPU.</description></item><item><title>CallLink</title><link>https://afa.demanou.com/projects/calllink/</link><guid isPermaLink="true">https://afa.demanou.com/projects/calllink/</guid><pubDate>Sat, 19 Sep 2026 00:00:00 +0000</pubDate><category>callink, ephemeral, fastapi, privacy, REST API, TypeScript</category><description>CallLink is a lightweight, privacy-oriented web application for creating temporary links for real-time calls.</description></item><item><title>Oremi Akọrin</title><link>https://afa.demanou.com/projects/oremi-akorin/</link><guid isPermaLink="true">https://afa.demanou.com/projects/oremi-akorin/</guid><pubDate>Sat, 19 Sep 2026 00:00:00 +0000</pubDate><category>home assistant, Python, voice assistant</category><description>Natural-language gateway for the Oremi ecosystem, routing HTTP and MQTT requests to the appropriate AI-powered services.</description></item><item><title>Oremi Izwi</title><link>https://afa.demanou.com/projects/oremi-izwi/</link><guid isPermaLink="true">https://afa.demanou.com/projects/oremi-izwi/</guid><pubDate>Sat, 19 Sep 2026 00:00:00 +0000</pubDate><category>piper, Python, text-to-speech, tts</category><description>High-performance Text-to-Speech (TTS) REST API service for the Oremi ecosystem.</description></item><item><title>Oremi Andika</title><link>https://afa.demanou.com/projects/oremi-andika/</link><guid isPermaLink="true">https://afa.demanou.com/projects/oremi-andika/</guid><pubDate>Sat, 19 Sep 2026 00:00:00 +0000</pubDate><category>automatic speech recognition (ASR), Python, speech-to-text, stt</category><description>Empowering seamless transcription with cutting-edge STT (Speech-to-Text) technology, revolutionizing interaction through accurate speech recognition.</description></item><item><title>Docker Swarm: How to Fix “error creating vxlan interface: file exists”</title><link>https://afa.demanou.com/posts/2026/docker-swarm-how-to-fix-error-creating-vxlan-interface-file-exists/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2026/docker-swarm-how-to-fix-error-creating-vxlan-interface-file-exists/</guid><pubDate>Fri, 18 Sep 2026 14:58:47 +0000</pubDate><category>Docker, Networking</category><description>Fix Docker Swarm overlay networks failing with 'error creating vxlan interface: file exists'.</description></item><item><title>Image Downloader</title><link>https://afa.demanou.com/projects/image-downloader/</link><guid isPermaLink="true">https://afa.demanou.com/projects/image-downloader/</guid><pubDate>Mon, 07 Sep 2026 00:00:00 +0000</pubDate><category>download, downloader, image, JavaScript, nodejs</category><description>A Node module for downloading image to disk from a given URL</description></item><item><title>BlueGate</title><link>https://afa.demanou.com/projects/bluegate/</link><guid isPermaLink="true">https://afa.demanou.com/projects/bluegate/</guid><pubDate>Sun, 23 Aug 2026 00:00:00 +0000</pubDate><category>bluetooth, Device Manager, gateway, Python</category><description>BlueGate is a Bluetooth gateway and device manager focused on exposing Bluetooth operations to external systems through a lightweight HTTP service.</description></item><item><title>Oremi Iṣakoso</title><link>https://afa.demanou.com/projects/oremi-isakoso/</link><guid isPermaLink="true">https://afa.demanou.com/projects/oremi-isakoso/</guid><pubDate>Tue, 11 Aug 2026 00:00:00 +0000</pubDate><category>agent, AI, iot, llm, mcp, mqtt, oremi, Python, smarthome, zigbee, zigbee2mqtt</category><description>MCP server for controlling Zigbee2MQTT smart home devices.</description></item><item><title>Oremi Isinmi Agent</title><link>https://afa.demanou.com/projects/oremi-isinmi-agent/</link><guid isPermaLink="true">https://afa.demanou.com/projects/oremi-isinmi-agent/</guid><pubDate>Tue, 11 Aug 2026 00:00:00 +0000</pubDate><category>AI, ai-agents, alerts, calendar, oremi, Python</category><description>Encrypted reminders, scheduling, tags, SSE, and natural language agent API.</description></item><item><title>Oremi Ojọ</title><link>https://afa.demanou.com/projects/oremi-ojo/</link><guid isPermaLink="true">https://afa.demanou.com/projects/oremi-ojo/</guid><pubDate>Tue, 11 Aug 2026 00:00:00 +0000</pubDate><category>agent, air-quality, forecast, geocoding, pollen, Python, weather</category><description>A comprehensive climate agent for weather forecasts, geocoding, and pollen data.</description></item><item><title>Filigrane</title><link>https://afa.demanou.com/projects/filigrane/</link><guid isPermaLink="true">https://afa.demanou.com/projects/filigrane/</guid><pubDate>Thu, 23 Jul 2026 00:00:00 +0000</pubDate><category>filigrane, flatpak, gnome, libadwaita, pdf, Python, watermark</category><description>Filigrane is a modern application designed to apply elegant vector text or high-resolution image watermarks to PDF documents quickly and securely.</description></item><item><title>Oremi Kànsà</title><link>https://afa.demanou.com/projects/oremi-kansa/</link><guid isPermaLink="true">https://afa.demanou.com/projects/oremi-kansa/</guid><pubDate>Thu, 23 Jul 2026 00:00:00 +0000</pubDate><category>Python</category><description>Oremi Kànsà is an MCP server for discovering podcasts through the</description></item><item><title>Oremi Rediyo</title><link>https://afa.demanou.com/projects/oremi-rediyo/</link><guid isPermaLink="true">https://afa.demanou.com/projects/oremi-rediyo/</guid><pubDate>Thu, 23 Jul 2026 00:00:00 +0000</pubDate><category>agent, AI, llm, mcp, oremi, Python, radio</category><description>An MCP server for discovering public radio stations and stream URLs through Radio Browser.</description></item><item><title>Oremi Ohunerin</title><link>https://afa.demanou.com/projects/oremi-ohunerin/</link><guid isPermaLink="true">https://afa.demanou.com/projects/oremi-ohunerin/</guid><pubDate>Thu, 23 Jul 2026 00:00:00 +0000</pubDate><category>Python, sound detection, wakeword</category><description>Real-time ambient sound and wake word detection.</description></item><item><title>Pixie — Modern Image Processor</title><link>https://afa.demanou.com/projects/pixie/</link><guid isPermaLink="true">https://afa.demanou.com/projects/pixie/</guid><pubDate>Mon, 13 Jul 2026 00:00:00 +0000</pubDate><category>Rust</category><description>Pixie is a modern, lightweight image processor for everyday edits. It provides focused tools for cropping, resizing, cleaning metadata, removing backgrounds, …</description></item><item><title>Oremi Isinmi Agent Legacy</title><link>https://afa.demanou.com/projects/oremi-isinmi-agent-legacy/</link><guid isPermaLink="true">https://afa.demanou.com/projects/oremi-isinmi-agent-legacy/</guid><pubDate>Sat, 04 Jul 2026 00:00:00 +0000</pubDate><category>agent, calendar, Python, scheduler</category><description>A smart scheduler for alarms, timers, reminders, and calendar events, powered by local LLMs.</description></item><item><title>Oremi Ohunerin Listener</title><link>https://afa.demanou.com/projects/oremi-ohunerin-listener/</link><guid isPermaLink="true">https://afa.demanou.com/projects/oremi-ohunerin-listener/</guid><pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate><category>home assistant, mqtt, Python, sound detection, wakeword</category><description>Oremi Ohunerin Listener bridges Oremi Ohunerin's real-time audio detection with MQTT, enabling seamless integration into home automation systems like Home …</description></item><item><title>Oremi Injini</title><link>https://afa.demanou.com/projects/oremi-injini/</link><guid isPermaLink="true">https://afa.demanou.com/projects/oremi-injini/</guid><pubDate>Thu, 11 Jun 2026 00:00:00 +0000</pubDate><category>NLP(Natural Language Process), Python</category><description>The NLP powerhouse of the Oremi personal assistant, revolutionizing interaction through advanced natural language understanding.</description></item><item><title>Oremi Kànsà Agent</title><link>https://afa.demanou.com/projects/oremi-kansa-agent/</link><guid isPermaLink="true">https://afa.demanou.com/projects/oremi-kansa-agent/</guid><pubDate>Tue, 09 Jun 2026 00:00:00 +0000</pubDate><category>LLMs, natural-language-processing, podcast, Python</category><description>A natural language API that delivers podcast info for the Oremi Personal Assistant.</description></item><item><title>Oremi Rediyo Agent</title><link>https://afa.demanou.com/projects/oremi-rediyo-agent/</link><guid isPermaLink="true">https://afa.demanou.com/projects/oremi-rediyo-agent/</guid><pubDate>Tue, 09 Jun 2026 00:00:00 +0000</pubDate><category>llama, natural-language-processing, Python</category><description>A natural language API that returns radio stream info for the Oremi Assistant.</description></item><item><title>Vue JsonSchema Generator</title><link>https://afa.demanou.com/projects/vue-jsonschema/</link><guid isPermaLink="true">https://afa.demanou.com/projects/vue-jsonschema/</guid><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><category>jsonschema, TypeScript, vuejs</category><description>Convert Vue component props to JSON Schema</description></item><item><title>Vuedoc Test Utils</title><link>https://afa.demanou.com/projects/vuedoc-test-utils/</link><guid isPermaLink="true">https://afa.demanou.com/projects/vuedoc-test-utils/</guid><pubDate>Thu, 12 Feb 2026 00:00:00 +0000</pubDate><category>TypeScript</category><description>Component testing utils for Vuedoc.</description></item><item><title>Vuedoc Parser</title><link>https://afa.demanou.com/projects/vuedoc-parser/</link><guid isPermaLink="true">https://afa.demanou.com/projects/vuedoc-parser/</guid><pubDate>Thu, 12 Feb 2026 00:00:00 +0000</pubDate><category>doc, documentation, JavaScript, parser, vue, vuedoc</category><description>Generate a JSON documentation for a Vue component</description></item><item><title>Traefik HTTP Provider</title><link>https://afa.demanou.com/projects/traefik-http-provider/</link><guid isPermaLink="true">https://afa.demanou.com/projects/traefik-http-provider/</guid><pubDate>Mon, 06 Oct 2025 00:00:00 +0000</pubDate><category>Python</category><description>Traefik HTTP-Provider is a REST service that allows external services to register and expose their Traefik HTTP provider JSON content.</description></item><item><title>Fixing Docker Swarm Startup Failures on Debian 13 Due to Network Timing</title><link>https://afa.demanou.com/posts/2025/fixing-docker-swarm-startup-failures-on-debian-13-due-to-network-timing/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2025/fixing-docker-swarm-startup-failures-on-debian-13-due-to-network-timing/</guid><pubDate>Sat, 27 Sep 2025 14:32:33 +0000</pubDate><category>Docker, Linux, Networking</category><description>Diagnose and fix Docker Swarm failing to start on Debian 13 when the network is not ready at boot.</description></item><item><title>Installing NVIDIA Drivers and CUDA 12.6 on Debian 13 (RTX 5070)</title><link>https://afa.demanou.com/posts/2025/installing-nvidia-drivers-and-cuda-12-6-on-debian-13-rtx-5070/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2025/installing-nvidia-drivers-and-cuda-12-6-on-debian-13-rtx-5070/</guid><pubDate>Sat, 27 Sep 2025 12:22:10 +0000</pubDate><category>Linux, GPU, CUDA, Docker</category><description>Install NVIDIA drivers, CUDA 12.6 and Docker GPU support on Debian 13 for an RTX 5070.</description></item><item><title>Ghost API Proxy</title><link>https://afa.demanou.com/projects/ghost-api-proxy/</link><guid isPermaLink="true">https://afa.demanou.com/projects/ghost-api-proxy/</guid><pubDate>Sun, 20 Jul 2025 00:00:00 +0000</pubDate><category>TypeScript</category><description>A lightweight Bun-based proxy server for the Ghost Admin API that handles authentication and adds necessary headers for publishing posts. Designed to work …</description></item><item><title>Streamlining Git Commits with AI: Using Ollama Commit Extension for Better Conventional Commits</title><link>https://afa.demanou.com/posts/2025/streamlining-git-commits-with-ai-using-ollama-commit-extension-for-better-conventional-commits/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2025/streamlining-git-commits-with-ai-using-ollama-commit-extension-for-better-conventional-commits/</guid><pubDate>Sat, 19 Jul 2025 02:10:26 +0000</pubDate><category>Git, AI, Ollama</category><description>Use the Ollama commit extension to generate Conventional Commit messages locally with an LLM.</description></item><item><title>Node-Red Contrib Feed Parser Plus</title><link>https://afa.demanou.com/projects/node-red-contrib-feedparser-plus/</link><guid isPermaLink="true">https://afa.demanou.com/projects/node-red-contrib-feedparser-plus/</guid><pubDate>Wed, 02 Jul 2025 00:00:00 +0000</pubDate><category>feedparser, JavaScript, NodeRED, redis</category><description>A Node-RED node to get RSS Atom feeds with persistence (redis) layer</description></item><item><title>Telegram Chat ID Fetcher</title><link>https://afa.demanou.com/projects/telegram-chatid-fetcher/</link><guid isPermaLink="true">https://afa.demanou.com/projects/telegram-chatid-fetcher/</guid><pubDate>Sun, 15 Jun 2025 00:00:00 +0000</pubDate><category>Python, telegram, telegram-bot</category><description>A lightweight CLI tool to get the Telegram channel or group chat ID using a bot token.</description></item><item><title>Node-RED Ghost Admin API Client Nodes</title><link>https://afa.demanou.com/projects/node-red-contrib-ghost-client/</link><guid isPermaLink="true">https://afa.demanou.com/projects/node-red-contrib-ghost-client/</guid><pubDate>Fri, 13 Jun 2025 00:00:00 +0000</pubDate><category>JavaScript</category><description>A Node-RED node package providing nodes to interact with the Ghost Admin API</description></item><item><title>HTML to Markdown NodeRED Node</title><link>https://afa.demanou.com/projects/html-to-markdown-nodered-node/</link><guid isPermaLink="true">https://afa.demanou.com/projects/html-to-markdown-nodered-node/</guid><pubDate>Wed, 11 Jun 2025 00:00:00 +0000</pubDate><category>JavaScript</category><description>A Node-RED node that converts HTML content into Markdown format.</description></item><item><title>Oremi Idatha</title><link>https://afa.demanou.com/projects/oremi-idatha/</link><guid isPermaLink="true">https://afa.demanou.com/projects/oremi-idatha/</guid><pubDate>Fri, 23 May 2025 00:00:00 +0000</pubDate><category>Python</category><description>Oremi Idatha is an essential RESTful module within the Oremi Personal Assistant, designed to facilitate seamless interactions with the Oremi database.</description></item><item><title>Crafting Clear FastAPI Docstrings for OpenAPI: A Human-Centered Approach</title><link>https://afa.demanou.com/posts/2025/crafting-clear-fastapi-docstrings-for-openapi-a-human-centered-approach/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2025/crafting-clear-fastapi-docstrings-for-openapi-a-human-centered-approach/</guid><pubDate>Mon, 12 May 2025 09:08:12 +0000</pubDate><category>Python, FastAPI, Web</category><description>Write FastAPI docstrings that produce clear, human-centred OpenAPI documentation.</description></item><item><title>How to Fix "The swarm does not have a leader" in Docker Swarm</title><link>https://afa.demanou.com/posts/2025/how-to-fix-the-swarm-does-not-have-a-leader-in-docker-swarm/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2025/how-to-fix-the-swarm-does-not-have-a-leader-in-docker-swarm/</guid><pubDate>Sun, 04 May 2025 06:55:41 +0000</pubDate><category>Docker, Networking</category><description>Recover a Docker Swarm cluster that has lost quorum and reports that the swarm has no leader.</description></item><item><title>Ancient Calendar</title><link>https://afa.demanou.com/projects/ancient-calendar/</link><guid isPermaLink="true">https://afa.demanou.com/projects/ancient-calendar/</guid><pubDate>Tue, 22 Apr 2025 00:00:00 +0000</pubDate><category>Python</category><description>Get information about the ancient Egyptian calendar.</description></item><item><title>How to Disable the Nouveau Kernel Driver for NVIDIA Graphics Cards in Fedora 41</title><link>https://afa.demanou.com/posts/2025/how-to-disable-the-nouveau-kernel-driver-for-nvidia-graphics-cards-in-fedora-41/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2025/how-to-disable-the-nouveau-kernel-driver-for-nvidia-graphics-cards-in-fedora-41/</guid><pubDate>Sat, 22 Mar 2025 08:25:44 +0000</pubDate><category>Linux, GPU</category><description>Disable the Nouveau kernel driver on Fedora 41 before installing the NVIDIA proprietary driver.</description></item><item><title>ChatGPT V2 Personality Prompt</title><link>https://afa.demanou.com/posts/2025/chatgpt-v2-personality-prompt/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2025/chatgpt-v2-personality-prompt/</guid><pubDate>Wed, 19 Mar 2025 15:50:23 +0000</pubDate><category>AI</category><description>A v2 system prompt that gives ChatGPT a stable, reusable personality and operating style.</description></item><item><title>Logto Forward Authentication Proxy</title><link>https://afa.demanou.com/projects/logto-proxy/</link><guid isPermaLink="true">https://afa.demanou.com/projects/logto-proxy/</guid><pubDate>Sun, 16 Mar 2025 00:00:00 +0000</pubDate><category>Forward Proxy, Logto, Python</category><description>A forward authentication proxy that integrates with the Logto Identity Provider</description></item><item><title>Introduction to Nix Shell: Simplifying Development Environments</title><link>https://afa.demanou.com/posts/2025/introduction-to-nix-shell-simplifying-development-environments/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2025/introduction-to-nix-shell-simplifying-development-environments/</guid><pubDate>Thu, 13 Mar 2025 09:02:52 +0000</pubDate><category>Nix, Tooling</category><description>An introduction to nix-shell for reproducible development environments.</description></item><item><title>Introduction to Devbox: Simplify Development Environments with Jetify</title><link>https://afa.demanou.com/posts/2025/introduction-to-devbox-simplify-development-environments-with-jetify/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2025/introduction-to-devbox-simplify-development-environments-with-jetify/</guid><pubDate>Thu, 13 Mar 2025 08:45:00 +0000</pubDate><category>Devbox, Tooling</category><description>An introduction to Devbox for reproducible, per-project development environments.</description></item><item><title>Introduction to Holehe: A Powerful Tool for Email Reconnaissance</title><link>https://afa.demanou.com/posts/2025/introduction-to-holehe-a-powerful-tool-for-email-reconnaissance/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2025/introduction-to-holehe-a-powerful-tool-for-email-reconnaissance/</guid><pubDate>Thu, 13 Mar 2025 08:40:18 +0000</pubDate><category>Security, Python</category><description>An introduction to Holehe, a Python tool that checks where an email address is registered.</description></item><item><title>Vikela</title><link>https://afa.demanou.com/projects/vikela/</link><guid isPermaLink="true">https://afa.demanou.com/projects/vikela/</guid><pubDate>Mon, 17 Feb 2025 00:00:00 +0000</pubDate><category>authentication, authentication proxy, JWT Authentication, oauth2, proxy-auth, Python</category><description>Vikela sets up a robust authentication system to secure backend services using an authentication provider and various proxy middleware solutions such as …</description></item><item><title>Oremi Core</title><link>https://afa.demanou.com/projects/oremi-core/</link><guid isPermaLink="true">https://afa.demanou.com/projects/oremi-core/</guid><pubDate>Sat, 01 Feb 2025 00:00:00 +0000</pubDate><category>core, Python</category><description>The cornerstone of the Oremi ecosystem</description></item><item><title>Oremi Player Server</title><link>https://afa.demanou.com/projects/oremi-player/</link><guid isPermaLink="true">https://afa.demanou.com/projects/oremi-player/</guid><pubDate>Thu, 16 Jan 2025 00:00:00 +0000</pubDate><category>C++, vlc</category><description>Oremi Player is a VLC audio server. It can be combined with</description></item></channel></rss>