searx.favicons.html 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354
  1. <!DOCTYPE html>
  2. <html lang="en" data-content_root="../">
  3. <head>
  4. <meta charset="utf-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1">
  7. <title>Favicons &#8212; SearXNG Documentation (2025.4.30+fd33559cf)</title>
  8. <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=6625fa76" />
  9. <link rel="stylesheet" type="text/css" href="../_static/searxng.css?v=52e4ff28" />
  10. <script src="../_static/documentation_options.js?v=b12b0e12"></script>
  11. <script src="../_static/doctools.js?v=9a2dae69"></script>
  12. <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
  13. <script data-project="searxng" data-version="2025.4.30+fd33559cf" src="../_static/describe_version.js?v=fa7f30d0"></script>
  14. <link rel="index" title="Index" href="../genindex.html" />
  15. <link rel="search" title="Search" href="../search.html" />
  16. <link rel="next" title="Limiter" href="searx.limiter.html" />
  17. <link rel="prev" title="Answer CAPTCHA from server’s IP" href="answer-captcha.html" />
  18. </head><body>
  19. <div class="related" role="navigation" aria-label="Related">
  20. <h3>Navigation</h3>
  21. <ul>
  22. <li class="right" style="margin-right: 10px">
  23. <a href="../genindex.html" title="General Index"
  24. accesskey="I">index</a></li>
  25. <li class="right" >
  26. <a href="../py-modindex.html" title="Python Module Index"
  27. >modules</a> |</li>
  28. <li class="right" >
  29. <a href="searx.limiter.html" title="Limiter"
  30. accesskey="N">next</a> |</li>
  31. <li class="right" >
  32. <a href="answer-captcha.html" title="Answer CAPTCHA from server’s IP"
  33. accesskey="P">previous</a> |</li>
  34. <li class="nav-item nav-item-0"><a href="../index.html">SearXNG Documentation (2025.4.30+fd33559cf)</a> &#187;</li>
  35. <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
  36. <li class="nav-item nav-item-this"><a href="">Favicons</a></li>
  37. </ul>
  38. </div>
  39. <div class="document">
  40. <div class="documentwrapper">
  41. <div class="bodywrapper">
  42. <div class="body" role="main">
  43. <section id="favicons">
  44. <span id="id1"></span><h1>Favicons<a class="headerlink" href="#favicons" title="Link to this heading">¶</a></h1>
  45. <aside class="sidebar">
  46. <p class="sidebar-title">warning</p>
  47. <p>Don’t activate the favicons before reading the documentation.</p>
  48. </aside>
  49. <nav class="contents local" id="contents">
  50. <ul class="simple">
  51. <li><p><a class="reference internal" href="#infrastructure" id="id3">Infrastructure</a></p></li>
  52. <li><p><a class="reference internal" href="#setting-up-the-cache" id="id4">Setting up the cache</a></p>
  53. <ul>
  54. <li><p><a class="reference internal" href="#maintenance-of-the-cache" id="id5">Maintenance of the cache</a></p></li>
  55. </ul>
  56. </li>
  57. <li><p><a class="reference internal" href="#proxy-configuration" id="id6">Proxy configuration</a></p>
  58. <ul>
  59. <li><p><a class="reference internal" href="#register-resolvers" id="id7">Register resolvers</a></p></li>
  60. </ul>
  61. </li>
  62. </ul>
  63. </nav>
  64. <p>Activating the favicons in SearXNG is very easy, but this <strong>generates a
  65. significantly higher load</strong> in the client/server communication and increases
  66. resources needed on the server.</p>
  67. <p>To mitigate these disadvantages, various methods have been implemented,
  68. including a <em>cache</em>. The cache must be parameterized according to your own
  69. requirements and maintained regularly.</p>
  70. <p>To activate favicons in SearXNG’s result list, set a default
  71. <code class="docutils literal notranslate"><span class="pre">favicon_resolver</span></code> in the <a class="reference internal" href="settings/settings_search.html#settings-search"><span class="std std-ref">search</span></a> settings:</p>
  72. <div class="highlight-yaml notranslate"><div class="highlight"><pre><span></span><span class="nt">search</span><span class="p">:</span>
  73. <span class="w"> </span><span class="nt">favicon_resolver</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;duckduckgo&quot;</span>
  74. </pre></div>
  75. </div>
  76. <p>By default and without any extensions, SearXNG serves these resolvers:</p>
  77. <ul class="simple">
  78. <li><p><code class="docutils literal notranslate"><span class="pre">duckduckgo</span></code></p></li>
  79. <li><p><code class="docutils literal notranslate"><span class="pre">allesedv</span></code></p></li>
  80. <li><p><code class="docutils literal notranslate"><span class="pre">google</span></code></p></li>
  81. <li><p><code class="docutils literal notranslate"><span class="pre">yandex</span></code></p></li>
  82. </ul>
  83. <p>With the above setting favicons are displayed, the user has the option to
  84. deactivate this feature in his settings. If the user is to have the option of
  85. selecting from several <em>resolvers</em>, a further setting is required / but this
  86. setting will be discussed <a class="reference internal" href="#register-resolvers"><span class="std std-ref">later</span></a> in this article,
  87. first we have to setup the favicons cache.</p>
  88. <section id="infrastructure">
  89. <h2><a class="toc-backref" href="#id3" role="doc-backlink">Infrastructure</a><a class="headerlink" href="#infrastructure" title="Link to this heading">¶</a></h2>
  90. <p>The infrastructure for providing the favicons essentially consists of three
  91. parts:</p>
  92. <ul class="simple">
  93. <li><p><a class="reference internal" href="../src/searx.favicons.html#module-searx.favicons.proxy" title="searx.favicons.proxy"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Favicons-Proxy</span></code></a> (aka <em>proxy</em>)</p></li>
  94. <li><p><a class="reference internal" href="../src/searx.favicons.html#module-searx.favicons.resolvers" title="searx.favicons.resolvers"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Favicons-Resolvers</span></code></a> (aka <em>resolver</em>)</p></li>
  95. <li><p><a class="reference internal" href="../src/searx.favicons.html#module-searx.favicons.cache" title="searx.favicons.cache"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Favicons-Cache</span></code></a> (aka <em>cache</em>)</p></li>
  96. </ul>
  97. <p>To protect the privacy of users, the favicons are provided via a <em>proxy</em>. This
  98. <em>proxy</em> is automatically activated with the above activation of a <em>resolver</em>.
  99. Additional requests are required to provide the favicons: firstly, the <em>proxy</em>
  100. must process the incoming requests and secondly, the <em>resolver</em> must make
  101. outgoing requests to obtain the favicons from external sources.</p>
  102. <p>A <em>cache</em> has been developed to massively reduce both, incoming and outgoing
  103. requests. This <em>cache</em> is also activated automatically with the above
  104. activation of a <em>resolver</em>. In its defaults, however, the <em>cache</em> is minimal
  105. and not well suitable for a production environment!</p>
  106. </section>
  107. <section id="setting-up-the-cache">
  108. <span id="favicon-cache-setup"></span><h2><a class="toc-backref" href="#id4" role="doc-backlink">Setting up the cache</a><a class="headerlink" href="#setting-up-the-cache" title="Link to this heading">¶</a></h2>
  109. <p>To parameterize the <em>cache</em> and more settings of the favicons infrastructure, a
  110. <a class="reference external" href="https://toml.io/en/">TOML</a> configuration is created in the file <code class="docutils literal notranslate"><span class="pre">/etc/searxng/favicons.toml</span></code>.</p>
  111. <div class="highlight-toml notranslate"><div class="highlight"><pre><span></span><span class="k">[favicons]</span>
  112. <span class="n">cfg_schema</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="c1"># config&#39;s schema version no.</span>
  113. <span class="k">[favicons.cache]</span>
  114. <span class="n">db_url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;/var/cache/searxng/faviconcache.db&quot;</span><span class="w"> </span><span class="c1"># default: &quot;/tmp/faviconcache.db&quot;</span>
  115. <span class="n">LIMIT_TOTAL_BYTES</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">2147483648</span><span class="w"> </span><span class="c1"># 2 GB / default: 50 MB</span>
  116. <span class="c1"># HOLD_TIME = 5184000 # 60 days / default: 30 days</span>
  117. <span class="c1"># BLOB_MAX_BYTES = 40960 # 40 KB / default 20 KB</span>
  118. <span class="c1"># MAINTENANCE_MODE = &quot;off&quot; # default: &quot;auto&quot;</span>
  119. <span class="c1"># MAINTENANCE_PERIOD = 600 # 10min / default: 1h</span>
  120. </pre></div>
  121. </div>
  122. <dl>
  123. <dt><a class="reference internal" href="../src/searx.favicons.html#searx.favicons.config.FaviconConfig.cfg_schema" title="searx.favicons.config.FaviconConfig.cfg_schema"><code class="xref py py-obj docutils literal notranslate"><span class="pre">cfg_schema</span></code></a>:</dt><dd><p>Is required to trigger any processes required for future upgrades / don’t
  124. change it.</p>
  125. </dd>
  126. <dt><a class="reference internal" href="../src/searx.favicons.html#searx.favicons.cache.FaviconCacheConfig.db_url" title="searx.favicons.cache.FaviconCacheConfig.db_url"><code class="xref py py-obj docutils literal notranslate"><span class="pre">cache.db_url</span></code></a>:</dt><dd><p>The path to the (<a class="reference external" href="https://www.sqlite.org/">SQLite</a>) database file. The default path is in the <a class="reference external" href="https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s18.html">/tmp</a>
  127. folder, which is deleted on every reboot and is therefore unsuitable for a
  128. production environment. The <a class="reference external" href="https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html">FHS</a> provides the folder <a class="reference external" href="https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch05s05.html">/var/cache</a> for the
  129. cache of applications, so a suitable storage location of SearXNG’s caches is
  130. folder <code class="docutils literal notranslate"><span class="pre">/var/cache/searxng</span></code>.</p>
  131. <p>In a standard installation (compare <a class="reference internal" href="installation-searxng.html#create-searxng-user"><span class="std std-ref">Create user</span></a>), the folder
  132. must be created and the user under which the SearXNG process is running must
  133. be given write permission to this folder.</p>
  134. <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>sudo<span class="w"> </span>mkdir<span class="w"> </span>/var/cache/searxng
  135. $<span class="w"> </span>sudo<span class="w"> </span>chown<span class="w"> </span>root:searxng<span class="w"> </span>/var/cache/searxng/
  136. $<span class="w"> </span>sudo<span class="w"> </span>chmod<span class="w"> </span>g+w<span class="w"> </span>/var/cache/searxng/
  137. </pre></div>
  138. </div>
  139. <p>In container systems, a volume should be mounted for this folder. Check
  140. whether the process in the container has read/write access to the mounted
  141. folder.</p>
  142. </dd>
  143. <dt><a class="reference internal" href="../src/searx.favicons.html#searx.favicons.cache.FaviconCacheConfig.LIMIT_TOTAL_BYTES" title="searx.favicons.cache.FaviconCacheConfig.LIMIT_TOTAL_BYTES"><code class="xref py py-obj docutils literal notranslate"><span class="pre">cache.LIMIT_TOTAL_BYTES</span></code></a>:</dt><dd><p>Maximum of bytes stored in the cache of all blobs. The limit is only reached
  144. at each maintenance interval after which the oldest BLOBs are deleted; the
  145. limit is exceeded during the maintenance period.</p>
  146. <div class="admonition attention">
  147. <p class="admonition-title">Attention</p>
  148. <p>If the maintenance period is too long or maintenance is switched
  149. off completely, the cache grows uncontrollably.</p>
  150. </div>
  151. </dd>
  152. </dl>
  153. <p>SearXNG hosters can change other parameters of the cache as required:</p>
  154. <ul class="simple">
  155. <li><p><a class="reference internal" href="../src/searx.favicons.html#searx.favicons.cache.FaviconCacheConfig.HOLD_TIME" title="searx.favicons.cache.FaviconCacheConfig.HOLD_TIME"><code class="xref py py-obj docutils literal notranslate"><span class="pre">cache.HOLD_TIME</span></code></a></p></li>
  156. <li><p><a class="reference internal" href="../src/searx.favicons.html#searx.favicons.cache.FaviconCacheConfig.BLOB_MAX_BYTES" title="searx.favicons.cache.FaviconCacheConfig.BLOB_MAX_BYTES"><code class="xref py py-obj docutils literal notranslate"><span class="pre">cache.BLOB_MAX_BYTES</span></code></a></p></li>
  157. </ul>
  158. <section id="maintenance-of-the-cache">
  159. <h3><a class="toc-backref" href="#id5" role="doc-backlink">Maintenance of the cache</a><a class="headerlink" href="#maintenance-of-the-cache" title="Link to this heading">¶</a></h3>
  160. <p>Regular maintenance of the cache is required! By default, regular maintenance
  161. is triggered automatically as part of the client requests:</p>
  162. <ul class="simple">
  163. <li><p><a class="reference internal" href="../src/searx.favicons.html#searx.favicons.cache.FaviconCacheConfig.MAINTENANCE_MODE" title="searx.favicons.cache.FaviconCacheConfig.MAINTENANCE_MODE"><code class="xref py py-obj docutils literal notranslate"><span class="pre">cache.MAINTENANCE_MODE</span></code></a> (default <code class="docutils literal notranslate"><span class="pre">auto</span></code>)</p></li>
  164. <li><p><a class="reference internal" href="../src/searx.favicons.html#searx.favicons.cache.FaviconCacheConfig.MAINTENANCE_PERIOD" title="searx.favicons.cache.FaviconCacheConfig.MAINTENANCE_PERIOD"><code class="xref py py-obj docutils literal notranslate"><span class="pre">cache.MAINTENANCE_PERIOD</span></code></a> (default <code class="docutils literal notranslate"><span class="pre">6000</span></code> / 1h)</p></li>
  165. </ul>
  166. <p>As an alternative to maintenance as part of the client request process, it is
  167. also possible to carry out maintenance using an external process. For example,
  168. by creating a <a class="extlink-man reference external" href="https://manpages.debian.org/jump?q=crontab">crontab</a> entry for maintenance:</p>
  169. <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>python<span class="w"> </span>-m<span class="w"> </span>searx.favicons<span class="w"> </span>cache<span class="w"> </span>maintenance
  170. </pre></div>
  171. </div>
  172. <p>The following command can be used to display the state of the cache:</p>
  173. <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>python<span class="w"> </span>-m<span class="w"> </span>searx.favicons<span class="w"> </span>cache<span class="w"> </span>state
  174. </pre></div>
  175. </div>
  176. </section>
  177. </section>
  178. <section id="proxy-configuration">
  179. <span id="favicon-proxy-setup"></span><h2><a class="toc-backref" href="#id6" role="doc-backlink">Proxy configuration</a><a class="headerlink" href="#proxy-configuration" title="Link to this heading">¶</a></h2>
  180. <p>Most of the options of the <a class="reference internal" href="../src/searx.favicons.html#module-searx.favicons.proxy" title="searx.favicons.proxy"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Favicons-Proxy</span></code></a> are
  181. already set sensibly with settings from the <a class="reference internal" href="settings/index.html#searxng-settings-yml"><span class="std std-ref">settings.yml</span></a> and should not normally be adjusted.</p>
  182. <div class="highlight-toml notranslate"><div class="highlight"><pre><span></span><span class="k">[favicons.proxy]</span>
  183. <span class="n">max_age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">5184000</span><span class="w"> </span><span class="c1"># 60 days / default: 7 days (604800 sec)</span>
  184. </pre></div>
  185. </div>
  186. <dl class="simple">
  187. <dt><a class="reference internal" href="../src/searx.favicons.html#searx.favicons.proxy.FaviconProxyConfig.max_age" title="searx.favicons.proxy.FaviconProxyConfig.max_age"><code class="xref py py-obj docutils literal notranslate"><span class="pre">max_age</span></code></a>:</dt><dd><p>The <a class="reference external" href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#response_directives">HTTP Cache-Control max-age</a> response directive indicates that the
  188. response remains fresh until N seconds after the response is generated. This
  189. setting therefore determines how long a favicon remains in the client’s cache.
  190. As a rule, in the favicons infrastructure of SearXNG’s this setting only
  191. affects favicons whose byte size exceeds <a class="reference internal" href="#favicon-cache-setup"><span class="std std-ref">BLOB_MAX_BYTES</span></a> (the other favicons that are already in the cache are embedded as
  192. <a class="reference external" href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs">data URL</a> in the <a class="reference internal" href="../src/searx.favicons.html#searx.favicons.proxy.favicon_url" title="searx.favicons.proxy.favicon_url"><code class="xref py py-obj docutils literal notranslate"><span class="pre">generated</span> <span class="pre">HTML</span></code></a>,
  193. which can greatly reduce the number of additional requests).</p>
  194. </dd>
  195. </dl>
  196. <section id="register-resolvers">
  197. <span id="id2"></span><h3><a class="toc-backref" href="#id7" role="doc-backlink">Register resolvers</a><a class="headerlink" href="#register-resolvers" title="Link to this heading">¶</a></h3>
  198. <p>A <code class="xref py py-obj docutils literal notranslate"><span class="pre">resolver</span></code> is a function that obtains the favicon
  199. from an external source. The resolver functions available to the user are
  200. registered with their fully qualified name (<a class="reference external" href="https://en.wikipedia.org/wiki/Fully_qualified_name">FQN</a>) in a <code class="docutils literal notranslate"><span class="pre">resolver_map</span></code>.</p>
  201. <p>If no <code class="docutils literal notranslate"><span class="pre">resolver_map</span></code> is defined in the <code class="docutils literal notranslate"><span class="pre">favicon.toml</span></code>, the favicon
  202. infrastructure of SearXNG generates this <code class="docutils literal notranslate"><span class="pre">resolver_map</span></code> automatically
  203. depending on the <code class="docutils literal notranslate"><span class="pre">settings.yml</span></code>. SearXNG would automatically generate the
  204. following TOML configuration from the following YAML configuration:</p>
  205. <div class="highlight-yaml notranslate"><div class="highlight"><pre><span></span><span class="nt">search</span><span class="p">:</span>
  206. <span class="w"> </span><span class="nt">favicon_resolver</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;duckduckgo&quot;</span>
  207. </pre></div>
  208. </div>
  209. <div class="highlight-toml notranslate"><div class="highlight"><pre><span></span><span class="k">[favicons.proxy.resolver_map]</span>
  210. <span class="s2">&quot;duckduckgo&quot;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;searx.favicons.resolvers.duckduckgo&quot;</span>
  211. </pre></div>
  212. </div>
  213. <p>If this automatism is not desired, then (and only then) a separate
  214. <code class="docutils literal notranslate"><span class="pre">resolver_map</span></code> must be created. For example, to give the user two resolvers to
  215. choose from, the following configuration could be used:</p>
  216. <div class="highlight-toml notranslate"><div class="highlight"><pre><span></span><span class="k">[favicons.proxy.resolver_map]</span>
  217. <span class="s2">&quot;duckduckgo&quot;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;searx.favicons.resolvers.duckduckgo&quot;</span>
  218. <span class="s2">&quot;allesedv&quot;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;searx.favicons.resolvers.allesedv&quot;</span>
  219. <span class="c1"># &quot;google&quot; = &quot;searx.favicons.resolvers.google&quot;</span>
  220. <span class="c1"># &quot;yandex&quot; = &quot;searx.favicons.resolvers.yandex&quot;</span>
  221. </pre></div>
  222. </div>
  223. <div class="admonition note">
  224. <p class="admonition-title">Note</p>
  225. <p>With each resolver, the resource requirement increases significantly.</p>
  226. </div>
  227. <p>The number of resolvers increases:</p>
  228. <ul class="simple">
  229. <li><p>the number of incoming/outgoing requests and</p></li>
  230. <li><p>the number of favicons to be stored in the cache.</p></li>
  231. </ul>
  232. <p>In the following we list the resolvers available in the core of SearXNG, but via
  233. the <a class="reference external" href="https://en.wikipedia.org/wiki/Fully_qualified_name">FQN</a> it is also possible to implement your own resolvers and integrate them
  234. into the <em>proxy</em>:</p>
  235. <ul class="simple">
  236. <li><p><a class="reference internal" href="../src/searx.favicons.html#searx.favicons.resolvers.duckduckgo" title="searx.favicons.resolvers.duckduckgo"><code class="xref py py-obj docutils literal notranslate"><span class="pre">searx.favicons.resolvers.duckduckgo</span></code></a></p></li>
  237. <li><p><a class="reference internal" href="../src/searx.favicons.html#searx.favicons.resolvers.allesedv" title="searx.favicons.resolvers.allesedv"><code class="xref py py-obj docutils literal notranslate"><span class="pre">searx.favicons.resolvers.allesedv</span></code></a></p></li>
  238. <li><p><a class="reference internal" href="../src/searx.favicons.html#searx.favicons.resolvers.google" title="searx.favicons.resolvers.google"><code class="xref py py-obj docutils literal notranslate"><span class="pre">searx.favicons.resolvers.google</span></code></a></p></li>
  239. <li><p><a class="reference internal" href="../src/searx.favicons.html#searx.favicons.resolvers.yandex" title="searx.favicons.resolvers.yandex"><code class="xref py py-obj docutils literal notranslate"><span class="pre">searx.favicons.resolvers.yandex</span></code></a></p></li>
  240. </ul>
  241. </section>
  242. </section>
  243. </section>
  244. <div class="clearer"></div>
  245. </div>
  246. </div>
  247. </div>
  248. <span id="sidebar-top"></span>
  249. <div class="sphinxsidebar" role="navigation" aria-label="Main">
  250. <div class="sphinxsidebarwrapper">
  251. <p class="logo"><a href="../index.html">
  252. <img class="logo" src="../_static/searxng-wordmark.svg" alt="Logo of SearXNG"/>
  253. </a></p>
  254. <h3><a href="../index.html">Table of Contents</a></h3>
  255. <ul class="current">
  256. <li class="toctree-l1"><a class="reference internal" href="../user/index.html">User information</a></li>
  257. <li class="toctree-l1"><a class="reference internal" href="../own-instance.html">Why use a private instance?</a></li>
  258. <li class="toctree-l1 current"><a class="reference internal" href="index.html">Administrator documentation</a><ul class="current">
  259. <li class="toctree-l2"><a class="reference internal" href="settings/index.html">Settings</a></li>
  260. <li class="toctree-l2"><a class="reference internal" href="installation.html">Installation</a></li>
  261. <li class="toctree-l2"><a class="reference internal" href="installation-docker.html">Docker Container</a></li>
  262. <li class="toctree-l2"><a class="reference internal" href="installation-scripts.html">Installation Script</a></li>
  263. <li class="toctree-l2"><a class="reference internal" href="installation-searxng.html">Step by step installation</a></li>
  264. <li class="toctree-l2"><a class="reference internal" href="installation-uwsgi.html">uWSGI</a></li>
  265. <li class="toctree-l2"><a class="reference internal" href="installation-nginx.html">NGINX</a></li>
  266. <li class="toctree-l2"><a class="reference internal" href="installation-apache.html">Apache</a></li>
  267. <li class="toctree-l2"><a class="reference internal" href="update-searxng.html">SearXNG maintenance</a></li>
  268. <li class="toctree-l2"><a class="reference internal" href="answer-captcha.html">Answer CAPTCHA from server’s IP</a></li>
  269. <li class="toctree-l2 current"><a class="current reference internal" href="#">Favicons</a><ul>
  270. <li class="toctree-l3"><a class="reference internal" href="#infrastructure">Infrastructure</a></li>
  271. <li class="toctree-l3"><a class="reference internal" href="#setting-up-the-cache">Setting up the cache</a><ul>
  272. <li class="toctree-l4"><a class="reference internal" href="#maintenance-of-the-cache">Maintenance of the cache</a></li>
  273. </ul>
  274. </li>
  275. <li class="toctree-l3"><a class="reference internal" href="#proxy-configuration">Proxy configuration</a><ul>
  276. <li class="toctree-l4"><a class="reference internal" href="#register-resolvers">Register resolvers</a></li>
  277. </ul>
  278. </li>
  279. </ul>
  280. </li>
  281. <li class="toctree-l2"><a class="reference internal" href="searx.limiter.html">Limiter</a></li>
  282. <li class="toctree-l2"><a class="reference internal" href="api.html">Administration API</a></li>
  283. <li class="toctree-l2"><a class="reference internal" href="architecture.html">Architecture</a></li>
  284. <li class="toctree-l2"><a class="reference internal" href="plugins.html">List of plugins</a></li>
  285. <li class="toctree-l2"><a class="reference internal" href="buildhosts.html">Buildhosts</a></li>
  286. </ul>
  287. </li>
  288. <li class="toctree-l1"><a class="reference internal" href="../dev/index.html">Developer documentation</a></li>
  289. <li class="toctree-l1"><a class="reference internal" href="../utils/index.html">DevOps tooling box</a></li>
  290. <li class="toctree-l1"><a class="reference internal" href="../src/index.html">Source-Code</a></li>
  291. </ul>
  292. <h3>Project Links</h3>
  293. <ul>
  294. <li><a href="https://github.com/searxng/searxng/tree/master">Source</a>
  295. <li><a href="https://github.com/searxng/searxng/wiki">Wiki</a>
  296. <li><a href="https://searx.space">Public instances</a>
  297. <li><a href="https://github.com/searxng/searxng/issues">Issue Tracker</a>
  298. </ul><h3>Navigation</h3>
  299. <ul>
  300. <li><a href="../index.html">Overview</a>
  301. <ul>
  302. <li><a href="index.html">Administrator documentation</a>
  303. <ul>
  304. <li>Previous: <a href="answer-captcha.html" title="previous chapter">Answer CAPTCHA from server’s IP</a>
  305. <li>Next: <a href="searx.limiter.html" title="next chapter">Limiter</a></ul>
  306. </li>
  307. </ul>
  308. </li>
  309. </ul>
  310. <search id="searchbox" style="display: none" role="search">
  311. <h3 id="searchlabel">Quick search</h3>
  312. <div class="searchformwrapper">
  313. <form class="search" action="../search.html" method="get">
  314. <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
  315. <input type="submit" value="Go" />
  316. </form>
  317. </div>
  318. </search>
  319. <script>document.getElementById('searchbox').style.display = "block"</script>
  320. <div role="note" aria-label="source link">
  321. <h3>This Page</h3>
  322. <ul class="this-page-menu">
  323. <li><a href="../_sources/admin/searx.favicons.rst.txt"
  324. rel="nofollow">Show Source</a></li>
  325. </ul>
  326. </div>
  327. </div>
  328. </div>
  329. <div class="clearer"></div>
  330. </div>
  331. <div class="footer" role="contentinfo">
  332. &#169; Copyright SearXNG team.
  333. </div>
  334. </body>
  335. </html>