Wonderfall edited this page Feb 10, 2016 · 62 revisions

Classic installation


With Docker

First, make sure you have installed Docker. It is recommended to know how Docker containers work.


You should build searx from the embedded Dockerfile. Clone the repo first then build the image :

git clone
cd searx
docker build -t searx .


You can custom your searx instance with two environment variables :

  • IMAGE_PROXY (default : False), if set to True searx will proxy all images.
  • BASE_URL (default : False) should be set to your domain name (with http/https).


Run a searx container behind a reverse proxy :

docker run -d --name searx -e IMAGE_PROXY=True -e BASE_URL=https://domain.tld searx

Using nginx, create a vhost with the following content :

  location / {
      proxy_pass http://searx:8888;
      proxy_set_header        Host                 $host;
      proxy_set_header        X-Real-IP            $remote_addr;
      proxy_set_header        X-Forwarded-For      $proxy_add_x_forwarded_for;
      proxy_set_header        X-Remote-Port        $remote_port;
      proxy_set_header        X-Forwarded-Proto    $scheme;
      proxy_redirect          off;

If you don't want to use searx behind a reverse proxy, you can map ports, for instance :

docker run -d --name searx -p 8888:8888 -e IMAGE_PROXY=True searx

So you can go to http://localhost:$PORT and enjoy searx.


Using docker-compose and starting the v2 file format, you can use this :

    #network_mode: "bridge"
      context: /path/to/searx
      dockerfile: Dockerfile
    image: searx
    container_name: searx
      - BASE_URL="https://domain.tld"
      - IMAGE_PROXY=True