5d066a4c63
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) |
||
---|---|---|
searxng | ||
.env | ||
.gitignore | ||
Caddyfile | ||
LICENSE | ||
README.md | ||
docker-compose.yaml | ||
searxng-docker.service.template |
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 thesearxng-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