How to Install SearXNG on Ubuntu 24.04
SearXNG is a privacy-respecting metasearch engine that aggregates results from multiple search engines without tracking users. This guide will show you how to install and configure SearXNG on Ubuntu 24.04.
Step 1 – Update Your System
sudo apt update && sudo apt upgrade -y
Step 2 – Install Dependencies and Redis
sudo apt install -y python3-dev python3-babel python3-venv python-is-python3 \
git build-essential libxslt-dev zlib1g-dev libffi-dev libssl-dev redis-server curl \
uwsgi uwsgi-plugin-python3
Enable and start Redis:
sudo systemctl enable --now redis-server
Confirm Redis is running:
redis-cli ping
Expected output: PONG
Step 3 – Create a Dedicated User and Directories
Create a Dedicated User and Directories:
sudo useradd -r -m -d /usr/local/searxng -s /bin/bash searxng
sudo mkdir -p /usr/local/searxng/searxng-src
sudo chown -R searxng:searxng /usr/local/searxng
Step 4 – Clone the SearXNG Repository
Switch to the new user and clone the official repository:
sudo -u searxng git clone https://github.com/searxng/searxng.git /usr/local/searxng/searxng-src
Step 5 – Create and Activate a Virtual Environment
sudo -u searxng python3 -m venv /usr/local/searxng/searx-pyenv
sudo -u searxng /usr/local/searxng/searx-pyenv/bin/pip install --upgrade pip setuptools wheel
Step 6 – Install Dependencies and SearXNG
sudo -u searxng /usr/local/searxng/searx-pyenv/bin/pip install -r /usr/local/searxng/searxng-src/requirements.txt
sudo -u searxng /usr/local/searxng/searx-pyenv/bin/pip install --use-pep517 --no-build-isolation -e /usr/local/searxng/searxng-src
Step 7 – Create Configuration File
Generate a secret key:
sudo -u searxng /usr/local/searxng/searx-pyenv/bin/python -c "import secrets; print(secrets.token_hex(32))"
Copy the key and create the config file:
sudo mkdir -p /etc/searxng
sudo nano /etc/searxng/settings.yml
Example content:
use_default_settings: true
general:
debug: false
instance_name: "SearXNG"
server:
secret_key: "PASTE_YOUR_SECRET_KEY_HERE"
public: true
bind_address: "0.0.0.0"
port: 8888
redis:
url: "redis://localhost:6379/0"
Save and exit.
Step 8 – Create Systemd Service
sudo nano /etc/systemd/system/searxng.service
Add the following:
[Unit]
Description=SearXNG Meta-Search Engine
After=network.target redis-server.service
Wants=redis-server.service
[Service]
Type=simple
User=searxng
Group=searxng
WorkingDirectory=/usr/local/searxng/searxng-src
Environment="SEARXNG_SETTINGS_PATH=/etc/searxng/settings.yml"
Environment="PYTHONPATH=/usr/local/searxng/searxng-src"
ExecStart=/usr/local/searxng/searx-pyenv/bin/python -m searx.webapp
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
Step 9 – Enable and Start the Service
sudo systemctl daemon-reload
sudo systemctl enable --now searxng
Check its status:
sudo systemctl status searxng
Step 10: Allow the Port in Firewall
Open your web browser and go to:
sudo ufw allow 8888/tcp
Step 11: Access Your SearXNG Instance
Open your browser and go to:
http://<your-server-ip>:8888
You’ll see the SearXNG search page, ready to use — fast, customizable, and fully privacy-focused.
You’ve successfully installed SearXNG on Ubuntu 24.04!
Enjoy private, decentralized web searches without tracking or ads.