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

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.

  • 2 months later...
  • Replies 50
  • Views 25.3k
  • 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

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

  • 3 months later...

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 by plantsandbinary

  • Author

None of that is related to the template.

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 by plantsandbinary

  • 3 months later...

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 by isvein

  • 6 months later...

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.

  • 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. 

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 Tailscale

Detecting Package Manager...

ERROR: Detection from Package Manager failed!

ERROR: Unraid Docker Hook script throw an error!

Starting container without Tailscale!

@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.

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!

  • Author

I believe TSDProxy is a common preferred method to access containers via Tailscale.

  • 3 weeks later...

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.15

  • SearXNG: 2025.6.12+a6d0333

Here 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 ** 
  • 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.

  • 4 weeks later...

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.

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 by sinbrkatetete

  • 10 months later...

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.

  • Author
GitHub
No image preview

Docker 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.

4 hours ago, Kilrah said:
GitHub
No image preview

Docker 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.

  • 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 by Kilrah

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.

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.

Screenshot 2026-06-05 114049.pngimage.png

  • 2 weeks later...

Hi,

just in case this helps anyone after the latest SearXNG update:

There is already an upstream GitHub issue about this:

GitHub
No image preview

TypeError: 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: de

After removing the language: line from the about: section, the container started again.

So the fix was:

about:

website: ...

instead of:

about:

website: ...

language: de

Important: 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 by tomkenobi

  • 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.html

https://docs.searxng.org/admin/searx.limiter.html

Removed all engines from the custom file and used use_default_settings: true

EDIT: 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 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.

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.