
How to Install Searx Search Engine with Docker on a Linux Server or Home Lab
Searx is an open-source, privacy-respecting metasearch engine that can be deployed easily using Docker. This guide explains how to install and configure Searx using the official searx/searx Docker image.
Step 1: Install Docker
Before running Searx, ensure that Docker is installed on your system. If Docker is not installed, you can install it by following the official Docker installation guide for your Linux distribution.
Step 2: Pull the Searx Docker Image
Download the official Searx Docker image by running the following command:
docker pull searx/searx
Step 3: Deploy a Local Searx Instance
To start a Searx instance on your local machine, first, set the port where Searx will be accessible:
export PORT=80
Then, run the following command to start Searx using Docker:
docker run –rm -d -v ${PWD}/searx:/etc/searx -p $PORT:8080 -e BASE_URL=http://localhost:$PORT/ searx/searx
After running this command, open a web browser and go to http://localhost:$PORT to access the Searx search engine.
Step 4: Modify Searx Configuration Files
The ${PWD}/searx directory will contain two important configuration files:
- settings.yml — Used to configure Searx settings, such as search filters, autocomplete options, and result proxy settings.
- uwsgi.ini — Used to configure the uWSGI server settings.
You can edit these files to customize your Searx instance. After making changes, restart the Docker container to apply them.
Step 5: Running Searx with Command-Line Options
You can use various command-line options when running the Searx Docker container:
docker run –rm -it searx/searx -h
This will display the available options. Some useful flags include:
- -h — Show help information.
- -d — Perform a dry run to update the configuration files.
- -f — Force update configuration files (existing files are backed up with a .old suffix).
Step 6: Using Environment Variables to Configure Searx
You can set various environment variables when starting the Docker container to customize your instance:
- INSTANCE_NAME — Sets the instance name in settings.yml.
- AUTOCOMPLETE — Enables search autocomplete in settings.yml.
- BASE_URL — Sets the base URL of the instance in settings.yml.
- MORTY_URL and MORTY_KEY — Configures a result proxy if needed.
- BIND_ADDRESS — Specifies the network address Searx should listen on. The default is 0.0.0.0:8080.
For example, to run Searx with a custom instance name and enabled autocomplete, use:
docker run –rm -d -p 80:8080 -e INSTANCE_NAME=”MySearx” -e AUTOCOMPLETE=”duckduckgo” searx/searx
Step 7: Building Searx from Source with Docker
If you want to build the Searx Docker image from the source code, follow these steps:
git clone https://github.com/searx/searx.git
cd searx
make docker.build
Step 8: Deploying a Public Searx Instance
If you plan to run a public Searx instance using Docker, refer to the official guide at:
This guide includes additional security recommendations and best practices for setting up a public search engine.
Conclusion
You have now successfully installed and configured Searx using Docker. You can further customize your instance by modifying the settings.yml file or using environment variables. If you need help setting up Searx with HTTPS or a reverse proxy, let me know! ?
Information reviewed and updated: August 28, 2026.
Published by: REVOLD BLOG – blog.revold.us
Powered by AIR RISE INC & REVOLD AI
Sponsored: CORPIUS
Author: Roman Kravchina
Related Reading on Revold Blog
- How to install Haproxy and Traefik on Proxmox VM with CentOS 9, 10, 11
- Build your own search engine with ht://Dig
- What is DNS?
- How to Install pfSense on Proxmox
- More Developing & Programming guides
- How to Install Searx Search Engine on Ubuntu / debianArch LinuxFedora / RHEL
- How to Install Nextcloud with Docker on Your Linux Server
- How to Install and Configure Radarr on Linux Using Docker
- Install Docker Compose on Linux Ubuntu 22.04, Debian or up
- How to install Cockpit for Linux
- This guide will show you how to install a desktop (GUI) graphical interface on your Ubuntu server.
- How to Install Jellyfin Media Server on Ubuntu 24.04
- How to Mount and Unmount an ISO Image in Linux
- Install Home Assistant Operating System
- How to Quickly Install Heimdall Using Docker
- How To Install Docker Compose on Ubuntu 22.04
- How to Install a Desktop Environment/GUI in Ubuntu Server
- How To Install PhotoPrism Using Docker Compose


