The docker-compose files for setting up a SearXNG instance with docker.
Go to file
Alexandre Flament bdf5619765
[mod] upgrade to Caddy v2 (#44)
* Use docker image caddy:2-alpine
* Caddyfile: remove "limits 10KB"
* Caddyfile: URL /filtron/rules removes (filtron API still availabled on http://localhost:4041/rules )
* caddy storage are docker volumes (caddy-data and caddy-config). start.sh and stop.sh have been modified to keep these volumes.
* .env: Remove SEARX_PROTOCOL, SEARX_TLS, FILTRON_USER and FILTRON_PASSWORD variables.
* docker-compose.yml: filtron and morty listen on 127.0.0.1 (related to #38)

* Fix #37: settings ```SEARX_HOSTNAME=localhost:8888``` works as expected (https connection)
2020-07-13 08:12:32 +02:00
.env [mod] upgrade to Caddy v2 (#44) 2020-07-13 08:12:32 +02:00
.gitignore Minor bug fixed, minor changes 2019-07-13 13:28:55 +02:00
Caddyfile [mod] upgrade to Caddy v2 (#44) 2020-07-13 08:12:32 +02:00
LICENSE Initial commit 2019-07-01 16:23:52 +02:00
README.md [mod] upgrade to Caddy v2 (#44) 2020-07-13 08:12:32 +02:00
docker-compose.yaml [mod] upgrade to Caddy v2 (#44) 2020-07-13 08:12:32 +02:00
rules.json remove blocking when brotli is not supported and add blocking when gzip and deflate arent supported 2020-04-26 21:04:42 +02:00
searx-docker.service.template working searx-docker.service 2019-07-11 17:12:54 +02:00
start.sh [mod] upgrade to Caddy v2 (#44) 2020-07-13 08:12:32 +02:00
stop.sh [mod] upgrade to Caddy v2 (#44) 2020-07-13 08:12:32 +02:00
update.sh [mod] update.sh 2019-08-06 12:40:01 +02:00
util.sh *.sh: remove the check of .env modifications 2019-07-30 09:19:46 +02:00

README.md

searx-docker

Create a new searx instance in five minutes using Docker (see https://github.com/asciimoo/searx/issues/1561 )

What is included ?

Name Description Docker image Dockerfile
Caddy Reverse proxy (create a LetsEncrypt certificate automatically) caddy/caddy:2-alpine Dockerfile
Filtron Filtering reverse HTTP proxy, bot and abuse protection dalf/filtron:latest See asciimoo/filtron#4
Searx searx by itself searx/searx:latest Dockerfile
Morty Privacy aware web content sanitizer proxy as a service. dalf/morty:latest Dockerfile
Searx-checker Check which engines return results of the instance.
JSON result available at
https://{SEARX_HOSTNAME}/status
Automatically updated every 24h
searx/searx-checker:latest Dockerfile

How to use it

cd /usr/local
git clone https://github.com/searx/searx-docker.git
cd searx-docker
  • Edit the .env file according to your need
  • Check everything is working: ./start.sh,
  • cp searx-docker.service.template searx-docker.service
  • edit the content of WorkingDirectory in the searx-docker.service file (only if the installation path is different from /usr/local/searx-docker)
  • Install the systemd unit :
systemctl enable $(pwd)/searx-docker.service
systemctl start searx-docker.service

Note on the image proxy feature

The searx image proxy is activated by default using Morty.

The default Content-Security-Policy allow the browser to access to {SEARX_HOSTNAME} and https://*.tile.openstreetmap.org;.

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

Custom docker-compose.yaml

Do not modify docker-compose.yaml otherwise you won't be able to update easily from the git repository.

It is possible to the extend feature of docker-compose :

  • stop the service : systemctl stop searx-docker.service
  • create a new docker-compose-extend.yaml, check with start.sh
  • update searx-docker.service (see SEARX_DOCKERCOMPOSEFILE)
  • restart the servie : systemctl restart searx-docker.service

Multi Architecture Docker images

For now only the amd64 platform is supported.

How to update ?

Check the content of update.sh

Access to the Filtron API

The Filtron API is available on http://localhost:4041

For example, to display the loaded rules:

curl http://localhost:4041/rules | jq