SearXNG
Metasearch engine that sends your query to several search engines and merges the results.
- Replaces
-
Paid search services, such as Google Search.
All open-source alternatives to Google Search
- Difficulty
-
Difficulty: Medium
2 services (1 database or broker: valkey), 3 volume mounts, 1 env value to set, no elevated host access. Heuristic score 4 of 11: medium.
- Stack
Python (language), Valkey (database)
- Deployment
docker_compose
- Requirements
Not stated.
- License
-
AGPL-3.0(OSI-approved open source) - Business model
-
Unknown
The README at the pinned commit does not state a business model, so it stays unknown.
Source: github.com/searxng/searxng/blob/8137186/README.rst, read on .
- Repository
GitHub stats
- Stars
- 38,728
- Forks
- 3,526
- Open issues and pull requests
- 203
- Last push
- 2026-10-19
From the GitHub API on . These numbers are a snapshot, not live. GitHub detected the license as AGPL-3.0.
Compose file
# Read the documentation before using the `docker-compose.yml` file:
# https://docs.searxng.org/admin/installation-docker.html
name: searxng
services:
core:
container_name: searxng-core
image: docker.io/searxng/searxng:${SEARXNG_VERSION:-latest}
restart: always
ports:
- ${SEARXNG_HOST:+${SEARXNG_HOST}:}${SEARXNG_PORT:-8080}:${SEARXNG_PORT:-8080}
env_file: ./.env
volumes:
- ./core-config/:/etc/searxng/:Z
- core-data:/var/cache/searxng/
valkey:
container_name: searxng-valkey
image: docker.io/valkey/valkey:9-alpine
command: valkey-server --save 300 1 --save 60 1000 --loglevel warning
restart: always
volumes:
- valkey-data:/data/
volumes:
core-data:
valkey-data:
From the app's own repository: github.com/searxng/searxng/blob/8137186/container/docker-compose.yml.
Compose file from the app repository.
Install
- Docker with the Compose plugin (github.com/searxng/searxng/blob/8137186/docs/admin/installation-docker.rst)
A host with Docker and the Docker Compose plugin. This entry runs from a compose file.
- Save the compose file as docker-compose.yml (github.com/searxng/searxng/blob/8137186/container/docker-compose.yml)
Use the compose file shown above.
- Save as .env next to the compose file (github.com/searxng/searxng/blob/8137186/container/.env.example)
# Read the documentation before using the `docker-compose.yml` file: # https://docs.searxng.org/admin/installation-docker.html # # Additional variables: # https://docs.searxng.org/admin/settings/settings_general.html#settings-general # https://docs.searxng.org/admin/settings/settings_server.html#settings-server # Use a specific version tag. E.g. "latest" or "2026.3.25-541c6c3cb". #SEARXNG_VERSION=latest # Listen to a specific address. #SEARXNG_HOST=[::] # Listen to a specific port. #SEARXNG_PORT=8080 - What the compose file check ran with (github.com/searxng/searxng/blob/8137186/docs/admin/installation-docker.rst)
The compose file check ran together with .env.example from the same commit, saved as .env. The folder held only these files. The installation guide tells the reader to download docker-compose.yml and .env.example, copy the example to .env and run docker compose up -d.
- Start it (github.com/searxng/searxng/blob/8137186/docs/admin/installation-docker.rst)
docker compose up -d - Open the app (github.com/searxng/searxng/blob/8137186/container/docker-compose.yml)
Open http://localhost:8080. The compose file publishes host port 8080 for the core service.
Compose file check: config_ok on 2026-10-22.
Gotchas and maintenance
Gotchas
- Some images use the latest tag or no tag. Images without a pinned version: core: docker.io/searxng/searxng:${SEARXNG_VERSION:-latest}. A later pull can get a different version. (github.com/searxng/searxng/blob/8137186/container/docker-compose.yml, checked 2026-10-22)
- The compose file mounts host folders. Host paths mounted into containers: ./core-config/ at /etc/searxng/ (core). (github.com/searxng/searxng/blob/8137186/container/docker-compose.yml, checked 2026-10-22)
Signals
- Open issues and pull requests: 203
- Last push: 2026-10-19 (3 days before this page was built)
- Latest release: none recorded