<feed xmlns='http://www.w3.org/2005/Atom'>
<title>searxng/.git/docs, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.slickd.xyz/searxng/.git/'/>
<entry>
<title> [mod] settings.yml: set engines that require an api key to inactive by default</title>
<updated>2025-12-29T14:20:43+00:00</updated>
<author>
<name>Tommaso Colella</name>
<email>tommasocolella95@gmail.com</email>
</author>
<published>2025-12-29T14:20:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.slickd.xyz/searxng/.git/commit/?id=320c317719466b899e672e2702027f8ebbae8426'/>
<id>320c317719466b899e672e2702027f8ebbae8426</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title> [mod] docs: better explanation for search api usage and format support  (#5574)</title>
<updated>2025-12-29T14:04:33+00:00</updated>
<author>
<name>Tommaso Colella</name>
<email>tommasocolella95@gmail.com</email>
</author>
<published>2025-12-29T14:04:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.slickd.xyz/searxng/.git/commit/?id=abae17e6fc49e2b77fb1c090db984e4867cea723'/>
<id>abae17e6fc49e2b77fb1c090db984e4867cea723</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[mod] client/simple: client plugins (#5406)</title>
<updated>2025-12-02T10:18:00+00:00</updated>
<author>
<name>Ivan Gabaldon</name>
<email>igabaldon@inetol.net</email>
</author>
<published>2025-12-02T10:18:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.slickd.xyz/searxng/.git/commit/?id=fb089ae297b27f51777318e3a28bca8b172a4165'/>
<id>fb089ae297b27f51777318e3a28bca8b172a4165</id>
<content type='text'>
* [mod] client/simple: client plugins

Defines a new interface for client side *"plugins"* that coexist with server
side plugin system. Each plugin (e.g., `InfiniteScroll`) extends the base
`ts Plugin`. Client side plugins are independent and lazy‑loaded via `router.ts`
when their `load()` conditions are met. On each navigation request, all
applicable plugins are instanced.

Since these are client side plugins, we can only invoke them once DOM is fully
loaded. E.g. `Calculator` will not render a new `answer` block until fully
loaded and executed.

For some plugins, we might want to handle its availability in `settings.yml`
and toggle in UI, like we do for server side plugins. In that case, we extend
`py Plugin` instancing only the information and then checking client side if
[`settings.plugins`](https://github.com/inetol/searxng/blob/1ad832b1dc33f3f388da361ff2459b05dc86a164/client/simple/src/js/toolkit.ts#L134)
array has the plugin id.

* [mod] client/simple: rebuild static</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* [mod] client/simple: client plugins

Defines a new interface for client side *"plugins"* that coexist with server
side plugin system. Each plugin (e.g., `InfiniteScroll`) extends the base
`ts Plugin`. Client side plugins are independent and lazy‑loaded via `router.ts`
when their `load()` conditions are met. On each navigation request, all
applicable plugins are instanced.

Since these are client side plugins, we can only invoke them once DOM is fully
loaded. E.g. `Calculator` will not render a new `answer` block until fully
loaded and executed.

For some plugins, we might want to handle its availability in `settings.yml`
and toggle in UI, like we do for server side plugins. In that case, we extend
`py Plugin` instancing only the information and then checking client side if
[`settings.plugins`](https://github.com/inetol/searxng/blob/1ad832b1dc33f3f388da361ff2459b05dc86a164/client/simple/src/js/toolkit.ts#L134)
array has the plugin id.

* [mod] client/simple: rebuild static</pre>
</div>
</content>
</entry>
<entry>
<title>[fix] drop mullvad-leta engine (#5428)</title>
<updated>2025-11-22T09:02:51+00:00</updated>
<author>
<name>Grant</name>
<email>contact@grantlanham.com</email>
</author>
<published>2025-11-22T09:02:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.slickd.xyz/searxng/.git/commit/?id=c0d69cec4ec4f0edb0e09412b08b1923bd15bd81'/>
<id>c0d69cec4ec4f0edb0e09412b08b1923bd15bd81</id>
<content type='text'>
On 2025 November 27th, Mullvad will be shutting down the Leta servers.
For this reason, we also need to remove this engine from SearXNG.

[1] https://mullvad.net/en/blog/shutting-down-our-search-proxy-leta</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On 2025 November 27th, Mullvad will be shutting down the Leta servers.
For this reason, we also need to remove this engine from SearXNG.

[1] https://mullvad.net/en/blog/shutting-down-our-search-proxy-leta</pre>
</div>
</content>
</entry>
<entry>
<title>[mod] docs: add acknowledgements section (#5449)</title>
<updated>2025-11-20T10:31:53+00:00</updated>
<author>
<name>Ivan Gabaldon</name>
<email>igabaldon@inetol.net</email>
</author>
<published>2025-11-20T10:31:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.slickd.xyz/searxng/.git/commit/?id=431bf5d235493ad527f8a1f22d3375a35b76aace'/>
<id>431bf5d235493ad527f8a1f22d3375a35b76aace</id>
<content type='text'>
* [mod] docs: add acknowledgements section

Moves all images into a `assets/` folder.

* [fix] docs: normalize brands svg</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* [mod] docs: add acknowledgements section

Moves all images into a `assets/` folder.

* [fix] docs: normalize brands svg</pre>
</div>
</content>
</entry>
<entry>
<title>[feat] sourcehut engine: implement as custom module, fix user agent</title>
<updated>2025-11-05T16:56:13+00:00</updated>
<author>
<name>Bnyro</name>
<email>bnyro@tutanota.com</email>
</author>
<published>2025-11-04T17:00:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.slickd.xyz/searxng/.git/commit/?id=1be19f8b5820d1c7b369f80cc48c6014a6d41085'/>
<id>1be19f8b5820d1c7b369f80cc48c6014a6d41085</id>
<content type='text'>
SourceHut uses a foss bot protection tool called `go-away` (which I can
recommend BTW).  It blocks common crawler user agents, such as the standard
Firefox user agent.  Hence, we're now using our custom SearXNG user agent to
clarify we're not a crawler.

Closes: https://github.com/searxng/searxng/issues/5270
Co-authored-by: Markus Heiser &lt;markus.heiser@darmarit.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
SourceHut uses a foss bot protection tool called `go-away` (which I can
recommend BTW).  It blocks common crawler user agents, such as the standard
Firefox user agent.  Hence, we're now using our custom SearXNG user agent to
clarify we're not a crawler.

Closes: https://github.com/searxng/searxng/issues/5270
Co-authored-by: Markus Heiser &lt;markus.heiser@darmarit.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[fix] Installation Script install fails (msgspec) (#5353)</title>
<updated>2025-10-22T07:34:09+00:00</updated>
<author>
<name>Markus Heiser</name>
<email>markus.heiser@darmarIT.de</email>
</author>
<published>2025-10-22T07:34:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.slickd.xyz/searxng/.git/commit/?id=f70120b0b99354785c5d5c9fda91565ad32ec31f'/>
<id>f70120b0b99354785c5d5c9fda91565ad32ec31f</id>
<content type='text'>
Since #5280 has been merged, msgspec, like yaml, is a fixed part of the SearXNG
*settings framework* and therefore, like yaml, must be installed in the virtual
environment before installing SearXNG (``searx``).

The actual reason is that in SearXNG we store settings in the configuration that
are required for the installation of the ``searx`` package.  This means that
these settings (from settings.yml) are read in during the installation, and all the
necessary tools for this (pyyaml, msgspec, setuptools, etc.) must be installed
beforehand (chicken or the egg dilemma).

Related:

- https://github.com/searxng/searxng/pull/5346
- https://github.com/searxng/searxng/pull/5280
- https://github.com/searxng/searxng/pull/5254

Closes: https://github.com/searxng/searxng/issues/5352</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since #5280 has been merged, msgspec, like yaml, is a fixed part of the SearXNG
*settings framework* and therefore, like yaml, must be installed in the virtual
environment before installing SearXNG (``searx``).

The actual reason is that in SearXNG we store settings in the configuration that
are required for the installation of the ``searx`` package.  This means that
these settings (from settings.yml) are read in during the installation, and all the
necessary tools for this (pyyaml, msgspec, setuptools, etc.) must be installed
beforehand (chicken or the egg dilemma).

Related:

- https://github.com/searxng/searxng/pull/5346
- https://github.com/searxng/searxng/pull/5280
- https://github.com/searxng/searxng/pull/5254

Closes: https://github.com/searxng/searxng/issues/5352</pre>
</div>
</content>
</entry>
<entry>
<title>[mod] typification of SearXNG: add new result type File</title>
<updated>2025-10-20T08:18:33+00:00</updated>
<author>
<name>Markus Heiser</name>
<email>markus.heiser@darmarit.de</email>
</author>
<published>2025-10-13T07:28:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.slickd.xyz/searxng/.git/commit/?id=937165853185ca16b0da6f72bc42bd1487ea0dcb'/>
<id>937165853185ca16b0da6f72bc42bd1487ea0dcb</id>
<content type='text'>
This PR adds a new result type: File

    Python class: searx/result_types/file.py
    Jinja template: searx/templates/simple/result_templates/file.html
    CSS (less) client/simple/src/less/result_types/file.less

Class 'File' (singular) replaces template 'files.html' (plural).  The renaming
was carried out because there is only one file (singular) in a result. Not to be
confused with the category 'files' where in multiple results can exist.

As mentioned in issue [1], the class '.category-files' was removed from the CSS
and the stylesheet was adopted in result_types/file.less (there based on the
templates and no longer based on the category).

[1] https://github.com/searxng/searxng/issues/5198

Signed-off-by: Markus Heiser &lt;markus.heiser@darmarit.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR adds a new result type: File

    Python class: searx/result_types/file.py
    Jinja template: searx/templates/simple/result_templates/file.html
    CSS (less) client/simple/src/less/result_types/file.less

Class 'File' (singular) replaces template 'files.html' (plural).  The renaming
was carried out because there is only one file (singular) in a result. Not to be
confused with the category 'files' where in multiple results can exist.

As mentioned in issue [1], the class '.category-files' was removed from the CSS
and the stylesheet was adopted in result_types/file.less (there based on the
templates and no longer based on the category).

[1] https://github.com/searxng/searxng/issues/5198

Signed-off-by: Markus Heiser &lt;markus.heiser@darmarit.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[feat] engines: add Azure resources engine (#5235)</title>
<updated>2025-10-13T14:33:08+00:00</updated>
<author>
<name>Tommaso Colella</name>
<email>tommasocolella95@gmail.com</email>
</author>
<published>2025-10-13T14:33:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.slickd.xyz/searxng/.git/commit/?id=c34bb612847ce4584f65077b104164993bfa88c5'/>
<id>c34bb612847ce4584f65077b104164993bfa88c5</id>
<content type='text'>
Adds a new engine `searx/engines/azure.py` to search cloud resources on Azure.

A lot of enterprise users have to deal with Azure Public Cloud.  This helps them
easily search for cloud resources without logging in to the Portal first

How to test this PR locally?

You should create an App Registration on Azure Entra Id with Reader access on
the resources you want to search for.  You should create a Secret for the App
Registration.  After that, you should set up appropriate values in the
`settings.yml` file [1]::

   - name: azure
     engine: azure
     ...
     azure_tenant_id: "your_tenant_id"
     azure_client_id: "your_client_id"
     azure_client_secret: "your_client_secret"
     azure_token_expiration_seconds: 5000

[1] https://github.com/searxng/searxng/pull/5235#issuecomment-3397664928

Co-authored-by: Bnyro &lt;bnyro@tutanota.com&gt;
Co-authored-by: Markus Heiser &lt;markus.heiser@darmarit.de&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Adds a new engine `searx/engines/azure.py` to search cloud resources on Azure.

A lot of enterprise users have to deal with Azure Public Cloud.  This helps them
easily search for cloud resources without logging in to the Portal first

How to test this PR locally?

You should create an App Registration on Azure Entra Id with Reader access on
the resources you want to search for.  You should create a Secret for the App
Registration.  After that, you should set up appropriate values in the
`settings.yml` file [1]::

   - name: azure
     engine: azure
     ...
     azure_tenant_id: "your_tenant_id"
     azure_client_id: "your_client_id"
     azure_client_secret: "your_client_secret"
     azure_token_expiration_seconds: 5000

[1] https://github.com/searxng/searxng/pull/5235#issuecomment-3397664928

Co-authored-by: Bnyro &lt;bnyro@tutanota.com&gt;
Co-authored-by: Markus Heiser &lt;markus.heiser@darmarit.de&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>docs: remove unsupported `--replace` flag from Docker command (#5288)</title>
<updated>2025-10-10T18:31:48+00:00</updated>
<author>
<name>Mehmet Sait Cubukcu</name>
<email>109916532+cubukcum@users.noreply.github.com</email>
</author>
<published>2025-10-10T18:31:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.slickd.xyz/searxng/.git/commit/?id=613c1aa8ebe3b22e5be01dad03ed52cc0fe0d729'/>
<id>613c1aa8ebe3b22e5be01dad03ed52cc0fe0d729</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
