<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>URLs courtes et personnalisées via l'intégration continue on vanityURLs</title><link>https://www.vanityurls.link/fr/</link><description>Recent content in URLs courtes et personnalisées via l'intégration continue on vanityURLs</description><generator>Hugo</generator><language>fr-CA</language><atom:link href="https://www.vanityurls.link/fr/index.xml" rel="self" type="application/rss+xml"/><item><title>Les redirections comme code : gérer les liens courts à la façon GitOps</title><link>https://www.vanityurls.link/fr/blog/redirects-as-code/</link><pubDate>Mon, 10 Mar 2025 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/blog/redirects-as-code/</guid><description>&lt;p&gt;La plupart des raccourcisseurs d&amp;rsquo;URL sont des boîtes noires. Vous vous connectez via une interface web, créez un lien, et espérez que le service continue de fonctionner. Quand quelque chose tourne mal, il n&amp;rsquo;y a pas de trace d&amp;rsquo;audit, pas de retour arrière, aucun moyen de savoir qui a modifié quoi et quand.&lt;/p&gt;
&lt;p&gt;vanityURLs adopte une approche différente : vos redirections vivent dans un fichier texte, dans un dépôt Git, déployé via Cloudflare Pages. C&amp;rsquo;est le GitOps appliqué à la gestion d&amp;rsquo;URL.&lt;/p&gt;</description></item><item><title>Pourquoi vanityURLs ? Le cas pour posséder vos liens courts</title><link>https://www.vanityurls.link/fr/blog/why-vanityurls/</link><pubDate>Mon, 20 Jan 2025 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/blog/why-vanityurls/</guid><description>&lt;p&gt;Les raccourcisseurs d&amp;rsquo;URL ressemblent à un problème résolu. Choisissez un service gratuit, collez une longue URL, obtenez une courte. Simple. Pendant des années, des services comme bit.ly, goo.gl et TinyURL ont rendu cela trivial.&lt;/p&gt;
&lt;p&gt;Puis bit.ly a réduit les comptes gratuits à 10 liens par mois. Google a tué goo.gl. Des millions de liens publiés — dans des livres, présentations, matériaux imprimés, signatures email — ont commencé à mourir.&lt;/p&gt;
&lt;p&gt;Le problème n&amp;rsquo;est pas que ces services se sont dégradés. C&amp;rsquo;est qu&amp;rsquo;ils ont toujours été le mauvais choix architectural.&lt;/p&gt;</description></item><item><title>Dites adieu aux raccourcisseurs d'URL tiers : voici VanityURLs</title><link>https://www.vanityurls.link/fr/blog/introducing-v8s/</link><pubDate>Fri, 16 Aug 2024 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/blog/introducing-v8s/</guid><description>&lt;p&gt;Pendant des années, des services comme bit.ly, goo.gl et tinyurl ont été les outils de référence pour partager des liens compacts. Ces services étaient gratuits et pratiques — mais le paysage est en train de changer, et pas pour le mieux.&lt;/p&gt;
&lt;h2 id="le-problème-avec-les-services-tiers"&gt;Le problème avec les services tiers&lt;/h2&gt;
&lt;p&gt;En janvier 2024, Bitly — le raccourcisseur de liens leader depuis 2008 — a introduit un changement majeur : les comptes créés après 2018 ont été soudainement limités à &lt;strong&gt;10 liens par mois&lt;/strong&gt;. Pour ceux qui s&amp;rsquo;appuyaient sur la limite précédente de 10 000 liens gratuits par mois, c&amp;rsquo;était un coup dur.&lt;/p&gt;</description></item><item><title>Analytics serveur</title><link>https://www.vanityurls.link/fr/docs/server-side-analytics/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/docs/server-side-analytics/</guid><description>&lt;p&gt;vanityURLs enregistre les analytics depuis le Worker, pas depuis du JavaScript navigateur. Les redirections peuvent etre mesurees meme quand le visiteur ne charge jamais de page HTML, et les pages publiques n&amp;rsquo;ont pas besoin de script de tracking client.&lt;/p&gt;
&lt;p&gt;Les analytics sont non bloquants. Le Worker envoie les evenements avec &lt;code&gt;ctx.waitUntil()&lt;/code&gt;, donc la latence des redirections ne depend pas de la disponibilite de Umami, Fathom, ou autre fournisseur.&lt;/p&gt;
&lt;h2 id="fournisseurs"&gt;Fournisseurs&lt;/h2&gt;
&lt;p&gt;Definissez un ou plusieurs fournisseurs avec &lt;code&gt;ANALYTICS_PROVIDER&lt;/code&gt; :&lt;/p&gt;</description></item><item><title>Approche securite du runtime</title><link>https://www.vanityurls.link/fr/docs/runtime-security/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/docs/runtime-security/</guid><description>&lt;p&gt;Le runtime vanityURLs est volontairement simple. Ce n&amp;rsquo;est pas un service public de soumission de liens, pas une application avec base de donnees, et pas un framework web generaliste. C&amp;rsquo;est un moteur de redirection construit depuis Git : valider le registre, deployer les assets statiques, lire &lt;code&gt;v8s.json&lt;/code&gt;, puis retourner un petit nombre de resultats possibles.&lt;/p&gt;
&lt;p&gt;La simplicite fait partie du modele de securite. Le Worker a moins de pieces mobiles qu&amp;rsquo;un raccourcisseur classique : pas d&amp;rsquo;API d&amp;rsquo;ecriture publique, pas de comptes visiteurs, pas de cookies, pas d&amp;rsquo;analytics cote client, pas de couche de requete base de donnees, et pas de serveur d&amp;rsquo;origine derriere Cloudflare.&lt;/p&gt;</description></item><item><title>bhdicaire.com</title><link>https://www.vanityurls.link/fr/showcase/bhdicaire-com/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/showcase/bhdicaire-com/</guid><description>&lt;p&gt;bhdicaire.com est le domaine personnel de &lt;a href="https://github.com/bhdicaire"&gt;Benoît H. Dicaire&lt;/a&gt;, fondateur et mainteneur principal de vanityURLs. C&amp;rsquo;est le premier déploiement qui a prouvé que le concept fonctionnait, avant la publication en open source du projet.&lt;/p&gt;</description></item><item><title>Centre de confiance</title><link>https://www.vanityurls.link/fr/trust/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/trust/</guid><description/></item><item><title>Checklist de release</title><link>https://www.vanityurls.link/fr/docs/release-checklist/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/docs/release-checklist/</guid><description>&lt;p&gt;Utilisez cette checklist avant de lancer une nouvelle instance ou de promouvoir une mise a jour majeure. Une instance v8s est simple, mais un domaine court attire quand meme scanners, bots, et tentatives d&amp;rsquo;abus.&lt;/p&gt;
&lt;h2 id="depot"&gt;Depot&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Lancez &lt;code&gt;npm run clean&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Rafraichissez &lt;code&gt;defaults/&lt;/code&gt; et &lt;code&gt;scripts/&lt;/code&gt; upstream avec le workflow de mise a jour.&lt;/li&gt;
&lt;li&gt;Gardez tous les fichiers propres a l&amp;rsquo;instance dans &lt;code&gt;custom/&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Lancez &lt;code&gt;npm run check&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Relisez les changements de registre genere et de blocklist.&lt;/li&gt;
&lt;li&gt;Commitez et deployez depuis un working tree propre.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="worker-et-assets"&gt;Worker et assets&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Confirmez que le Worker a un binding &lt;code&gt;ASSETS&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Confirmez que le domaine custom pointe vers le Worker.&lt;/li&gt;
&lt;li&gt;Desactivez les URL publiques &lt;code&gt;workers.dev&lt;/code&gt; et preview si elles ne font pas partie du service.&lt;/li&gt;
&lt;li&gt;Protegez &lt;code&gt;/_stats&lt;/code&gt; et &lt;code&gt;/_tests&lt;/code&gt; avec Cloudflare Access.&lt;/li&gt;
&lt;li&gt;Gardez les politiques &lt;code&gt;/_stats/*&lt;/code&gt; et &lt;code&gt;/_tests/*&lt;/code&gt; etroites.&lt;/li&gt;
&lt;li&gt;Confirmez que le Worker accepte seulement &lt;code&gt;GET&lt;/code&gt;, &lt;code&gt;HEAD&lt;/code&gt;, et &lt;code&gt;OPTIONS&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Confirmez que les assets d&amp;rsquo;implementation prives retournent 404.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="configuration-domaine-cloudflare"&gt;Configuration domaine Cloudflare&lt;/h2&gt;
&lt;p&gt;Dans Cloudflare, les reglages pertinents sont repartis dans trois endroits :&lt;/p&gt;</description></item><item><title>CLI</title><link>https://www.vanityurls.link/fr/docs/cli/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/docs/cli/</guid><description>&lt;p&gt;La CLI locale au depot est &lt;code&gt;./scripts/lnk&lt;/code&gt;. C&amp;rsquo;est un executable Node, donc il fonctionne sur macOS, Linux, Windows, et les environnements CI ou Node et Git sont disponibles.&lt;/p&gt;
&lt;p&gt;Bash n&amp;rsquo;est pas requis pour gerer les liens. Le helper Zsh reste optionnel et separe.&lt;/p&gt;
&lt;h2 id="prerequis"&gt;Prerequis&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Node.js 20 ou plus recent&lt;/li&gt;
&lt;li&gt;npm&lt;/li&gt;
&lt;li&gt;Git&lt;/li&gt;
&lt;li&gt;Wrangler pour les commandes de deploiement&lt;/li&gt;
&lt;li&gt;Un compte Cloudflare seulement pour deployer ou gerer les secrets Worker&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sur Windows, lancez les commandes depuis PowerShell, Windows Terminal, ou un shell qui voit Git. La CLI ne demande pas WSL.&lt;/p&gt;</description></item><item><title>Cloudflare Workers</title><link>https://www.vanityurls.link/fr/docs/cloudflare/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/docs/cloudflare/</guid><description>&lt;p&gt;Le runtime vanityURLs actuel se deploie comme Worker Cloudflare avec assets statiques. Le Worker est l&amp;rsquo;origine du domaine court, donc utilisez un Custom Domain Worker plutot que l&amp;rsquo;ancien modele Pages &lt;code&gt;_redirects&lt;/code&gt; ou DNS &lt;code&gt;AAAA 100::&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="carte-de-navigation-cloudflare"&gt;Carte de navigation Cloudflare&lt;/h2&gt;
&lt;p&gt;Cloudflare repartit les reglages necessaires a vanityURLs dans trois zones differentes du dashboard. Verifiez le scope du dashboard avant de modifier un reglage; etre dans le bon produit Cloudflare ne suffit pas toujours.&lt;/p&gt;</description></item><item><title>Conditions d'utilisation</title><link>https://www.vanityurls.link/fr/terms/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/terms/</guid><description>&lt;p&gt;&lt;em&gt;Dernière mise à jour : avril 2026&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="1-le-site-web"&gt;1. Le site web&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;https://www.vanityURLs.link&lt;/code&gt; est un site de documentation fourni pour accompagner le projet open source vanityURLs. Il est proposé à titre informatif uniquement et peut être modifié ou interrompu à tout moment sans préavis.&lt;/p&gt;
&lt;h2 id="2-le-logiciel--en-létat-"&gt;2. Le logiciel (« en l&amp;rsquo;état »)&lt;/h2&gt;
&lt;p&gt;vanityURLs est un logiciel gratuit et open source publié sous la &lt;a href="https://github.com/vanityURLs/vanityURLs/blob/main/LICENSE"&gt;licence MIT&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Aucune garantie.&lt;/strong&gt; Le logiciel est fourni « en l&amp;rsquo;état », sans garantie d&amp;rsquo;aucune sorte, expresse ou implicite, notamment sans garantie de qualité marchande, d&amp;rsquo;adéquation à un usage particulier et d&amp;rsquo;absence de contrefaçon.&lt;/p&gt;</description></item><item><title>Confidentialité</title><link>https://www.vanityurls.link/fr/privacy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/privacy/</guid><description>&lt;h2 id="notre-engagement"&gt;Notre engagement&lt;/h2&gt;
&lt;p&gt;vanityURLs.link est un site de documentation pour un projet open source. Nous prenons votre confidentialité au sérieux.&lt;/p&gt;
&lt;h3 id="aucun-cookie-aucun-traqueur-côté-client"&gt;Aucun cookie, aucun traqueur côté client&lt;/h3&gt;
&lt;p&gt;Ce site ne dépose aucun cookie. Il n&amp;rsquo;utilise ni pixels de suivi, ni empreintes de navigateur, ni aucune analytique JavaScript. Votre navigateur ne communique qu&amp;rsquo;avec &lt;code&gt;www.vanityurls.link&lt;/code&gt; — jamais avec un serveur d&amp;rsquo;analytique tiers.&lt;/p&gt;
&lt;h3 id="analyses-agrégées-traitées-à-la-périphérie"&gt;Analyses agrégées traitées à la périphérie&lt;/h3&gt;
&lt;p&gt;Nous comptons les visites de pages pour savoir quelles pages de documentation sont utiles. Cela se fait côté serveur, à la périphérie Cloudflare, avec &lt;a href="https://umami.is/"&gt;Umami&lt;/a&gt; (logiciel libre, hébergé en UE). Pour chaque page HTML que vous ouvrez, notre Worker de périphérie envoie un seul événement à Umami contenant :&lt;/p&gt;</description></item><item><title>Déclaration d'accessibilité</title><link>https://www.vanityurls.link/fr/accessibility/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/accessibility/</guid><description>&lt;p&gt;&lt;em&gt;Dernière révision : avril 2026. Cette déclaration s&amp;rsquo;applique uniquement à vanityURLs.link, et non aux déploiements auto-hébergés de vanityURLs.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Nous nous engageons à rendre ce site utilisable par le plus grand nombre, quelle que soit la capacité ou la technologie d&amp;rsquo;assistance. Cette déclaration explique ce que nous avons mis en œuvre, ce que nous savons être imparfait, et comment tester ou signaler des problèmes d&amp;rsquo;accessibilité.&lt;/p&gt;
&lt;h2 id="statut-de-conformité"&gt;Statut de conformité&lt;/h2&gt;
&lt;p&gt;Nous visons le &lt;strong&gt;WCAG 2.1 niveau AA&lt;/strong&gt;. Le site est &lt;strong&gt;partiellement conforme&lt;/strong&gt; : la majorité des critères sont satisfaits, et un petit nombre de lacunes connues sont documentées ci-dessous.&lt;/p&gt;</description></item><item><title>Déclaration de sécurité</title><link>https://www.vanityurls.link/fr/security/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/security/</guid><description>&lt;p&gt;vanityURLs.link est un site de documentation statique pour un projet open source. Il n&amp;rsquo;y a pas d&amp;rsquo;authentification, de base de données, de traitement côté serveur, ni de collecte de données personnelles. Cette page explique les contrôles de sécurité en place.&lt;/p&gt;
&lt;h2 id="hébergement--cloudflare-pages"&gt;Hébergement : Cloudflare Pages&lt;/h2&gt;
&lt;p&gt;Ce site est servi exclusivement par &lt;a href="https://pages.cloudflare.com/"&gt;Cloudflare Pages&lt;/a&gt;, une plateforme serverless distribuée à l&amp;rsquo;échelle mondiale. Cloudflare fournit :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;TLS 1.3&lt;/strong&gt; — toutes les connexions sont chiffrées avec TLS 1.3 (TLS 1.2 minimum). Les versions de protocole plus anciennes sont rejetées.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HSTS&lt;/strong&gt; — HTTP Strict Transport Security est appliqué, empêchant les attaques de rétrogradation de protocole.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HTTP/2 et HTTP/3&lt;/strong&gt; — les protocoles de transport modernes sont activés automatiquement.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Protection DDoS&lt;/strong&gt; — le réseau Cloudflare absorbe les attaques volumétriques à la périphérie avant qu&amp;rsquo;elles n&amp;rsquo;atteignent l&amp;rsquo;origine.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Zéro serveur d&amp;rsquo;origine&lt;/strong&gt; — il n&amp;rsquo;y a pas de serveur d&amp;rsquo;origine à attaquer. Le site est entièrement servi depuis le cache de périphérie de Cloudflare.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Les pratiques de sécurité de l&amp;rsquo;infrastructure Cloudflare sont documentées sur &lt;a href="https://www.cloudflare.com/trust-hub/"&gt;cloudflare.com/trust-hub&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Demarrage rapide</title><link>https://www.vanityurls.link/fr/docs/getting-started/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/docs/getting-started/</guid><description>&lt;p&gt;vanityURLs est un moteur de liens courts gere dans Git pour votre propre domaine. Le runtime actuel se deploie comme Worker Cloudflare avec assets statiques. Le build part de &lt;code&gt;defaults/&lt;/code&gt;, applique vos fichiers &lt;code&gt;custom/&lt;/code&gt;, genere &lt;code&gt;build/v8s.json&lt;/code&gt;, puis publie le Worker avec Wrangler.&lt;/p&gt;
&lt;h2 id="prerequis"&gt;Prerequis&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Un depot GitHub base sur &lt;code&gt;vanityURLs/vanityURLs&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Un domaine court, comme le domaine public de reference &lt;code&gt;v8s.link&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Un compte Cloudflare avec le domaine dans Cloudflare DNS&lt;/li&gt;
&lt;li&gt;Node.js 20 ou plus recent et npm&lt;/li&gt;
&lt;li&gt;Git&lt;/li&gt;
&lt;li&gt;Wrangler connecte au compte Cloudflare qui possede le Worker&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La CLI principale est &lt;code&gt;./scripts/lnk&lt;/code&gt;, un script Node qui tourne sur macOS, Linux, Windows, et les environnements CI ou Node et Git sont disponibles. Bash n&amp;rsquo;est pas requis pour gerer les liens, planifications, ou blocklists. Le helper optionnel &lt;code&gt;scripts/v8s.zsh&lt;/code&gt; sert seulement aux utilisateurs Zsh qui veulent ouvrir des redirections connues depuis leur shell.&lt;/p&gt;</description></item><item><title>felx.cc</title><link>https://www.vanityurls.link/fr/showcase/felx-cc/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/showcase/felx-cc/</guid><description>&lt;p&gt;felx.cc est le domaine personnel de &lt;a href="https://github.com/felleg"&gt;Félix Léger&lt;/a&gt;, l&amp;rsquo;un des créateurs de vanityURLs. C&amp;rsquo;est l&amp;rsquo;un des premiers déploiements en production du projet.&lt;/p&gt;
&lt;p&gt;Tous les liens sur felx.cc sont gérés via un fichier &lt;code&gt;_redirects&lt;/code&gt; en texte brut hébergé sur GitHub et déployé automatiquement sur Cloudflare Pages à chaque push.&lt;/p&gt;</description></item><item><title>Format des liens</title><link>https://www.vanityurls.link/fr/docs/link-format/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/docs/link-format/</guid><description>&lt;p&gt;&lt;code&gt;v8s-links.txt&lt;/code&gt; est la source de verite humaine pour les liens. Chaque ligne non vide et non commentee est separee par des pipes :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;slug|target|state|title|description|tags|owner|expires_at|notes
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Champ&lt;/th&gt;
 &lt;th style="text-align: right"&gt;Requis&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;slug&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: right"&gt;oui&lt;/td&gt;
 &lt;td&gt;Chemin sans &lt;code&gt;/&lt;/code&gt; initial&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;target&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: right"&gt;oui&lt;/td&gt;
 &lt;td&gt;URL &lt;code&gt;http&lt;/code&gt; ou &lt;code&gt;https&lt;/code&gt;, ou hostname normalise vers &lt;code&gt;https://&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;state&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: right"&gt;non&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;permanent&lt;/code&gt;, &lt;code&gt;ephemeral&lt;/code&gt;, &lt;code&gt;expired&lt;/code&gt;, &lt;code&gt;disabled&lt;/code&gt;, &lt;code&gt;maintenance&lt;/code&gt;, &lt;code&gt;deactivated&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;title&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: right"&gt;non&lt;/td&gt;
 &lt;td&gt;Titre pour le dashboard&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;description&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: right"&gt;non&lt;/td&gt;
 &lt;td&gt;Usage humain du lien&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;tags&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: right"&gt;non&lt;/td&gt;
 &lt;td&gt;Tags separes par virgules&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;owner&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: right"&gt;recommande&lt;/td&gt;
 &lt;td&gt;Etiquette de responsabilite&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;expires_at&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: right"&gt;non&lt;/td&gt;
 &lt;td&gt;Date ou timestamp ISO&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;notes&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: right"&gt;non&lt;/td&gt;
 &lt;td&gt;Notes internes&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="liens-exacts"&gt;Liens exacts&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;social/x|https://x.com/vanityURLs|permanent|X / Twitter|Profil social|social,x|v8s||
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Le lien resout seulement &lt;code&gt;/social/x&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Guide de contribution</title><link>https://www.vanityurls.link/fr/contributing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/contributing/</guid><description>&lt;p&gt;Les contributions sont les bienvenues ! vanityURLs reconnaît &lt;a href="https://allcontributors.org/docs/en/emoji-key"&gt;tous les types de contributions&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="comment-contribuer"&gt;Comment contribuer&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Rapports de bugs&lt;/strong&gt; — ouvrez une issue dans le &lt;a href="https://github.com/vanityURLs/vanityURLs/issues"&gt;dépôt GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Documentation&lt;/strong&gt; — améliorez ou traduisez les docs dans le &lt;a href="https://github.com/vanityURLs/website"&gt;dépôt website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Code&lt;/strong&gt; — soumettez une pull request&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Communauté&lt;/strong&gt; — aidez les autres dans les &lt;a href="https://github.com/orgs/vanityURLs/discussions"&gt;GitHub Discussions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="code-de-conduite"&gt;Code de conduite&lt;/h2&gt;
&lt;p&gt;Ce projet est publié avec un &lt;a href="https://github.com/vanityURLs/website/blob/main/.github/CODE_OF_CONDUCT.md"&gt;Code de Conduite des Contributeurs&lt;/a&gt;. En participant, vous acceptez de respecter ses termes.&lt;/p&gt;
&lt;h2 id="questions-"&gt;Questions ?&lt;/h2&gt;
&lt;p&gt;Démarrez une discussion dans &lt;a href="https://github.com/orgs/vanityURLs/discussions"&gt;GitHub Discussions&lt;/a&gt; avant d&amp;rsquo;ouvrir une PR pour des changements importants.&lt;/p&gt;</description></item><item><title>Guide de migration</title><link>https://www.vanityurls.link/fr/docs/migration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/docs/migration/</guid><description>&lt;p&gt;Utilisez ce guide pour passer de l&amp;rsquo;ancien modele Cloudflare Pages &lt;code&gt;_redirects&lt;/code&gt; au modele Worker actuel utilise par v8s.link.&lt;/p&gt;
&lt;h2 id="ce-qui-a-change"&gt;Ce qui a change&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;wrangler.toml&lt;/code&gt; est la source de verite du deploiement&lt;/li&gt;
&lt;li&gt;Les fichiers statiques sont servis via le binding Worker &lt;code&gt;ASSETS&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Le build copie &lt;code&gt;defaults/&lt;/code&gt;, applique &lt;code&gt;custom/&lt;/code&gt;, et genere &lt;code&gt;build/v8s.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;custom/v8s-links.txt&lt;/code&gt; est prefere quand il existe; sinon le build utilise &lt;code&gt;defaults/v8s-links.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/_stats&lt;/code&gt; et &lt;code&gt;/_tests&lt;/code&gt; sont proteges par Cloudflare Access&lt;/li&gt;
&lt;li&gt;Les analytics serveur sont emis par le Worker&lt;/li&gt;
&lt;li&gt;Les probes et destinations risquees sont bloquees par &lt;code&gt;v8s-blocklist.json&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="convertir-les-anciens-fichiers-lnk"&gt;Convertir les anciens fichiers .lnk&lt;/h2&gt;
&lt;p&gt;Les anciennes lignes ressemblaient a ceci :&lt;/p&gt;</description></item><item><title>Licence</title><link>https://www.vanityurls.link/fr/license/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/license/</guid><description>&lt;p&gt;vanityURLs est un logiciel open source publié sous la &lt;strong&gt;licence MIT&lt;/strong&gt;.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Licence MIT

Copyright (c) 2024 Benoît H. Dicaire

L&amp;#39;autorisation est accordée, gratuitement, à toute personne obtenant une copie
de ce logiciel et des fichiers de documentation associés (le « Logiciel »), de traiter
le Logiciel sans restriction, notamment sans limitation les droits d&amp;#39;utiliser, copier,
modifier, fusionner, publier, distribuer, sous-licencier et/ou vendre des copies du Logiciel.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Le texte de la licence est disponible dans le &lt;a href="https://github.com/vanityURLs/vanityURLs/blob/main/LICENSE" target="_blank" rel="noopener"&gt;dépôt GitHub&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Liens par defaut</title><link>https://www.vanityurls.link/fr/docs/demo/links/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/docs/demo/links/</guid><description>&lt;p&gt;Le registre par defaut est &lt;code&gt;defaults/v8s-links.txt&lt;/code&gt;. Une instance de production le remplace normalement par &lt;code&gt;custom/v8s-links.txt&lt;/code&gt;, mais les defaults sont utiles parce qu&amp;rsquo;ils montrent la forme d&amp;rsquo;un vrai registre.&lt;/p&gt;
&lt;h2 id="exemples-namespaces"&gt;Exemples namespaces&lt;/h2&gt;
&lt;p&gt;Le fichier par defaut groupe les liens par zone d&amp;rsquo;usage :&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Prefixe&lt;/th&gt;
 &lt;th&gt;Exemples&lt;/th&gt;
 &lt;th&gt;Usage&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ai/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;ai/chat&lt;/code&gt;, &lt;code&gt;ai/claude&lt;/code&gt;, &lt;code&gt;ai/hf&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Outils IA et ressources modeles&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;edu/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;edu/a&lt;/code&gt;, &lt;code&gt;edu/d&lt;/code&gt;, &lt;code&gt;edu/s&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Recherche et references academiques&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;g/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;g/cal&lt;/code&gt;, &lt;code&gt;g/drive&lt;/code&gt;, &lt;code&gt;g/meet&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Surfaces productivite Google&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;meet/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;meet/g&lt;/code&gt;, &lt;code&gt;meet/t&lt;/code&gt;, &lt;code&gt;meet/z&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Alias de salles de reunion&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;pkg/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;pkg/d&lt;/code&gt;, &lt;code&gt;pkg/n&lt;/code&gt;, &lt;code&gt;pkg/p&lt;/code&gt;, &lt;code&gt;pkg/r&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Registres de packages&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;social/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;social/fb&lt;/code&gt;, &lt;code&gt;social/ig&lt;/code&gt;, &lt;code&gt;social/x&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Profils sociaux&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;v8s/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;v8s/code&lt;/code&gt;, &lt;code&gt;v8s/doc&lt;/code&gt;, &lt;code&gt;v8s/status&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Liens du projet vanityURLs&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Le namespacing garde l&amp;rsquo;espace racine propre tout en permettant des URLs memorables comme &lt;code&gt;v8s.link/social/x&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Liens planifies</title><link>https://www.vanityurls.link/fr/docs/schedules/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/docs/schedules/</guid><description>&lt;p&gt;Les liens planifies permettent a un slug stable de pointer ailleurs pendant certaines plages horaires. Gardez le lien normal dans &lt;code&gt;v8s-links.txt&lt;/code&gt;, puis ajoutez les regles dans &lt;code&gt;v8s-schedules.json&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Les planifications s&amp;rsquo;appliquent actuellement aux liens exacts. Les liens splat restent bases sur le chemin.&lt;/p&gt;
&lt;p&gt;Pour les changements courants, utilisez la CLI Node au lieu de modifier le JSON a la main :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./scripts/lnk schedule add hangout https://zoom.us/j/work --label work --days mon,tue,wed,thu,fri --from 09:00 --to 17:00 --timezone America/Toronto --default https://discord.gg/personal
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./scripts/lnk schedule list hangout
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;La CLI ecrit &lt;code&gt;custom/v8s-schedules.json&lt;/code&gt; par defaut. Definissez &lt;code&gt;V8S_SCHEDULES_FILE&lt;/code&gt; ou passez &lt;code&gt;--file&lt;/code&gt; pour utiliser un autre chemin.&lt;/p&gt;</description></item><item><title>Mentions légales (Impressum)</title><link>https://www.vanityurls.link/fr/impressum/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/impressum/</guid><description>&lt;p&gt;&lt;em&gt;Ces mentions légales (Impressum) sont fournies conformément au § 5 DDG (Digitale-Dienste-Gesetz, Allemagne), au § 5 ECG (E-Commerce-Gesetz, Autriche) et aux obligations de transparence équivalentes pour les utilisateurs des pays germanophones.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="opérateur-du-site"&gt;Opérateur du site&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Benoît H. Dicaire&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;[VOTRE ADRESSE]
[VOTRE VILLE, PROVINCE, CODE POSTAL]
Canada&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Courriel :&lt;/strong&gt; [votre-contact@email.com]&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(Un numéro de téléphone n&amp;rsquo;est pas obligatoire en vertu du § 5 DDG lorsqu&amp;rsquo;un contact électronique rapide alternatif est disponible.)&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="nature-de-ce-site"&gt;Nature de ce site&lt;/h2&gt;
&lt;p&gt;Ce site est une &lt;strong&gt;ressource de documentation non commerciale&lt;/strong&gt; pour le projet de logiciel open source vanityURLs. Il :&lt;/p&gt;</description></item><item><title>Mettre a jour une instance</title><link>https://www.vanityurls.link/fr/docs/upgrading/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/docs/upgrading/</guid><description>&lt;p&gt;Installer une instance vanityURLs est facile. La mettre a jour proprement demande un workflow reproductible, parce que le proprietaire doit garder ses liens, sa marque, sa politique et sa configuration Cloudflare tout en recevant les nouveaux defaults, scripts, correctifs et durcissements securite.&lt;/p&gt;
&lt;p&gt;La regle est simple :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;les fichiers propres a l&amp;rsquo;instance vivent dans &lt;code&gt;custom/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;les reglages de deploiement Cloudflare vivent dans &lt;code&gt;wrangler.toml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;la sortie generee est jetable&lt;/li&gt;
&lt;li&gt;les fichiers produit upstream vivent dans &lt;code&gt;defaults/&lt;/code&gt; et &lt;code&gt;scripts/&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="commande-dupgrade"&gt;Commande d&amp;rsquo;upgrade&lt;/h2&gt;
&lt;p&gt;Lancez depuis un worktree propre :&lt;/p&gt;</description></item><item><title>Politique blocklist</title><link>https://www.vanityurls.link/fr/docs/blocklist/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/docs/blocklist/</guid><description>&lt;p&gt;vanityURLs utilise &lt;code&gt;defaults/v8s-blocklist.json&lt;/code&gt; comme politique anti-abus upstream. La politique propre a l&amp;rsquo;instance vit dans &lt;code&gt;custom/v8s-blocklist.json&lt;/code&gt; et surcharge les defaults.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;objectif est de proteger la reputation d&amp;rsquo;un domaine court en reduisant phishing, malware, chaines de redirection, et formes d&amp;rsquo;URL risquees.&lt;/p&gt;
&lt;p&gt;Un redirecteur est une infrastructure puissante. N&amp;rsquo;utilisez pas une instance vanityURLs pour cacher des destinations malveillantes, contourner des systemes de confiance, blanchir une chaine d&amp;rsquo;autres raccourcisseurs, dissimuler des liens affiliés ou de tracking sans divulgation, ou envoyer les gens vers du contenu qu&amp;rsquo;ils ne pouvaient pas raisonnablement attendre. Un domaine court gagne la confiance lentement et peut la perdre tres vite.&lt;/p&gt;</description></item><item><title>Registre runtime</title><link>https://www.vanityurls.link/fr/docs/runtime-registry/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/docs/runtime-registry/</guid><description>&lt;p&gt;Le Worker ne lit pas &lt;code&gt;v8s-links.txt&lt;/code&gt; a chaque requete. Le build cree un registre runtime prive dans &lt;code&gt;build/v8s.json&lt;/code&gt; et le publie comme asset interne. Les requetes publiques directes vers &lt;code&gt;v8s.json&lt;/code&gt;, &lt;code&gt;redirect-targets.json&lt;/code&gt;, et les assets de blocklist retournent 404.&lt;/p&gt;
&lt;p&gt;Le registre est volontairement simple : un fichier JSON genere, schema version &lt;code&gt;2.2&lt;/code&gt;, valide avant deploiement, consomme par un seul Worker.&lt;/p&gt;
&lt;h2 id="entrees-du-build"&gt;Entrees du build&lt;/h2&gt;
&lt;p&gt;Le registre est genere a partir de :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;defaults/v8s-links.txt&lt;/code&gt;, puis &lt;code&gt;custom/v8s-links.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;defaults/v8s-schedules.json&lt;/code&gt;, puis &lt;code&gt;custom/v8s-schedules.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;defaults/v8s-blocklist.json&lt;/code&gt;, les donnees blocklist generees, et &lt;code&gt;custom/v8s-blocklist.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;les assets statiques de &lt;code&gt;defaults/public/&lt;/code&gt;, surcharges par &lt;code&gt;custom/public/&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Utilisez &lt;code&gt;custom/&lt;/code&gt; pour chaque changement propre a une instance. Les mises a jour futures restent simples : upstream peut rafraichir &lt;code&gt;defaults/&lt;/code&gt; et &lt;code&gt;scripts/&lt;/code&gt;, pendant que l&amp;rsquo;instance garde ses liens, sa politique, son habillage, ses pages legales, et ses secrets generes.&lt;/p&gt;</description></item><item><title>Signaler une vulnérabilité</title><link>https://www.vanityurls.link/fr/vulnerability/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/vulnerability/</guid><description>&lt;p&gt;Si vous découvrez une vulnérabilité de sécurité dans vanityURLs, veuillez la signaler de manière responsable.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;N&amp;rsquo;ouvrez pas d&amp;rsquo;issue publique GitHub pour les vulnérabilités de sécurité.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Utilisez plutôt : &lt;a href="https://github.com/vanityURLs/vanityURLs/security/advisories/new"&gt;Signaler une vulnérabilité&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="délais-de-réponse"&gt;Délais de réponse&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Accusé de réception : &lt;strong&gt;72 heures&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Calendrier de remédiation : &lt;strong&gt;7 jours&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="conception-sécurisée"&gt;Conception sécurisée&lt;/h2&gt;
&lt;p&gt;vanityURLs a une surface d&amp;rsquo;attaque minimale par conception :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pas de serveur — toute la logique s&amp;rsquo;exécute comme des fichiers statiques sur le réseau edge de Cloudflare&lt;/li&gt;
&lt;li&gt;Pas de dépendances runtime — le fichier de redirection est du texte brut&lt;/li&gt;
&lt;li&gt;Pas de traitement d&amp;rsquo;entrée utilisateur — il n&amp;rsquo;y a pas de backend à compromettre&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Structure du depot</title><link>https://www.vanityurls.link/fr/docs/repository-layout/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/docs/repository-layout/</guid><description>&lt;p&gt;Le depot separe les defaults du produit des changements propres a une instance. Cette separation rend v8s.link utile comme implementation de reference et permet de mettre a jour le code upstream sans perdre la marque locale.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;defaults/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; public/ # HTML, CSS, icones et pages localisees par defaut
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; public/_stats/ # shell du tableau stats en lecture seule
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; v8s-links.txt # registre demo/par defaut
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; v8s-schedules.json # regles de planification optionnelles
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; v8s-blocklist.json # politique anti-abus par defaut
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; v8s-blocklist-categories.json
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;custom/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; public/ # marque et pages propres a l&amp;#39;instance
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; v8s-links.txt # liens de l&amp;#39;instance
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; v8s-schedules.json # planifications de l&amp;#39;instance
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; v8s-blocklist.json # politique locale allow/block
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;scripts/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; src/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; worker.mjs # source canonique du Worker runtime
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; worker.test.mjs # tests du Worker runtime
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; lnk # CLI Node pour liens et planifications
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; build.mjs # build defaults + custom vers la sortie deploy
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; clean.mjs # supprime la sortie generee
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; upgrade.mjs # rafraichit les fichiers produit depuis upstream
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;build/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; v8s.json # registre runtime genere
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; v8s-blocklist.json # politique anti-abus generee
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ...assets statiques...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="defaults"&gt;Defaults&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;defaults/&lt;/code&gt; est la base du produit. L&amp;rsquo;instance publique v8s.link utilise ces fichiers pour montrer un raccourcisseur fonctionnel avec page d&amp;rsquo;accueil de recherche, page expand, pages d&amp;rsquo;etat localisees, icones, shell stats protege, et liens exemples.&lt;/p&gt;</description></item><item><title>Surcharges custom</title><link>https://www.vanityurls.link/fr/docs/custom-overrides/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/docs/custom-overrides/</guid><description>&lt;p&gt;Utilisez &lt;code&gt;custom/&lt;/code&gt; pour les fichiers propres a l&amp;rsquo;instance. Cela garde les deploiements de type v8s.link faciles a mettre a jour, car les pages par defaut, la logique Worker et les politiques produit peuvent evoluer sans melanger tous les choix de marque locaux.&lt;/p&gt;
&lt;h2 id="ordre-de-build"&gt;Ordre de build&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Copier &lt;code&gt;defaults/public/&lt;/code&gt; dans &lt;code&gt;build/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Appliquer &lt;code&gt;custom/public/&lt;/code&gt; s&amp;rsquo;il existe&lt;/li&gt;
&lt;li&gt;Copier &lt;code&gt;defaults/public/_stats/index.html&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Appliquer &lt;code&gt;custom/public/_stats/index.html&lt;/code&gt; s&amp;rsquo;il existe&lt;/li&gt;
&lt;li&gt;Construire &lt;code&gt;v8s.json&lt;/code&gt; depuis &lt;code&gt;custom/v8s-links.txt&lt;/code&gt; s&amp;rsquo;il existe, sinon depuis &lt;code&gt;defaults/v8s-links.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Fusionner &lt;code&gt;defaults/v8s-blocklist.json&lt;/code&gt;, &lt;code&gt;custom/v8s-blocklist.json&lt;/code&gt; optionnel, et les donnees de blocklist generees&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="fichiers-custom-recommandes"&gt;Fichiers custom recommandes&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;custom/v8s-links.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;custom/v8s-schedules.json
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;custom/v8s-blocklist.json
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;custom/public/v8s-logo.svg
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;custom/public/v8s-redirected.svg
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;custom/public/favicon.svg
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ajoutez des surcharges HTML ou CSS seulement quand les assets de marque et les fichiers de contenu ne suffisent pas.&lt;/p&gt;</description></item><item><title>Tableau admin</title><link>https://www.vanityurls.link/fr/docs/admin-dashboard/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/docs/admin-dashboard/</guid><description>&lt;p&gt;Le tableau admin est volontairement en lecture seule. C&amp;rsquo;est une vue operationnelle du registre genere, pas un CMS.&lt;/p&gt;
&lt;p&gt;Il lit :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/v8s.json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="ce-quil-montre"&gt;Ce qu&amp;rsquo;il montre&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Inventaire des routes&lt;/li&gt;
&lt;li&gt;Etat effectif&lt;/li&gt;
&lt;li&gt;Routage exact vs splat&lt;/li&gt;
&lt;li&gt;Revue des expirations&lt;/li&gt;
&lt;li&gt;Qualite des metadonnees&lt;/li&gt;
&lt;li&gt;Comportement de la table de routage&lt;/li&gt;
&lt;li&gt;Filtres expire bientot et metadata manquante&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Les analytics restent dans Umami ou Fathom. Le dashboard est le plan routage et cycle de vie; les outils analytics sont le plan mesure.&lt;/p&gt;</description></item><item><title>Validation et CI</title><link>https://www.vanityurls.link/fr/docs/validation-ci/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.vanityurls.link/fr/docs/validation-ci/</guid><description>&lt;p&gt;Lancez la validation avant chaque deploiement. v8s est concu pour que les erreurs de liens, les cibles dangereuses, les assets generes perimes, et les regressions Worker echouent avant qu&amp;rsquo;une nouvelle version arrive sur Cloudflare.&lt;/p&gt;
&lt;h2 id="commandes-locales"&gt;Commandes locales&lt;/h2&gt;
&lt;p&gt;Utilisez le controle combine pour le travail normal :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;npm run check
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Il construit le runtime, lance le lint, et execute les tests Worker. Pour un travail cible, utilisez :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;npm run lint
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;npm &lt;span class="nb"&gt;test&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;npm run build
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;npm run smoke:analytics
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Lancez &lt;code&gt;npm run clean&lt;/code&gt; avant une release ou avant de comparer la sortie generee. Cela retire le cruft de build pour que le depot montre seulement les changements source intentionnels.&lt;/p&gt;</description></item></channel></rss>