<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Auto-hébergement on Documentation Seurch</title><link>https://docs.seurch.eu/fr/self-hosting/</link><description>Recent content in Auto-hébergement on Documentation Seurch</description><generator>Hugo</generator><language>fr</language><atom:link href="https://docs.seurch.eu/fr/self-hosting/index.xml" rel="self" type="application/rss+xml"/><item><title>Prérequis</title><link>https://docs.seurch.eu/fr/self-hosting/requirements/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.seurch.eu/fr/self-hosting/requirements/</guid><description>&lt;h1 id="prérequis"&gt;Prérequis&lt;a class="anchor" href="#pr%c3%a9requis"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="environnement-dexécution"&gt;Environnement d&amp;rsquo;exécution&lt;a class="anchor" href="#environnement-dex%c3%a9cution"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Composant&lt;/th&gt;
					&lt;th&gt;Notes&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Un moteur de conteneurs&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Docker ou Podman, pour exécuter l&amp;rsquo;image publiée.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;PostgreSQL&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;La base de données applicative. Tout PostgreSQL raisonnablement récent (16+) convient.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Une clé API Brave Search&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Le minimum pour des résultats utiles, voir &lt;a href="https://docs.seurch.eu/fr/self-hosting/search-providers/"&gt;Fournisseurs de recherche&lt;/a&gt;. Le niveau gratuit suffit pour commencer.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;HTTPS sortant&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Le serveur appelle les fournisseurs amont ; si vous êtes derrière une liste blanche, voir les &lt;a href="https://docs.seurch.eu/fr/self-hosting/search-providers/#network-allowlist"&gt;hôtes des fournisseurs&lt;/a&gt;.&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Tout le reste — serveur web, service des fichiers statiques et compilation des catalogues de traduction — est intégré dans l&amp;rsquo;image.&lt;/p&gt;</description></item><item><title>Démarrage rapide</title><link>https://docs.seurch.eu/fr/self-hosting/quick-start/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.seurch.eu/fr/self-hosting/quick-start/</guid><description>&lt;h1 id="démarrage-rapide"&gt;Démarrage rapide&lt;a class="anchor" href="#d%c3%a9marrage-rapide"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Le moyen le plus rapide d&amp;rsquo;avoir une instance opérationnelle est l&amp;rsquo;image Docker. Vous avez besoin d&amp;rsquo;une base de données PostgreSQL et, au minimum, d&amp;rsquo;une &lt;a href="https://docs.seurch.eu/fr/self-hosting/search-providers/"&gt;clé API Brave Search&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="avec-docker"&gt;Avec Docker&lt;a class="anchor" href="#avec-docker"&gt;#&lt;/a&gt;&lt;/h2&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;docker run -p 8000:8000 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;SECRET_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;votre-long-secret-aléatoire &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;DATABASE_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;postgres://utilisateur:motdepasse@hôte-db:5432/seurch &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;ALLOWED_HOSTS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;search.example.com &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;BRAVE_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;votre-clé-brave &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;BRAVE_SUGGEST_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;votre-clé-brave-suggest &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;MARGINALIA_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;public &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; seurch&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Au démarrage, le conteneur :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Applique les &lt;strong&gt;migrations&lt;/strong&gt; de base de données (sans effet une fois le schéma à jour).&lt;/li&gt;
