February 6, 20242 yr Nevermind it works. I just needed to shut off the container long enough for Cloudflare to wipe everything. I was getting served a cached version.
May 3, 20242 yr Do you know how to fix this error searx.botdetection.config where it says that the /etc/searxng/limiter.toml configuration file is missing? 2024-05-03 14:37:45,073 WARNING:searx.botdetection.config: missing config file: /etc/searxng/limiter.toml WSGI app 0 (mountpoint='') ready in 2 seconds on interpreter 0x14750248a718 pid: 549 (default app) WSGI app 0 (mountpoint='') ready in 2 seconds on interpreter 0x14750248a718 pid: 569 (default app) 2024-05-03 14:37:45,073 WARNING:searx.botdetection.config: missing config file: /etc/searxng/limiter.toml WSGI app 0 (mountpoint='') ready in 2 seconds on interpreter 0x14750248a718 pid: 521 (default app) 2024-05-03 14:37:45,075 WARNING:searx.botdetection.config: missing config file: /etc/searxng/limiter.toml WSGI app 0 (mountpoint='') ready in 2 seconds on interpreter 0x14750248a718 pid: 514 (default app) 2024-05-03 14:37:45,075 WARNING:searx.botdetection.config: missing config file: /etc/searxng/limiter.toml WSGI app 0 (mountpoint='') ready in 2 seconds on interpreter 0x14750248a718 pid: 515 (default app) [uWSGI] getting INI configuration from /etc/searxng/uwsgi.ini
May 3, 20242 yr Author This seems to be the relevant doc: https://docs.searxng.org/admin/searx.limiter.html
August 9, 20241 yr Just updated and it's wiped my settings again. It didn't replace my old settings as settings.yml.save either which the documentation says it should have. So there's definitely some issues with this template. When SearxNG is updated it should replace the existing settings.yml with a new settings.yml but also add a copy as settings.yml.new and save the old settings.yml you made to settings.yml.save. The container doesn't seem to do this at all. It just replaces settings.yml with whatever is newer. I'm really lucky that I just backed up my settings.yml manually to a different location right before doing the update. I'm actually going to disable updates for this container because this is pretty annoying. I also have to shut down my instance for almost a full hour for Cloudflare to finally update it so my settings.yml is respected again. It would also be great if this container came with a basic limiter as @Krypto5 mentioned the log spam is a problem. Edited August 9, 20241 yr by plantsandbinary
August 10, 20241 yr 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 decides to do this, everyone else will have to do the following to prevent errors and error spam in the logs. 1. In the UNRAID container template settings, do not put anything inside the "installed plugins" box, because the container template does not create the proper permissions to install any plugins. I just deleted the entire section from the template because I don't need to install anything. If you want it to check/install/update plugins you will have to fix the permissions yourself until the maintainer does it. 2. In your settings.yml remove the entire search engine block for both "gentoo" and "frisalibre". This stops the error spam that these engines aren't in <blahblah>.py 3. To get hostname_replace plugin to work again, you now have to use the updated plugin called "hostnames". So change hostname_replace to "hostnames". The relevant plugin block on my instance in my settings.yml looks like this: settings.yml enabled_plugins: - 'Hostnames plugin' # see rewrite-hosts.yml file for the removed/replaced hostnames # # these plugins are enabled if nothing is configured .. # - 'Hash plugin' # - 'Self Information' # - 'Tracker URL remover' # - 'Ahmia blacklist' # activation depends on outgoing.using_tor_proxy # # these plugins are disabled if nothing is configured .. # - 'Open Access DOI rewrite' # - 'Tor check plugin' # # Read the docs before activate: auto-detection of the language could be # # detrimental to users expectations / users can activate the plugin in the # # preferences if they want. # - 'Autodetect search language' # Configuration of the "Hostnames plugin": # # hostnames: # replace: # '(.*\.)?youtube\.com$': 'invidious.example.com' # '(.*\.)?youtu\.be$': 'invidious.example.com' # '(.*\.)?reddit\.com$': 'teddit.example.com' # '(.*\.)?redd\.it$': 'teddit.example.com' # '(www\.)?twitter\.com$': 'nitter.example.com' # remove: # - '(.*\.)?facebook.com$' # low_priority: # - '(.*\.)?google(\..*)?$' # high_priority: # - '(.*\.)?wikipedia.org$' # # Alternatively you can use external files for configuring the "Hostnames plugin": # hostnames: remove: 'rewrite-hosts.yml' I am using a second file inside the same settings.yml directory called "rewrite-hosts.yml" as shown in the docs: https://docs.searxng.org/src/searx.plugins.hostnames.html In this file I have removed the following garbage links which utterly infest search results with trash: rewrite-hosts.yml '(.*\.)?facebook\.com$': false '(.*\.)?instagram\.com$': false '(.*\.)?quora\.com$': false '(.*\.)?twitter\.com$': false '(.*\.)?x\.com$': false '(.*\.)?reddit\.com$': false '(.*\.)?youtube\.com$': false '(.*\.)?google\.com$': false '(.*\.)?apple\.com$': false '(.*\.)?tripadvisor\.com$': false '(.*\.)?tripadvisor\.com.au$': false '(.*\.)?tripadvisor\.in$': false '(.*\.)?deviantart\.com$': false '(.*\.)?shutterstock\.com$': false '(.*\.)?researchgate\.net$': false I'll add more later but this will do for now. 4. You need to create the file limiter.toml with the following contents to avoid the limiter file missing error spam. Put it also in the same location as your settings.yml limiter.toml [real_ip] # Number of values to trust for X-Forwarded-For. x_for = 1 # The prefix defines the number of leading bits in an address that are compared # to determine whether or not an address is part of a (client) network. ipv4_prefix = 32 ipv6_prefix = 48 [botdetection.ip_limit] # To get unlimited access in a local network, by default link-lokal addresses # (networks) are not monitored by the ip_limit filter_link_local = false # activate link_token method in the ip_limit method link_token = false [botdetection.ip_lists] # In the limiter, the ip_lists method has priority over all other methods -> if # an IP is in the pass_ip list, it has unrestricted access and it is also not # checked if e.g. the "user agent" suggests a bot (e.g. curl). block_ip = [ # '93.184.216.34', # IPv4 of example.org # '257.1.1.1', # invalid IP --> will be ignored, logged in ERROR class ] pass_ip = [ # '192.168.0.0/16', # IPv4 private network # 'fe80::/10' # IPv6 linklocal / wins over botdetection.ip_limit.filter_link_local ] # Activate passlist of (hardcoded) IPs from the SearXNG organization, # e.g. `check.searx.space`. pass_searxng_org = true 5. Lastly, disable automatic updates for the container if you are using CA Auto Update Applications plugin. Do not update the container manually either, without first backing up your settings.yml file and possibly your rewrite-hosts.yml if you are using that too. As the maintainer's template again doesn't have the permissions set correctly to update settings.yml and move your previous one to settings.yml.save. Which is shown in the permissions error spam in the container logs after updating the container. I save my settings.yml to another location and when I feel like updating it (once a month, if that). I overwrite the settings.yml with my backup. Not the cleanest solution but now my container logs have no error spam and no errors in general. At least I finally have a private instance of this running which excludes garbage results from Quora, Reddit, Facebook etc. is private, secure and works as intended without throwing errors left and right. Edited August 10, 20241 yr by plantsandbinary
November 15, 20241 yr Is anyone using this behind SWAG? If so, what does the swag config file looks like? Edit: Got some help on reddit and made this file, seems to be working fine ## Version 2024/11/17 # make sure that your searXNG container is named searxng # make sure that your dns has a cname set for search. server { listen 443 ssl; listen [::]:443 ssl; server_name search.*; include /config/nginx/ssl.conf; location / { include /config/nginx/proxy.conf; include /config/nginx/resolver.conf; set $upstream_app searxng; set $upstream_port 8080; set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port; } } Edited November 17, 20241 yr by isvein
May 19, 20251 yr Hi, it seems since the latest update yesterday my Tailscale no longer works for this container. Is this a known issue or are other people experiencing this? I tried to remove the entire container, delete everything and reinstall but Tailscale just does not install or even try to. All of my other containers are fine with Tailscale, it's just this one since the update.
May 19, 20251 yr Author The built-in tailscale integration is a dirty hack that highly depends on how the container is made, and doesn't work with many of them. Seems searxng did some container changes and it's possible that made the hack not work anymore.
May 23, 20251 yr On 5/19/2025 at 6:41 AM, Tylan said:Hi, it seems since the latest update yesterday my Tailscale no longer works for this container. Is this a known issue or are other people experiencing this? I tried to remove the entire container, delete everything and reinstall but Tailscale just does not install or even try to. All of my other containers are fine with Tailscale, it's just this one since the update.The same happened over here. I tried to reinstall, but in the logs it says:Executing Unraid Docker Hook for TailscaleDetecting Package Manager...ERROR: Detection from Package Manager failed!ERROR: Unraid Docker Hook script throw an error! Starting container without Tailscale!
May 23, 20251 yr @Kilrah thanks, I didn't realize it was considered a dirty hack, but now I know especially with seeing how it worked in this situation.@Camilo I posed the question on Reddit as well, and it seems that SearXNG siwtched to Wolfi Linux, which is a "distroless" version of Linux which does not come with a package manager so it seems this method will not work anymore. I ended up just pumping it through SWAG and called it a day.
May 23, 20251 yr 5 minutes ago, Tylan said:@Camilo I posed the question on Reddit as well, and it seems that SearXNG siwtched to Wolfi Linux, which is a "distroless" version of Linux which does not come with a package manager so it seems this method will not work anymore. I ended up just pumping it through SWAG and called it a day.@Tylan Thank you for the information! Would you mind giving a procedure, steps or a link to follow in order to use SWAG, instead? Thank you!
May 23, 20251 yr Author I believe TSDProxy is a common preferred method to access containers via Tailscale.
June 13, 20251 yr Hi, just installed SearXNG yesterday and having a bit of difficulty routing traffic from SearXNG through my Gluetun container. Has anyone been able to do this? I have no issues running my *arr stack as well as Overseerr and qBittorrent through Gluetun and have been successfully for quite some time. When setting the SearXNG container "Extra parameters" to --network=container:GluetunVPN and "Network type" to "None", the SearXNG container will not start. Running without routing through Gluetun works fine. Any help would be great!Unraid: 6.12.15SearXNG: 2025.6.12+a6d0333Here are the logs that I'm getting:[uWSGI] getting INI configuration from /etc/searxng/uwsgi.ini [uwsgi-static] added mapping for /static => /usr/local/searxng/searx/static *** Starting uWSGI 2.0.30 (64bit) on [Fri Jun 13 16:20:13 2025] *** compiled with version: 14.3.0 on 03 June 2025 19:30:19 os: Linux-6.1.126-Unraid #1 SMP PREEMPT_DYNAMIC Sun Jan 19 15:51:34 PST 2025 nodename: f42734efbf89 machine: x86_64 clock source: unix detected number of CPU cores: 8 current working directory: /usr/local/searxng detected binary path: /usr/local/searxng/venv/bin/uwsgi !!! no internal routing support, rebuild with pcre support !!! setgid() to 977 setuid() to 977 chdir() to /usr/local/searxng/searx/ your processes number limit is 126890 your memory page size is 4096 bytes detected max file descriptor number: 40960 building mime-types dictionary from file /etc/mime.types...1390 entry found lock engine: pthread robust mutexes thunder lock: disabled (you can enable it with --thunder-lock) probably another instance of uWSGI is running on the same address ([::]:8080). bind(): Address in use [core/socket.c line 769] SearXNG 2025.6.12+0b877f1 ... ... INFORMATION ... Update available for "/etc/searxng/uwsgi.ini" ... It is recommended to update the configuration file to ensure proper functionality ... ... New version placed at "/etc/searxng/uwsgi.ini.new" ... Please review and merge changes ... ... ... INFORMATION ... Update available for "/etc/searxng/settings.yml" ... It is recommended to update the configuration file to ensure proper functionality ... ... New version placed at "/etc/searxng/settings.yml.new" ... Please review and merge changes ... ** Press ANY KEY to close this window **
June 13, 20251 yr Author 11 minutes ago, ninjaroll said:When setting the SearXNG container "Extra parameters" to --network=container:GluetunVPN and "Network type" to "None"On Unraid 7 you should be able to select the container directly in the dropdown, but no idea if it'll help.
July 11, 2025Jul 11 After a lot of faffing about, the only way I could get this SearXNG container to route through Gluetun successfully was to KEEP the 8080 port (I changed other containers so that this one could have that port instead), and to use the "--network=container:GluetunVPN" extra parameter, setting Network type to None (the gluetun container dropdown on Network would not work).So, it was a pain, but it works now.
July 17, 2025Jul 17 On 5/26/2023 at 9:19 PM, aglyons said:@Kilrah BINGO! That fixed it. Running on port 80! Thx very much for the tip!Does it still work for you? I was running it on secondary NIC also, for quite a while on port 80. (worked somehow without the BIND_ADDRESS "key"). A week or so (maybe more, I'm bad with time), after an update it reverted to 8080 and won't budge whatever I do. Is there a specific format I need to use for [IP]:[PORT] in the BIND_ADDRESS? THanks in advance.EDIT: I'm obviously not as good of a reader as I've immagined myself to be... In any case, if anyone wonders the new "keys" are GRANIAN_HOST and GRANIAN_PORT. Sorry for taking up space. Edited July 17, 2025Jul 17 by sinbrkatetete
May 30May 30 Latest update 2025.5.30-xxx prevented my container from starting. Error in the logs was "unexpected error from worker-1".Forcing 2026.5.29-780ee3256 works though.
May 30May 30 Author GitHubDocker image crashes upon start · Issue #6178 · searxng/s...How To Reproduce? Start SearXNG using docker-compose Expected behavior The container starts and does not crash. Screenshots & Logs ❯ curl -fsSL \ -O https://raw.githubusercontent.com/searxng/searxn...Seems like it got fixed already.
May 30May 30 4 hours ago, Kilrah said:GitHubDocker image crashes upon start · Issue #6178 · searxng/s...How To Reproduce? Start SearXNG using docker-compose Expected behavior The container starts and does not crash. Screenshots & Logs ❯ curl -fsSL \ -O https://raw.githubusercontent.com/searxng/searxn...Seems like it got fixed already.Negative. Pulled the latest update with the same result as before. Running Unraid 7.3.1 for the record.
May 31May 31 Author 2026.5.31+300695de5 is fine here.You likely didn't delete the orphan image and thus reused 2026.05.30, check for updates again. Edited May 31May 31 by Kilrah
June 3Jun 3 On 5/31/2026 at 2:18 AM, Kilrah said:2026.5.31+300695de5 is fine here.You likely didn't delete the orphan image and thus reused 2026.05.30, check for updates again.I upgraded to and downgraded from 2026.5.31 a number of times trying to get it to work. Deleting orphan images and doing complete clean installs with no success.But whatever the issue was 2026.6.2 seems to be working as intended. So problem mysteriously solved I guess.
June 5Jun 5 For people struggling with Gluetun its pretty straight forward to modify the container without ripping it apart. Set network mode to "bridge" delete the old port. Add a new port w/ a new container port while in bridge mode. Switch the networking mode back to Container, select your gluetun container. Add the two environment variables that control the searxng server binding. Bob's your uncle.
June 16Jun 16 Hi,just in case this helps anyone after the latest SearXNG update:There is already an upstream GitHub issue about this:GitHubTypeError: engine 'xyz' (xpath) - in the about section --...Using podman with the latest docker image. Since update this morning, container is crashing. I asked my local ai to fix it, this is the finding: Root cause: The searxng latest image auto-updated th...My Unraid container also failed to start after updating to the image based on commit cf1410af8d794793c8af02b97d3e1cf3bc7a7dda.The relevant error was:TypeError: engine 'woxikon.de synonyme' (xpath) - in the about section --> Unexpected keyword argument 'language'In my case the issue was caused by old entries in my mounted appdata settings.yml / settings.yaml.I had three engine definitions with this kind of structure:about: website: ... language: deAfter removing the language: line from the about: section, the container started again.So the fix was:about: website: ...instead of:about: website: ... language: deImportant: I only removed language: where it was inside an about: block. I did not remove all language: entries globally.There were also other old-engine warnings in my log, e.g. podcastindex, searchcode_code, livespace and wikicommons wc_search_type warnings, but those did not seem to be the actual startup blocker in my case.So for Unraid users: if the container fails after the update, check the mounted appdata settings file directly, not only the Docker template fields. A rollback to the previous image also seems to be mentioned upstream as a workaround, but cleaning up the old settings file fixed it for me. Edited June 16Jun 16 by tomkenobi
June 16Jun 16 Author Yeah it seems they changed a lot of stuff in the config so no choice but to update your settings files.Mine broke because apparently the image had a built-in redis which is now gone and the settings keys were changed from redis to valkey. Then once that was fixed the above language thing, then once I removed those it complained of stuff needing to be added to others...So I basically rebuilt my configs from the current defaults:https://docs.searxng.org/admin/settings/settings.htmlhttps://docs.searxng.org/admin/searx.limiter.htmlRemoved all engines from the custom file and used use_default_settings: trueEDIT: Ah, it seems it created .new files that were presumably auto-migrated? So you might be able to just rename those to be active Edited June 16Jun 16 by Kilrah
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.