Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[Support] kilrah/searxng

Featured Replies

It seems lots of changes breaking this container on the regular with every reboot.

I ended up setting the repository to a known good for now:
searxng/searxng:2026.6.13-a29cda858

I also kept losing my Flask session signing key for cookies from my settings.yml file so I added the environment variable (type Variable)
Name SEARXNG_SECRET
Key SEARXNG_SECRET
Value Paste in my ultrasecretkey from settings.yml

Click Apply.

Hopefully this will prevent future config merges from breaking startup and resetting my key.

  • 3 weeks later...
  • Replies 56
  • Views 27.5k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • plantsandbinary
    plantsandbinary

    Alright seeing as I have to do everything myself to get this container working properly and without any error spam etc.   I've done the following and until the maintainer of this container d

  • @Kilrah   BINGO!   That fixed it. Running on port 80!   Thx very much for the tip!

  • I'm not sure what was wrong, I couldn't get this to work all day yesterday, woke up this morning and now it works. Thank you again.

Posted Images

Upgraded to UnRAID 7.3.1, and it no longer starts. Any ideas?

TypeError: Unexpected keyword argument 'requires_api_key'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):

File "/usr/lib/python3.14/multiprocessing/process.py", line 320, in _bootstrap

self.run()

~~~~~~~~^^

File "/usr/lib/python3.14/multiprocessing/process.py", line 108, in run

self._target(*self._args, **self._kwargs)

~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/usr/local/searxng/.venv/lib/python3.14/site-packages/granian/server/mp.py", line 90, in wrapped

callback = callback_loader()

File "/usr/local/searxng/.venv/lib/python3.14/site-packages/granian/_internal.py", line 65, in load_target

module = load_module(path)

File "/usr/local/searxng/.venv/lib/python3.14/site-packages/granian/_internal.py", line 47, in load_module

import(module_name)

~~~~~~~~~~^^^^^^^^^^^^^

File "/usr/local/searxng/searx/webapp.py", line 1407, in <module>

init()

~~~~^^

File "/usr/local/searxng/searx/webapp.py", line 1379, in init

searx.search.initialize(check_network=True, enable_metrics=metrics)

~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/usr/local/searxng/searx/search/__init__.py", line 39, in initialize

load_engines(settings_engines)

~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^

File "/usr/local/searxng/searx/engines/__init__.py", line 321, in load_engines

engine = load_engine(engine_data)

File "/usr/local/searxng/searx/engines/__init__.py", line 141, in load_engine

update_engine_attributes(engine, engine_data)

~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^

File "/usr/local/searxng/searx/engines/__init__.py", line 200, in update_engine_attributes

raise TypeError(

f"engine '{engine_data['name']}' ({engine_data['engine']}) - in the about section --> {exc}"

) from exc

TypeError: engine 'gpodder' (json_engine) - in the about section --> Unexpected keyword argument 'requires_api_key'

[ERROR] Unexpected exit from worker-1

[INFO] Shutting down granian

[INFO] Stopped worker-1

[INFO] Granian shutdown completed, see ya!

  • Author

See the last few posts, searxng has recently changed stuff that requires adapting your config files.

I can also Confirm with @House Of Cards Receiving same error during docker start. Thank you @Kilrah for your work maintaining docker container!

Recently my instance of SearXNG stopped working. Every time it does a search, it changes the user to 977:977, which makes it impossible for SearXNG to access the files in the appdata folder. When I change it back to 99:100 I can do exactly one succesful search before it changes itself back to 977:977 again and it's unable to search.

Someone suggested adding --user 977:977 to extra parameters of the docker container. I did, and now my docker container has disappeared. I can't even find it with Portainer.

What is going on? How do I get my container back? And how can I make it function again without constantly switching users to 977?

  • 5 weeks later...

Hi all,

I recently having trouble with every search and get a timeout error. I have tried to reinstall it and revert it to searxng/searxng:2026.6.13-a29cda858 as per @klingon00 's advice, however I still get the same error.

Has anyone seen this or know any solution?

Log:

026-08-13 17:29:19,594 ERROR:searx.engines: (PID 926) loading engine ahmia failed: set engine to inactive!