&lt;li&gt;Sert l&amp;rsquo;application avec &lt;strong&gt;gunicorn&lt;/strong&gt; (2 workers) sur le port &lt;strong&gt;8000&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Sert ses propres fichiers statiques via &lt;a href="https://whitenoise.readthedocs.io/"&gt;WhiteNoise&lt;/a&gt; (compressés et hachés), sans serveur web séparé ni CDN requis.&lt;/li&gt;
&lt;li&gt;Répond à une vérification de santé sur &lt;strong&gt;&lt;code&gt;/up&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Les catalogues de traduction et les fichiers statiques sont compilés à la construction, il n&amp;rsquo;y a donc rien d&amp;rsquo;autre à lancer.&lt;/p&gt;</description></item><item><title>Configuration</title><link>https://docs.seurch.eu/fr/self-hosting/configuration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.seurch.eu/fr/self-hosting/configuration/</guid><description>&lt;h1 id="configuration"&gt;Configuration&lt;a class="anchor" href="#configuration"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Seurch est entièrement configuré via des &lt;strong&gt;variables d&amp;rsquo;environnement&lt;/strong&gt; (en production) ou un fichier &lt;code&gt;.env&lt;/code&gt; (en développement). Le dépôt inclut un fichier &lt;code&gt;.env.example&lt;/code&gt; documentant chaque variable ; cette page en est la référence.&lt;/p&gt;
&lt;h2 id="noyau"&gt;Noyau&lt;a class="anchor" href="#noyau"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Variable&lt;/th&gt;
					&lt;th&gt;Rôle&lt;/th&gt;
					&lt;th&gt;Notes&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;SECRET_KEY&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Clé secrète Django&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;Requise en production.&lt;/strong&gt; Longue et aléatoire.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;DEBUG&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Mode débogage&lt;/td&gt;
					&lt;td&gt;Maintenez &lt;strong&gt;&lt;code&gt;False&lt;/code&gt;&lt;/strong&gt; (la valeur par défaut) en production.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;ALLOWED_HOSTS&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Noms d&amp;rsquo;hôtes séparés par des virgules que l&amp;rsquo;application servira&lt;/td&gt;
					&lt;td&gt;ex. &lt;code&gt;search.example.com&lt;/code&gt;.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;DATABASE_URL&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;URL de connexion PostgreSQL&lt;/td&gt;
					&lt;td&gt;ex. &lt;code&gt;postgres://utilisateur:mdp@hôte:5432/seurch&lt;/code&gt;.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;LOG_LEVEL&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Verbosité des logs&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;DEBUG&lt;/code&gt; / &lt;code&gt;INFO&lt;/code&gt; / &lt;code&gt;WARNING&lt;/code&gt; / &lt;code&gt;ERROR&lt;/code&gt; (par défaut &lt;code&gt;INFO&lt;/code&gt;).&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="fournisseurs-de-recherche"&gt;Fournisseurs de recherche&lt;a class="anchor" href="#fournisseurs-de-recherche"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Ces clés déterminent quels moteurs, onglets de médias et fiches de connaissance sont disponibles. Un fournisseur sans clé est simplement masqué (pas affiché comme cassé). Détails complets dans &lt;a href="https://docs.seurch.eu/fr/self-hosting/search-providers/"&gt;Fournisseurs de recherche&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Fournisseurs de recherche</title><link>https://docs.seurch.eu/fr/self-hosting/search-providers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.seurch.eu/fr/self-hosting/search-providers/</guid><description>&lt;h1 id="fournisseurs-de-recherche"&gt;Fournisseurs de recherche&lt;a class="anchor" href="#fournisseurs-de-recherche"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Seurch mélange les résultats de plusieurs fournisseurs indépendants. &lt;strong&gt;Les onglets et fiches qui apparaissent dépendent des clés que vous définissez.&lt;/strong&gt; Un fournisseur sans clé est masqué ; l&amp;rsquo;onglet ou la fiche concerné n&amp;rsquo;apparaît tout simplement pas, plutôt que d&amp;rsquo;afficher une erreur.&lt;/p&gt;
