Hostnames plugin

Attention

The “Hostname replace” plugin has been replace by “Hostnames plugin”, see PR 3463 & PR 3552.

The Hostnames plugin can be enabled by adding it to the enabled_plugins list in the setting.yml like so.

enabled_plugins:
  - 'Hostnames plugin'
  ...
  • hostnames.replace: A mapping of regular expressions to hostnames to be replaced by other hostnames.

    hostnames:
      replace:
        '(.*\.)?youtube\.com$': 'invidious.example.com'
        '(.*\.)?youtu\.be$': 'invidious.example.com'
        ...
    
  • hostnames.remove: A list of regular expressions of the hostnames whose results should be taken from the results list.

    hostnames:
      remove:
        - '(.*\.)?facebook.com$'
        - ...
    
  • hostnames.high_priority: A list of regular expressions for hostnames whose result should be given higher priority. The results from these hosts are arranged higher in the results list.

    hostnames:
      high_priority:
        - '(.*\.)?wikipedia.org$'
        - ...
    
  • hostnames.lower_priority: A list of regular expressions for hostnames whose result should be given lower priority. The results from these hosts are arranged lower in the results list.

    hostnames:
      low_priority:
        - '(.*\.)?google(\..*)?$'
        - ...
    

If the URL matches the pattern of high_priority AND low_priority, the higher priority wins over the lower priority.

Alternatively, you can also specify a file name for the mappings or lists to load these from an external file:

hostnames:
  replace: 'rewrite-hosts.yml'
  remove:
    - '(.*\.)?facebook.com$'
    - ...
  low_priority:
    - '(.*\.)?google(\..*)?$'
    - ...
  high_priority:
    - '(.*\.)?wikipedia.org$'
    - ...

The rewrite-hosts.yml from the example above must be in the folder in which the settings.yml file is already located (/etc/searxng). The file then only contains the lists or the mapping tables without further information on the namespaces. In the example above, this would be a mapping table that looks something like this:

'(.*\.)?youtube\.com$': 'invidious.example.com'
'(.*\.)?youtu\.be$': 'invidious.example.com'