The docker-compose files for setting up a SearXNG instance with docker.
Find a file
Alexandre Flament c7b3f004eb
Merge pull request #7 from searxng/fix-6
Fix docker-compose.yml
2021-11-27 10:57:20 +01:00
.env SearXNG 2021-10-01 18:13:17 +02:00
.gitignore SearXNG 2021-10-01 18:13:17 +02:00
Caddyfile SearXNG 2021-10-01 18:13:17 +02:00
docker-compose.yaml Fix docker-compose.yml 2021-11-27 10:56:56 +01:00
LICENSE Initial commit 2019-07-01 16:23:52 +02:00
README.md SearXNG 2021-10-01 18:13:17 +02:00
rules.json Fix Searx as a search engine on Firefox android 2020-11-10 22:35:30 +02:00
searxng-docker.service.template SearXNG 2021-10-01 18:13:17 +02:00
start.sh [mod] try to use greadlink if readlink is not available 2020-08-20 09:46:47 +02:00
stop.sh [mod] try to use greadlink if readlink is not available 2020-08-20 09:46:47 +02:00
update.sh SearXNG 2021-10-01 18:13:17 +02:00
util.sh *.sh: remove the check of .env modifications 2019-07-30 09:19:46 +02:00

searxng-docker

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
Filtron Filtering reverse HTTP proxy, bot and abuse protection dalf/filtron:latest See asciimoo/filtron#4
SearXNG SearXNG by itself searxng/searxng:latest Dockerfile
Morty Privacy aware web content sanitizer proxy as a service. dalf/morty:latest Dockerfile

How to use it

cd /usr/local
git clone https://github.com/searxng/searxng-docker.git
cd searxng-docker
  • Generate MORTY_KEY sed -i "s|ReplaceWithARealKey\!|$(openssl rand -base64 33)|g" .env
  • Edit the other settings in .env file according to your need
  • Check everything is working: ./start.sh,
  • 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 using Morty.

The default Content-Security-Policy allow the browser to access to {SEARXNG_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 searxng-docker.service
  • create a new docker-compose-extend.yaml, check with start.sh
  • update searxng-docker.service (see SEARXNG_DOCKERCOMPOSEFILE)
  • restart the servie : systemctl restart searxng-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