# ---

# title: Deploy your own search engine with SearXNG

Privacy-respecting, hackable metasearch engine

# Differences to searx

  • SearXNG is a fork of searx. Here are some of the changes:

# User experience

  • Huge update of the simple theme:
  • usable on desktop, tablet and mobile
  • light and dark versions (you can choose in the preferences)
  • support right-to-left languages

# see the screenshots

  • the translations are up to date, you can contribute on Weblate
  • the preferences page has been updated:
    • you can see which engines are reliable or not
    • engines are grouped inside each tab
    • each engine has a description

thanks to the anonymous metrics, it is easier to report a bug of an engine and thus engines get fixed more quickly if you don't want any metrics to be recorded, you can disable them on the server

administrator can block and/or replace the URLs in the search results

# Setup

  • you don't need Morty to proxy the images even on a public instance
  • you don't need Filtron to block bots, we implemented the builtin limiter
  • you get a well maintained Docker image, now also built for ARM64 and ARM/v7 architectures
  • alternatively we have up to date installation scripts

# Install

  • SSH into your server
  • Create a directory
mkdir /var/www/tools/search.webally.co.za
cd /var/www/tools/search.webally.co.za

Clone SearXNG

git clone https://github.com/searxng/searxng-docker.git .

# Output
Cloning into '.'...
remote: Enumerating objects: 272, done.
remote: Counting objects: 100% (33/33), done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 272 (delta 23), reused 23 (delta 22), pack-reused 239
Receiving objects: 100% (272/272), 70.19 KiB | 8.77 MiB/s, done.
Resolving deltas: 100% (153/153), done.
  • Create secret key
sed -i "s|SuperSecretKey|$(openssl rand -hex 32)|g" searxng/settings.yml
  • Update searxng/settings.yml
# see https://docs.searxng.org/admin/engines/settings.html#use-default-settings
use_default_settings: true
server:
  # base_url is defined in the SEARXNG_BASE_URL environment variable, see .env and docker-compose.yml
  secret_key: "supersecretkey"  # change this!
  limiter: true  # can be disabled for a private instance
  image_proxy: true
  method: "GET"
ui:
  static_use_hash: true
redis:
  url: redis://redis:6379/0
general:
  debug: false
  instance_name: "Cronje.Search.ME"
  contact_url: false
  enable_metrics: false
search:
  safe_search: 0
  autocomplete: "google"
  • Start the container
docker-compose up -d