2026-08-13 17:29:19,694 ERROR:searx.engines: (PID 926) loading engine torch failed: set engine to inactive!

2026-08-13 17:29:19,729 WARNING:searx.botdetection.config: missing config file: /etc/searxng/limiter.toml

2026-08-13 17:29:22,966 WARNING:searx.network.wikidata: HTTP Request failed: GET https://query.wikidata.org/sparql?query=%0ASELECT+%3Fitem+%3Fname%0AWHERE+%7B%0A++++%7B%0A++++++SELECT+%3Fitem%0A++++++WHERE+%7B+%3Fitem+wdt%3AP279%2A+wd%3AQ12132+%7D%0A++++%7D+UNION+%7B%0A++++++VALUES+%3Fitem+%7B+wd%3AP571+wd%3AP576+wd%3AP580+wd%3AP582+wd%3AP569+wd%3AP570+wd%3AP619+wd%3AP620+wd%3AP27+wd%3AP495+wd%3AP17+wd%3AP159+wd%3AP36+wd%3AP35+wd%3AP6+wd%3AP122+wd%3AP37+wd%3AP1082+wd%3AP2046+wd%3AP281+wd%3AP38+wd%3AP2048+wd%3AP400+wd%3AP50+wd%3AP170+wd%3AP57+wd%3AP175+wd%3AP178+wd%3AP162+wd%3AP176+wd%3AP58+wd%3AP272+wd%3AP264+wd%3AP123+wd%3AP449+wd%3AP750+wd%3AP86+wd%3AP577+wd%3AP136+wd%3AP364+wd%3AP212+wd%3AP957+wd%3AP275+wd%3AP277+wd%3AP348+wd%3AP840+wd%3AP1098+wd%3AP282+wd%3AP1018+wd%3AP218+wd%3AP169+wd%3AP112+wd%3AP1454+wd%3AP137+wd%3AP1029+wd%3AP225+wd%3AP274+wd%3AP1346+wd%3AP1120+wd%3AP498+wd%3AP856+wd%3AP1324+wd%3AP1581+%7D%0A++++%7D%0A++++OPTIONAL+%7B+%3Fitem+rdfs%3Alabel+%3Fname.+%7D%0A%7D%0A

2026-08-13 17:29:22,974 ERROR:searx.searx.search.processor: (PID 926) Init method of engine wikidata failed due to an exception.

Traceback (most recent call last):

File "/usr/local/searxng/searx/search/processors/abstract.py", line 156, in init_engine

init_ok = self.engine.init(eng_setting)

File "/usr/local/searxng/searx/engines/wikidata.py", line 838, in init

init_wikidata_properties()

~~~~~~~~~~~~~~~~~~~~~~~~^^

File "/usr/local/searxng/searx/engines/wikidata.py", line 865, in init_wikidata_properties

jsonresponse = send_wikidata_query(query, **kwargs)

File "/usr/local/searxng/searx/engines/wikidata.py", line 472, in send_wikidata_query

http_response = get(SPARQL_ENDPOINT_URL + "?" + urlencode({"query": query}), headers=get_headers(), **kwargs)

File "/usr/local/searxng/searx/network/__init__.py", line 175, in get

return request('get', url, **kwargs)

File "/usr/local/searxng/searx/network/__init__.py", line 106, in request

return future.result(timeout)

~~~~~~~~~~~~~^^^^^^^^^

File "/usr/lib/python3.14/concurrent/futures/_base.py", line 450, in result

return self.__get_result()

~~~~~~~~~~~~~~~~~^^

File "/usr/lib/python3.14/concurrent/futures/_base.py", line 395, in __get_result

raise self._exception

File "/usr/local/searxng/searx/network/network.py", line 304, in request

return await self.call_client(False, method, url, **kwargs)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/usr/local/searxng/searx/network/network.py", line 287, in call_client

return self.patch_response(response, do_raise_for_httperror)

~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/usr/local/searxng/searx/network/network.py", line 256, in patch_response

raise_for_httperror(response)

~~~~~~~~~~~~~~~~~~~^^^^^^^^^^

