The docker-compose files for setting up a SearXNG instance with docker.
Go to file
Alexandre Flament 914e6e3159 Remove scripts 2022-04-20 20:33:20 +02:00
.github/workflows [mod] add a nightly check of the docker images using Trivy 2022-01-29 14:22:16 +01:00
searxng static files: use hashes 2022-04-02 21:31:05 +02:00
.env Rely on searxng/settings.yml 2022-03-20 10:36:48 +01:00
.gitignore Rely on searxng/settings.yml 2022-03-20 10:36:48 +01:00
Caddyfile Rely on searxng/settings.yml 2022-03-20 10:36:48 +01:00
LICENSE Initial commit 2019-07-01 16:23:52 +02:00
README.md Remove scripts 2022-04-20 20:33:20 +02:00
docker-compose.yaml Rely on searxng/settings.yml 2022-03-20 10:36:48 +01:00
searxng-docker.service.template Remove scripts 2022-04-20 20:33:20 +02:00

README.md

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
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)
  • only on MacOSX: brew install coreutils to install greadlink
  • Get searxng-docker
    cd /usr/local
    git clone https://github.com/searxng/searxng-docker.git
    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

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://*.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 use 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 service: systemctl restart searxng-docker.service

Multi Architecture Docker images

Supported architecture:

  • amd64
  • arm64
  • arm/v7

How to update ?

Check the content of update.sh