The docker-compose files for setting up a SearXNG instance with docker.
Go to file
Ivan Gabaldon 5d066a4c63
features cleanup
Since this header is attached to each outgoing request the overall size is slightly increased by 300 bytes, we don't care if the site is allowed to play media in the background, so with the vast majority of features that have been added (and those that were already present)
2024-08-23 22:12:45 +02:00
searxng fix limiter.toml url 2024-07-13 13:32:31 +08: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 features cleanup 2024-08-23 22:12:45 +02:00
LICENSE Initial commit 2019-07-01 16:23:52 +02:00
README.md remove note about ARMv7 (#253) 2024-08-04 00:34:26 +02:00
docker-compose.yaml rework Caddyfile 2024-08-06 12:50:09 +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)

[!NOTE]
Windows users can use the following powershell script to generate the secret key:

$randomBytes = New-Object byte[] 32
(New-Object Security.Cryptography.RNGCryptoServiceProvider).GetBytes($randomBytes)
$secretKey = -join ($randomBytes | ForEach-Object { "{0:x2}" -f $_ })
(Get-Content searxng/settings.yml) -replace 'ultrasecretkey', $secretKey | Set-Content searxng/settings.yml

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