The docker-compose files for setting up a SearXNG instance with docker.
Go to file
Ivan Gabaldon 63f06f5db3
Replace with official Valkey image (#234)
* replace with official image

* use `7-alpine` tag

* prevent collision with other volumes

* Revert editing README formatting

---------

Co-authored-by: Émilien (perso) <4016501+unixfox@users.noreply.github.com>
2024-06-02 21:47:14 +02:00
searxng remove duplicated limiter parameter 2023-10-25 10:44:24 +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 Update Caddyfile to Add X-Real-IP to fix bot detection 2023-06-20 02:45:04 +00:00
LICENSE Initial commit 2019-07-01 16:23:52 +02:00
README.md Replace with official Valkey image (#234) 2024-06-02 21:47:14 +02:00
docker-compose.yaml Replace with official Valkey image (#234) 2024-06-02 21:47:14 +02:00
searxng-docker.service.template Fixed searxng-docker.service.template issue (#225) 2024-04-17 14:02:09 +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) docker.io/library/caddy:2-alpine Dockerfile
SearXNG SearXNG by itself docker.io/searxng/searxng:latest Dockerfile
Valkey In-memory database docker.io/valkey/valkey:7-alpine Dockerfile

How to use it

  • Install docker
  • 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
  • Run SearXNG in the background: docker compose up -d

[!WARNING]
If you use an older version of docker desktop (< 3.6.0), you may have to install Docker Compose v1. Accordingly, you should modify the commands in this documentation to suit Docker Compose v1. For instance, change 'docker compose up' to 'docker-compose up'.

Install the docker-compose plugin (be sure that docker-compose version is at least 1.9.0)

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
  • Valkey: 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://*.tile.openstreetmap.org;.

If some users want to disable the image proxy, you have to modify ./Caddyfile. Replace the img-src 'self' data: https://*.tile.openstreetmap.org; 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