File "/usr/local/searxng/searx/network/raise_for_httperror.py", line 76, in raise_for_httperror

raise SearxEngineAccessDeniedException(message='HTTP error ' + str(resp.status_code))

searx.exceptions.SearxEngineAccessDeniedException: HTTP error 403 (suspended_time=180)

2026-08-13 17:29:22,982 ERROR:searx.search.processors: can't register engine processor: wikidata (init failed)

2026-08-13 17:30:08,278 ERROR:searx.botdetection: X-Forwarded-For nor X-Real-IP header is set!

2026-08-13 17:30:18,439 ERROR:searx.engines.wikipedia: engine timeout

2026-08-13 17:30:18,439 ERROR:searx.engines.duckduckgo: engine timeout

2026-08-13 17:30:18,439 ERROR:searx.engines.google: engine timeout

2026-08-13 17:30:18,439 ERROR:searx.engines.startpage: engine timeout

2026-08-13 17:30:18,439 ERROR:searx.engines.brave: engine timeout

2026-08-13 17:30:18,481 ERROR:searx: call to ResultContainer.add_unresponsive_engine after ResultContainer.close

2026-08-13 17:30:18,481 ERROR:searx: call to ResultContainer.add_unresponsive_engine after ResultContainer.close

2026-08-13 17:30:18,488 ERROR:searx: call to ResultContainer.add_unresponsive_engine after ResultContainer.close

2026-08-13 17:30:18,490 ERROR:searx: call to ResultContainer.add_unresponsive_engine after ResultContainer.close

2026-08-13 17:30:18,503 ERROR:searx: call to ResultContainer.add_unresponsive_engine after ResultContainer.close

2026-08-13 17:30:18,609 WARNING:searx.engines.google: ErrorContext('searx/search/processors/online.py', 207, 'response = req(params["url"], **request_args) # pyright: ignore[reportArgumentType]', 'httpx.ConnectTimeout', None, (None, None, 'www.google.com')) False

2026-08-13 17:30:18,609 ERROR:searx.engines.google: HTTP requests timeout (search duration : 3.1711176190292463 s, timeout: 3.0 s) : ConnectTimeout

2026-08-13 17:30:18,610 WARNING:searx.engines.duckduckgo: ErrorContext('searx/search/processors/online.py', 207, 'response = req(params["url"], **request_args) # pyright: ignore[reportArgumentType]', 'httpx.ConnectTimeout', None, (None, None, 'html.duckduckgo.com')) False

2026-08-13 17:30:18,610 ERROR:searx.engines.duckduckgo: HTTP requests timeout (search duration : 3.171607092022896 s, timeout: 3.0 s) : ConnectTimeout

2026-08-13 17:30:18,610 WARNING:searx.engines.wikipedia: ErrorContext('searx/search/processors/online.py', 207, 'response = req(params["url"], **request_args) # pyright: ignore[reportArgumentType]', 'httpx.ConnectTimeout', None, (None, None, 'en.wikipedia.org')) False

2026-08-13 17:30:18,610 ERROR:searx.engines.wikipedia: HTTP requests timeout (search duration : 3.1718954580137506 s, timeout: 3.0 s) : ConnectTimeout

2026-08-13 17:30:18,611 WARNING:searx.engines.brave: ErrorContext('searx/search/processors/online.py', 207, 'response = req(params["url"], **request_args) # pyright: ignore[reportArgumentType]', 'httpx.ConnectTimeout', None, (None, None, 'search.brave.com')) False

2026-08-13 17:30:18,611 ERROR:searx.engines.brave: HTTP requests timeout (search duration : 3.172693776024971 s, timeout: 3.0 s) : ConnectTimeout

2026-08-13 17:30:18,611 WARNING:searx.engines.startpage: ErrorContext('searx/engines/startpage.py', 201, 'resp = get(get_sc_url, headers=headers)', 'httpx.ConnectTimeout', None, (None, None, 'www.startpage.com')) False

2026-08-13 17:30:18,611 ERROR:searx.engines.startpage: HTTP requests timeout (search duration : 3.172919926000759 s, timeout: 3.0 s) : ConnectTimeout

