Skip to main content

How to Install SearXNG From Scratch on Termux

Okay, here is a comprehensive guide to reinstall SearXNG from scratch on Termux, summarizing all the steps we went through, the errors you encountered, and their solutions. This should serve as a reliable reference for future installations.
SearXNG Installation Guide for Termux (From Scratch)
This guide covers the full process of installing SearXNG on Termux, including all necessary dependencies and workarounds for issues encountered.
Prerequisites:
 * A working Termux installation on your Android device.
 * An active internet connection.
Step 1: Cleanup Previous Installation (For Reinstallation Only)
If you're reinstalling, it's best to start clean. Skip this step if this is your very first attempt.
# Deactivate virtual environment if active
deactivate 2>/dev/null || true

# Remove old SearXNG source code and virtual environment
rm -rf ~/searxng-src
rm -rf ~/searxng-pyenv

# Remove old configuration directory
rm -rf ~/.config/searxng

echo "Previous SearXNG files removed (if they existed)."

Step 2: Update and Upgrade Termux Packages
Always start with an up-to-date Termux environment.
pkg update && pkg upgrade -y

Step 3: Install Essential System Packages
We encountered issues where python-dev was not available, and uvloop required binutils for compilation. clang is also crucial for compiling Python packages with C extensions.
pkg install -y git python libxml2 libxslt clang binutils

Step 4: Clone SearXNG Repository
Clone the SearXNG source code into your home directory.
cd ~
git clone "https://github.com/searxng/searxng" "searxng-src"

Step 5: Create and Activate a Python Virtual Environment
Using a virtual environment is best practice to keep SearXNG's dependencies isolated from your main Termux Python installation.
python -m venv searxng-pyenv
source searxng-pyenv/bin/activate

(Your prompt will change to (searxng-pyenv) ~$ indicating the virtual environment is active.)
Step 6: Install Python Build Tools and Core Dependencies
We previously faced BackendUnavailable: Cannot import 'setuptools.build_meta' and ModuleNotFoundError: No module named 'yaml' errors. This step ensures pip, setuptools, wheel, and pyyaml are correctly installed and up-to-date within your virtual environment. We also add pybind11 here, which was required by fasttext-predict.
pip install --upgrade pip setuptools wheel pyyaml pybind11

Step 7: Install SearXNG and its Dependencies
Navigate into the cloned source directory and install SearXNG in "editable" mode (-e .), which is what the official guide recommends. This step will also handle other dependencies like uvloop, which now has binutils available.
cd ~/searxng-src
pip install --use-pep517 --no-build-isolation -e .

