Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit

Signed-off-by: Inetol <>

Git stats


Failed to load latest commit information.
Latest commit message
Commit time
March 20, 2022 10:36
July 1, 2019 16:23
September 24, 2023 09:39


Create a new SearXNG instance in five minutes using Docker

What is included ?

Name Description Docker image Dockerfile
Caddy Reverse proxy (create a LetsEncrypt certificate automatically) caddy/caddy:2-alpine Dockerfile
SearXNG SearXNG by itself searxng/searxng:latest Dockerfile
Redis In-memory database redis:alpine Dockerfile-alpine.template

How to use it

  • Install docker
  • Install docker-compose (be sure that docker-compose version is at least 1.9.0)
  • Get searxng-docker
    cd /usr/local
    git clone
    cd searxng-docker
  • Edit the .env file to set the hostname and an email
  • Generate the secret key sed -i "s|ultrasecretkey|$(openssl rand -hex 32)|g" searxng/settings.yml
  • Edit the searxng/settings.yml file according to your need
  • Check everything is working: docker-compose up
  • Run SearXNG in the background: docker-compose up -d

How to access the logs

To access the logs from all the containers use: docker-compose logs -f.

To access the logs of one specific container:

  • Caddy: docker-compose logs -f caddy
  • SearXNG: docker-compose logs -f searxng
  • Redis: docker-compose logs -f redis

Start SearXNG with systemd

You can skip this step if you don't use systemd.

  • cp searxng-docker.service.template searxng-docker.service
  • edit the content of WorkingDirectory in the searxng-docker.service file (only if the installation path is different from /usr/local/searxng-docker)
  • Install the systemd unit:
    systemctl enable $(pwd)/searxng-docker.service
    systemctl start searxng-docker.service

Note on the image proxy feature

The SearXNG image proxy is activated by default.

The default Content-Security-Policy allow the browser to access to ${SEARXNG_HOSTNAME} and https://*;.

If some users wants to disable the image proxy, you have to modify ./Caddyfile. Replace the img-src 'self' data: https://*; by img-src * data:;.

Multi Architecture Docker images

Supported architecture:

  • amd64
  • arm64
  • arm/v7

How to update ?

To update the SearXNG stack:

git pull
docker compose pull
docker compose up -d

Or the old way (with the old docker-compose version):

git pull
docker-compose pull
docker-compose up -d


The docker-compose files for setting up a SearXNG instance with docker.








No releases published


No packages published