2026-08-13 17:31:27,658 ERROR:searx.engines.wikipedia: engine timeout

2026-08-13 17:31:27,662 ERROR:searx.engines.duckduckgo: engine timeout

2026-08-13 17:31:27,662 ERROR:searx.engines.google: engine timeout

2026-08-13 17:31:27,662 ERROR:searx.engines.startpage: engine timeout

2026-08-13 17:31:27,662 ERROR:searx.engines.brave: engine timeout

2026-08-13 17:31:27,694 ERROR:searx: call to ResultContainer.add_unresponsive_engine after ResultContainer.close

2026-08-13 17:31:27,696 WARNING:searx.engines.google: ErrorContext('searx/search/processors/online.py', 207, 'response = req(params["url"], **request_args) # pyright: ignore[reportArgumentType]', 'httpx.ConnectTimeout', None, (None, None, 'www.google.com')) False

2026-08-13 17:31:27,696 ERROR:searx.engines.google: HTTP requests timeout (search duration : 3.038569670985453 s, timeout: 3.0 s) : ConnectTimeout

2026-08-13 17:31:27,699 ERROR:searx: call to ResultContainer.add_unresponsive_engine after ResultContainer.close

2026-08-13 17:31:27,699 ERROR:searx: call to ResultContainer.add_unresponsive_engine after ResultContainer.close

2026-08-13 17:31:27,700 ERROR:searx: call to ResultContainer.add_unresponsive_engine after ResultContainer.close

2026-08-13 17:31:27,703 WARNING:searx.engines.duckduckgo: ErrorContext('searx/search/processors/online.py', 207, 'response = req(params["url"], **request_args) # pyright: ignore[reportArgumentType]', 'httpx.ConnectTimeout', None, (None, None, 'html.duckduckgo.com')) False

2026-08-13 17:31:27,703 ERROR:searx.engines.duckduckgo: HTTP requests timeout (search duration : 3.0451703700236976 s, timeout: 3.0 s) : ConnectTimeout

2026-08-13 17:31:27,704 WARNING:searx.engines.brave: ErrorContext('searx/search/processors/online.py', 207, 'response = req(params["url"], **request_args) # pyright: ignore[reportArgumentType]', 'httpx.ConnectTimeout', None, (None, None, 'search.brave.com')) False

2026-08-13 17:31:27,705 ERROR:searx.engines.brave: HTTP requests timeout (search duration : 3.047409077989869 s, timeout: 3.0 s) : ConnectTimeout

2026-08-13 17:31:27,706 WARNING:searx.engines.wikipedia: ErrorContext('searx/search/processors/online.py', 207, 'response = req(params["url"], **request_args) # pyright: ignore[reportArgumentType]', 'httpx.ConnectTimeout', None, (None, None, 'en.wikipedia.org')) False

2026-08-13 17:31:27,706 ERROR:searx.engines.wikipedia: HTTP requests timeout (search duration : 3.0486319509800524 s, timeout: 3.0 s) : ConnectTimeout

2026-08-13 17:31:27,710 ERROR:searx: call to ResultContainer.add_unresponsive_engine after ResultContainer.close

2026-08-13 17:31:27,714 WARNING:searx.engines.startpage: ErrorContext('searx/engines/startpage.py', 201, 'resp = get(get_sc_url, headers=headers)', 'httpx.ConnectTimeout', None, (None, None, 'www.startpage.com')) False

2026-08-13 17:31:27,714 ERROR:searx.engines.startpage: HTTP requests timeout (search duration : 3.056557756033726 s, timeout: 3.0 s) : ConnectTimeout

SearXNG 2026.6.13-a29cda858

Updating certificates in /etc/ssl/certs...

0 added, 0 removed; done.

Running hooks in /etc/ca-certificates/update.d...

done.

Thanks in advance.

  • 2 weeks later...

can I get some help with getting this to work with the built in tailscale function of unraid? from what i gather this is very container specific to work.

this shows up in my log on start up

?Executing Unraid Docker Hook for Tailscale

Detecting Package Manager...

ERROR: Detection from Package Manager failed!

ERROR: Unraid Docker Hook script throw an error!"

then it proceeds to start without tailscale

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.