Step 8: Configure SearXNG
First, create the configuration directory, then copy the default settings.yml (we found it's located under the searx subdirectory). Finally, generate and set your unique secret_key.
# Create the configuration directory
mkdir -p ~/.config/searxng

# Copy the default settings file (corrected path)
cp searx/settings.yml ~/.config/searxng/settings.yml

# Generate and set the secret_key automatically
python -c 'import os; import yaml; settings_path = os.path.expanduser("~/.config/searxng/settings.yml"); with open(settings_path, "r") as f: settings = yaml.safe_load(f); settings["server"]["secret_key"] = os.urandom(24).hex(); with open(settings_path, "w") as f: yaml.dump(settings, f, default_flow_style=False)'

# (Optional) You can manually verify the secret_key or make other customizations:
# nano ~/.config/searxng/settings.yml

How to Run Your SearXNG Instance
Once installed, use these commands to start your SearXNG server.
 * Activate your virtual environment:
   source ~/searxng-pyenv/bin/activate

 * Navigate to the SearXNG source directory:
   cd ~/searxng-src

 * Start the SearXNG web application:
   (Note the corrected path for webapp.py)
   export SEARXNG_SETTINGS_PATH=~/.config/searxng/settings.yml
python searx/webapp.py

   You should see output indicating that SearXNG is starting and listening on http://127.0.0.1:8888.
 * Access in Browser: Open your Android device's web browser and go to http://127.0.0.1:8888.
 * To Stop SearXNG: Go back to your Termux terminal and press Ctrl + C.
Running SearXNG in the Background (using tmux)
To keep SearXNG running even if you close Termux or switch to other apps, use tmux.
 * Install tmux (if you haven't already):
   pkg install -y tmux

 * Start a new tmux session:
   tmux

   (Your screen will clear, and you'll be in a new tmux session.)
 * Inside the tmux session, run your SearXNG commands:
   source ~/searxng-pyenv/bin/activate
cd ~/searxng-src
export SEARXNG_SETTINGS_PATH=~/.config/searxng/settings.yml
python searx/webapp.py

   SearXNG will start running.
 * Detach from the tmux session:
   * Press Ctrl + B (release both)
   * Then press D
     (You will be returned to your regular Termux prompt, and SearXNG will continue running in the background.)
 * To Reattach to your tmux session (to see SearXNG's output or stop it):
   Open Termux again and type:
   tmux attach

   (This will bring you back to the session where SearXNG is running.)
 * To Stop SearXNG from a tmux session:
   * Reattach to the tmux session (tmux attach).
   * Press Ctrl + C in the tmux window where SearXNG is running.
   * You can then close the tmux session by typing exit or Ctrl + D.
This comprehensive guide should help you manage your SearXNG installation on Termux effectively!


Credit: u/jamaalwakamaal/


Popular posts from this blog

[Apk Setup] Alpine-term App | without using termux

Install and Setup Alpine Term in Android App Welcome to the world of terminal and Linux environment on your Android device! 📲 In this blog post, we will guide you through the installation and setup process of Alpine Term, an amazing application that brings the power of Alpine Linux to your fingertips. Let's get started! 🚀 What is Alpine Term App? 🏔️ Alpine Term is a terminal and Linux environment application for Android. It utilizes Alpine Linux, running inside a headless x86_64 machine emulated with QEMU. The interaction with the operating system is done through terminals attached to the serial consoles of the virtual machine. This allows you to run commands, execute scripts, and experience a Linux environment on your Android device. System Requirements 📋 To install and use Alpine Term, make sure your device meets the following requirements: 📱 AArch64-based device. 🆙 Android 7.0 or higher. 💾 At least 500 MB of free space on the internal storage. 🌐 ...

Cloudflared in Termux to Create tunnels, Port Forwding

Step-by-Step Guide: Installing Cloudflared in Termux for Android (Alternative to ngrok) | 2024" J Link updated https://github.com/rajbhx/cloudflared-termux What is cloudflare Cloudflare, Inc. is an American content delivery network and DDoS mitigation company, founded in 2010. It acts as a reverse proxy between a website's visitor and the Cloudflare customer's hosting provider. Its headquarters are in San Francisco, California Usages cloudflared -url [localhost]:port_number] example : cloudflared -url localhost:8000 cloudflared tunnel localhost:[port_number] Installation Make sure your Termux app updated The commands you provided are the steps to install Cloudflared in Termux using the `rajbhx/cloudflared-termux` repository. Here's a breakdown of each command: 1. Update and upgrade packages:    ```    pkg update && pkg upgrade && pkg install git    ``` 2...

How to install and setup vShell in android app |कैसे इनस्टॉल करें

How to install and setup android vShell(Virtual Shell) app (no root) कैसे इनस्टॉल करें YouTube video link What is Android-vShell app vShell is a  virtual shell environment application  for the Android OS. A virtual Linux shell environment application for Android OS. Runs Alpine Linux in QEMU system emulator.  It provides a virtual machine running small Linux distribution ready for the use out-of-box. Application implements my view on how Linux terminal environments can look like on Android OS. As operating system security is getting more and more hardened over time (which is good btw), it become impossible to abuse design flaws such as executable user data to run Linux native executables. Ability to...

How to extract Details from any mobile number Using termux | rajbhx

How to extract Details from any mobile number | termux | jarvisstaraq.blogspot.com What is truecallerjs Truecallerjs : A simple package to search phone number details.this tool also work in android and Termux app jarvisstaraq.blogspot.com Requirements Android phone Termux Proper valid Mobile Number(Phone number verification for truecaller) Truecaller InstallationId jarvisstaraq.blogspot.com Installation in Termux Installing Node.js, Git, and Wget in Termux:  To install Node.js, Git, and Wget in Termux, follow these steps: 1. Open your Termux app. 2. Run the following command to update the package lists:     ```    pkg update    ``` 3. Next, install Node.js using the following command:    ```    pkg install nodejs    ``` 4. Install Git using the command:    ```    pkg install git    ``` 5. Lastly...

My Termux | How to install Lazymux in Termux #rajbhx

My Termux | How to install Lazymux in Termux Lazymux t00ls !nstaller !s very easy t0 use, 0nly pr0v!ded f0r lazy Termux users, just k!dd!ng. Lazymux !s a t00l that !s spec!ally made f0r Termux user wh!ch pr0v!des a l0t 0f t00l ma!nly used t00ls !n Termux, Lazymux !nstall any 0f the g!ven t00ls pr0v!ded by !t fr0m !tself w!th just 0ne cl!ck, and Lazymux always get updated.  What !s Python 3?   My Termux | How to install Lazymux in Termux @rajbhx How to Install Oh My Zsh How to download copyright free GAME PLAY CODM/PUBG/BGMI/FreeFire Call of duty mobile 60fps   How to install FacebookToolkit in Termux + linux + windows 10/11 Download any video with termux using youtube-dl | #rajbhx HOw to install Raspbian 9 (Stretch) in Termux #rajbhx On Decembe...

How to install & use report-fb-account-termux tool in termux

report-fb-account-termux   [+]  Disclaimer : This tool is only for educational purpose. The developer is not responsible for any abuse of it.   [+] Installation apt update && apt upgrade -y apt install git python -y git clone https://github.com/jarvisstar/report-fb-account-termux.git cd autoreport python3 ar.py Or, Use Single Command apt install git python -y && git clone https://github.com/KasRoudra/autoreport && cd autoreport && python3 ar.py Screenshots:   Usage: Search "findfbid" in google to get victim's profile link. Such as Website1 , Website2 , Website3 , Website4 . Enter the victim's facebook profile link in the website, generate and copy the numeric id in clipboard. Run the script and enter or paste that id when asked! [+] Note: AUTOREPORT DOES NOT DISABLE ACCOUNT UNLESS THERE IS SPECIFIC POST(S)...

How to install | instagram reporting 2 tool termux by jarvisstaraq

How to install | instagram reporting 2 tool termux by jarvisstaraq Assuming the client truly breaks the instagram rule then their is more opportunities to get prohibited. Instagram limits the reports per unit time, apparatus will auto quit revealing later arrived at limit at very nearly 40 reports. Shows "Detailed Succesfully" later Each Request. You can Report target again later some time (later 2-3 min). Use IP of same district for high effecivity. In the event that you enter invalid username it will in any case send report demand. Assuming that you getting mistake on utilizing intermediaries then, at that point, don't. Requirements Python3 Or Above  Need to install git in linux or termux Download GIT Usage Instagram mass reporter [ TERMUX ]  How to delete Instagram Account by mrwn007 Report tool Termux   [ TERMUX ]

How to Install Java (Open-JDK-8) in Termux | two Methods

How to Install Java (Open-JDK-8) in Termux Method 1: Java 8 Installation Introduction Install Java (Open-JDK-8) in Termux without rooting your Android device. Follow these steps to get Java up and running in your Termux environment. Step-by-Step Guide Step 1: Install Kali Linux in Termux (Optional) pkg install wget proot -y && wget https://raw.githubusercontent.com/MasterDevX/KaliTermux/master/InstallKali.sh && bash InstallKali.sh Step 2: Download OpenJDK-8-JRE Deb Package Visit ftp.debian and copy the link to the OpenJDK-8-JRE deb package. Step 3: Download Deb Package in Kali Machine wget http://ftp.debian.org/debian/pool/main/o/openjdk-8/openjdk-8-jre-headless_8u275-b01-1_arm64.deb Step 4: Install Deb Package Manually dpkg -i openjdk-8-jre-headless_8u275-b01-1_arm64.deb Step 5: Change Java Version (Optional) sudo update-alternatives --config java Final Step: Verify Java Version Select the desired Java version (in this case, Java 8) by typ...

How to delete Instagram Account by mrwn007 Report tool Termux

How to delete Instagram Account by mrwn007 Report tool Termux(Android) What is termux Termux is an Android terminal emulator and Linux environment app that works directly with no rooting or setup required. A minimal base system is installed automatically - additional packages are available using the APT package manager. mrwn007 / 007spam-BOT Check out new updated repository Instagram mass reporter [ TERMUX ] Instagram Reporting 2 [ TERMUX ] Instagram delete new method by crevils [Termux] Why this tool not working:( Because this tool author removed all files and reposiory also just because this tool no working @__@ Installation  pkg install git pkg install python git clone https://github.com/mrwn007/007spam-BOT.git cd 007spam-BOT python3 -m pip install requests python3 bot.py this repo is dead for normal users to report in Ins...

🚀 The 2024 Java Developer Roadmap [UPDATED] 🚀

🚀 The 2024 Java Developer Roadmap [UPDATED] 🚀 Hello aspiring Java developers! 🌟 Welcome to the 2023 Java Developer Roadmap, a comprehensive guide designed to help you navigate your journey towards becoming a proficient Java professional. Whether you're just starting or looking to level up your Java skills, this roadmap will provide you with a clear path to success in the Java ecosystem. 🎉 Introduction Java, as a robust and versatile programming language, continues to be a leading choice for building enterprise-level applications, web services, mobile apps, and more. As we step into 2023, the Java landscape evolves, presenting exciting opportunities for developers like you. This updated Java Developer Roadmap encompasses years of expertise and industry insights to outline the key skills, tools, frameworks, libraries, and APIs that you should master to excel as a Java developer in 2023. 🔍 The Essentials Before diving into Java-specific to...