&lt;p&gt;Tous les appels amont se font &lt;strong&gt;côté serveur&lt;/strong&gt; ; les clés ne sont jamais exposées au navigateur.&lt;/p&gt;
&lt;p&gt;Cette page est l&amp;rsquo;&lt;strong&gt;aperçu&lt;/strong&gt; indiquant quelle clé active quoi. Pour les instructions d&amp;rsquo;inscription pas à pas pour chaque fournisseur, voir &lt;a href="https://docs.seurch.eu/fr/self-hosting/provider-keys/"&gt;Obtenir les clés API&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Obtenir les clés API</title><link>https://docs.seurch.eu/fr/self-hosting/provider-keys/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.seurch.eu/fr/self-hosting/provider-keys/</guid><description>&lt;h1 id="obtenir-les-clés-api"&gt;Obtenir les clés API&lt;a class="anchor" href="#obtenir-les-cl%c3%a9s-api"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Guides pas à pas pour obtenir la clé de chaque fournisseur. Aucune n&amp;rsquo;est requise pour démarrer Seurch, mais au moins un &lt;strong&gt;moteur web&lt;/strong&gt; (Brave est le plus simple) est nécessaire pour des résultats utiles. Chaque fournisseur que vous ignorez masque simplement son onglet ou sa fiche ; voir &lt;a href="https://docs.seurch.eu/fr/self-hosting/search-providers/"&gt;Fournisseurs de recherche&lt;/a&gt; pour ce que chacun active.&lt;/p&gt;
&lt;p&gt;Une fois que vous avez une clé, définissez la variable d&amp;rsquo;environnement correspondante (voir &lt;a href="https://docs.seurch.eu/fr/self-hosting/configuration/"&gt;Configuration&lt;/a&gt;) et redémarrez l&amp;rsquo;application.&lt;/p&gt;</description></item><item><title>Traduction</title><link>https://docs.seurch.eu/fr/self-hosting/translation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.seurch.eu/fr/self-hosting/translation/</guid><description>&lt;h1 id="traduction-libretranslate"&gt;Traduction (LibreTranslate)&lt;a class="anchor" href="#traduction-libretranslate"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;L&amp;rsquo;onglet &lt;strong&gt;Traduction&lt;/strong&gt; est alimenté par &lt;a href="https://libretranslate.com/"&gt;LibreTranslate&lt;/a&gt;, un serveur de traduction automatique open source et auto-hébergeable. Seurch l&amp;rsquo;appelle côté serveur ; aucun service de traduction tiers n&amp;rsquo;est impliqué.&lt;/p&gt;
&lt;h2 id="activer-longlet"&gt;Activer l&amp;rsquo;onglet&lt;a class="anchor" href="#activer-longlet"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Pointez Seurch vers une instance LibreTranslate avec &lt;code&gt;LIBRETRANSLATE_URL&lt;/code&gt; :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;LIBRETRANSLATE_URL=http://libretranslate:5000&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Définissez-la&lt;/strong&gt; et l&amp;rsquo;onglet Traduction (ainsi que son paramètre) apparaissent, avec les langues que cette instance propose.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Laissez-la non définie&lt;/strong&gt; et l&amp;rsquo;onglet Traduction ainsi que son paramètre sont entièrement désactivés.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="exécuter-libretranslate"&gt;Exécuter LibreTranslate&lt;a class="anchor" href="#ex%c3%a9cuter-libretranslate"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;La pile de développement démarre automatiquement un LibreTranslate local (&lt;code&gt;make up&lt;/code&gt; en lance un sur &lt;code&gt;http://localhost:5000&lt;/code&gt;). Pour la production, déployez le vôtre, par exemple :&lt;/p&gt;</description></item><item><title>Utilisateurs et accès</title><link>https://docs.seurch.eu/fr/self-hosting/users/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.seurch.eu/fr/self-hosting/users/</guid><description>&lt;h1 id="utilisateurs-et-accès"&gt;Utilisateurs et accès&lt;a class="anchor" href="#utilisateurs-et-acc%c3%a8s"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Seurch est &lt;strong&gt;accessible uniquement par connexion&lt;/strong&gt; et &lt;strong&gt;sans inscription publique&lt;/strong&gt;, donc en tant qu&amp;rsquo;administrateur, vous contrôlez qui a un compte. C&amp;rsquo;est ce qui maintient une instance privée pour vos utilisateurs.&lt;/p&gt;
&lt;h2 id="créer-des-comptes"&gt;Créer des comptes&lt;a class="anchor" href="#cr%c3%a9er-des-comptes"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Créez des utilisateurs avec la commande de gestion standard de Django :&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;&lt;span class="c1"&gt;# Docker&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker &lt;span class="nb"&gt;exec&lt;/span&gt; -it &amp;lt;conteneur&amp;gt; python manage.py createsuperuser
&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;&lt;span class="c1"&gt;# Depuis les sources&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;make superuser&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;createsuperuser&lt;/code&gt; crée un compte administrateur ; pour les utilisateurs ordinaires, vous pouvez les créer de la même façon (ou depuis l&amp;rsquo;administration Django une fois que vous avez un superutilisateur). Chaque compte nécessite un nom d&amp;rsquo;utilisateur et un mot de passe ; un e-mail est optionnel (voir ci-dessous).&lt;/p&gt;</description></item><item><title>Clés API</title><link>https://docs.seurch.eu/fr/self-hosting/api-keys/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.seurch.eu/fr/self-hosting/api-keys/</guid><description>&lt;h1 id="clés-api"&gt;Clés API&lt;a class="anchor" href="#cl%c3%a9s-api"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Les utilisateurs accèdent à l&amp;rsquo;&lt;a href="https://docs.seurch.eu/fr/api/"&gt;API publique&lt;/a&gt; avec des clés API par utilisateur. Les utilisateurs peuvent gérer leurs propres clés dans l&amp;rsquo;interface web (&lt;strong&gt;Paramètres → Clés API&lt;/strong&gt;), et vous pouvez les gérer depuis la ligne de commande.&lt;/p&gt;
&lt;h2 id="comment-les-clés-sont-stockées"&gt;Comment les clés sont stockées&lt;a class="anchor" href="#comment-les-cl%c3%a9s-sont-stock%c3%a9es"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Une clé ressemble à &lt;code&gt;seurch_sk_&amp;lt;préfixe&amp;gt;.&amp;lt;secret&amp;gt;&lt;/code&gt; :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Le &lt;strong&gt;préfixe&lt;/strong&gt; (8 caractères) est stocké en clair pour une recherche rapide.&lt;/li&gt;
&lt;li&gt;Seul un &lt;strong&gt;hachage SHA-256&lt;/strong&gt; du secret est stocké, jamais le secret lui-même.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ainsi, la valeur complète d&amp;rsquo;une clé est affichée &lt;strong&gt;exactement une fois&lt;/strong&gt;, à la création, et ne peut pas être récupérée par la suite, uniquement révoquée.&lt;/p&gt;</description></item><item><title>Maintenance</title><link>https://docs.seurch.eu/fr/self-hosting/maintenance/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.seurch.eu/fr/self-hosting/maintenance/</guid><description>&lt;h1 id="maintenance"&gt;Maintenance&lt;a class="anchor" href="#maintenance"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Seurch nécessite peu de maintenance continue, mais quelques &lt;strong&gt;commandes de gestion&lt;/strong&gt; permettent de le garder propre et à jour. Exécutez-les selon un planning (tâche cron, minuteur systemd ou fonctionnalité de tâche planifiée de votre orchestrateur). Exécutez chacune à l&amp;rsquo;intérieur du conteneur (&lt;code&gt;docker exec &amp;lt;conteneur&amp;gt; python manage.py …&lt;/code&gt;) ou via &lt;code&gt;make&lt;/code&gt; / &lt;code&gt;uv run&lt;/code&gt; depuis les sources.&lt;/p&gt;
&lt;h2 id="tâches-planifiées"&gt;Tâches planifiées&lt;a class="anchor" href="#t%c3%a2ches-planifi%c3%a9es"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Commande&lt;/th&gt;
					&lt;th&gt;Ce qu&amp;rsquo;elle fait&lt;/th&gt;
					&lt;th&gt;Planning suggéré&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;clear_expired_cache&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Supprime les lignes de cache de résultats de recherche expirées&lt;/td&gt;
					&lt;td&gt;Quotidien&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;check_provider_health&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Sonde les fournisseurs avec un point de terminaison de santé gratuit afin que &lt;code&gt;/status&lt;/code&gt; reste à jour, sans dépenser de quota payant&lt;/td&gt;
					&lt;td&gt;Toutes les ~10 minutes&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;refresh_currency&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Rafraîchit les taux de change mis en cache et purge le cache de réponses instantanées&lt;/td&gt;
					&lt;td&gt;Quotidien (optionnel, se rafraîchit aussi à la demande)&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Un exemple de cron :&lt;/p&gt;</description></item><item><title>Notes de production</title><link>https://docs.seurch.eu/fr/self-hosting/production/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.seurch.eu/fr/self-hosting/production/</guid><description>&lt;h1 id="notes-de-production"&gt;Notes de production&lt;a class="anchor" href="#notes-de-production"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Quelques points importants à connaître lorsque vous déployez Seurch pour de vrais utilisateurs.&lt;/p&gt;
&lt;h2 id="limage"&gt;L&amp;rsquo;image&lt;a class="anchor" href="#limage"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Sert l&amp;rsquo;application avec &lt;strong&gt;gunicorn&lt;/strong&gt; (2 workers) sur le port &lt;strong&gt;8000&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Sert ses propres fichiers statiques via &lt;a href="https://whitenoise.readthedocs.io/"&gt;WhiteNoise&lt;/a&gt;, compressés et hachés ; vous n&amp;rsquo;avez donc pas besoin d&amp;rsquo;un serveur de fichiers statiques séparé ni d&amp;rsquo;un CDN.&lt;/li&gt;
&lt;li&gt;Compile les catalogues de traduction et collecte les fichiers statiques &lt;strong&gt;au moment de la construction&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Applique les &lt;strong&gt;migrations&lt;/strong&gt; de base de données au démarrage.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="proxy-inverse-et-tls"&gt;Proxy inverse et TLS&lt;a class="anchor" href="#proxy-inverse-et-tls"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Placez un proxy inverse avec terminaison TLS devant (Caddy, nginx, Traefik, …) et transmettez vers le port 8000. Définissez :&lt;/p&gt;</description></item></channel></rss>