MCPSERV.CLUB
SearXNG

SearXNG

Self-Hosted

Privacy‑focused metasearch engine that aggregates results without tracking

Active(100)
22.7kstars
0views
Updated 18 hours ago

Overview

Discover what makes SearXNG powerful

SearXNG is a self‑hosted metasearch engine that aggregates results from **up to 245** public search services while guaranteeing user privacy. From a developer standpoint, the application is a lightweight Python web service that exposes both a REST‑style API and a dynamic front‑end rendered with **Jinja2**. It is intentionally modular: each search engine, filter, or result transformer is implemented as a *plugin* that can be dropped in or swapped out without touching the core codebase. The service is stateless, relying on a simple SQLite database for configuration persistence and optional caching layers (Redis or Memcached) to improve response times.

Language

Web Server

Template Engine

Data Storage

Overview

SearXNG is a self‑hosted metasearch engine that aggregates results from up to 245 public search services while guaranteeing user privacy. From a developer standpoint, the application is a lightweight Python web service that exposes both a REST‑style API and a dynamic front‑end rendered with Jinja2. It is intentionally modular: each search engine, filter, or result transformer is implemented as a plugin that can be dropped in or swapped out without touching the core codebase. The service is stateless, relying on a simple SQLite database for configuration persistence and optional caching layers (Redis or Memcached) to improve response times.

Technical Stack & Architecture

  • Language: Python 3.10+, leveraging the FastAPI framework for request routing and validation.
  • Web Server: Can run behind uWSGI, Granian (a newer ASGI worker), or directly via uvicorn. The repository includes Dockerfiles and Helm charts for Kubernetes deployments.
  • Template Engine: Jinja2 powers the HTML interface; CSS is handled by Tailwind, allowing rapid theming without heavy JS.
  • Data Storage: Core settings and engine lists are stored in SQLite; optional integration with PostgreSQL or MySQL is supported for larger deployments.
  • Caching & Rate‑Limiting: Redis/Memcached can be plugged in for result caching and per‑IP request throttling, essential for high‑traffic instances.

The architecture is intentionally declarative: a YAML configuration file lists enabled engines, filters, and UI settings. The engine registry is loaded at startup; each engine implements a standard interface (search(query, params)) that returns JSON results. This design keeps the runtime lightweight and makes it trivial to add a new engine by implementing a Python class.

Core Capabilities & APIs

  • Search API: /api/search accepts query parameters (q, lang, engine, etc.) and returns a unified JSON payload. Developers can consume this endpoint from any client (web, mobile, CLI).
  • Engine Management API: /api/engines allows CRUD operations on the engine list, enabling dynamic updates without restarting the service.
  • Admin UI: A built‑in dashboard exposes configuration, logs, and real‑time statistics. It can be secured with HTTP Basic Auth or integrated into an existing auth provider via OAuth2.
  • Webhooks: The API can emit events (e.g., “search executed”, “engine failed”) to external services, facilitating monitoring or analytics pipelines.
  • Extensibility: Plugins can hook into request/response cycles (pre_search, post_search) to inject custom filters, modify queries, or transform results. The plugin system is documented and supports both Python modules and external JAR/Node packages via a simple wrapper.

Deployment & Infrastructure

SearXNG is designed for easy self‑hosting:

  • Docker Compose / Docker Swarm: The official docker-compose.yml launches the web server, optional Redis, and NGINX reverse proxy in a single command.
  • Kubernetes: Helm charts expose customizable values for replicas, resource limits, and ingress controllers.
  • Bare Metal / VMs: A lightweight uWSGI + NGINX stack requires only a few MB of RAM; the service can run on Raspberry Pi or older servers with 512 MB memory.
  • Scalability: Statelessness allows horizontal scaling behind a load balancer. Caching layers reduce backend load, and the engine registry can be sharded across instances if needed.

The application also supports Tor integration out of the box by routing queries through a local Tor proxy, making it suitable for privacy‑centric deployments.

Integration & Extensibility

  • Plugin Ecosystem: Thousands of community‑contributed plugins exist (e.g., custom image search, advanced filtering). Developers can create their own by following the plugins directory structure and publishing on PyPI.
  • API Customization: The search API accepts arbitrary parameters that can be forwarded to the underlying engines, allowing developers to build tailored query builders.
  • Theming: The front‑end is fully CSS‑based; custom themes can be applied by overriding the Tailwind configuration or providing a new Jinja template set.
  • External Auth: Integration with LDAP, OAuth2 providers, or SAML is possible via the admin UI, enabling enterprise deployments.

Developer Experience

The project emphasizes high‑quality documentation: a comprehensive README, API reference, and developer guide are maintained in Markdown. Continuous integration (GitHub Actions) runs unit tests, linting, and automated UI snapshots, ensuring stability. The community is active on GitHub Discussions and Discord, where contributors can request features or report bugs. Licensing under the MIT license removes any commercial restrictions, encouraging adoption in both open‑source and proprietary projects.

Use Cases

  1. Privacy‑First Search Service – Organizations needing a non‑tracking search portal for internal use or public distribution.
  2. Custom Search API – Developers building a front‑end (React, Vue) that requires a unified search backend without relying on third‑party APIs.
  3. Educational Projects – Students learning about web scraping, API design, and privacy engineering can experiment with the engine registry.
  4. Enterprise Intranet – Combined with LDAP authentication, SearXNG can serve as a secure search layer for internal documentation and web resources.

Advantages

  • Performance & Flexibility: Lightweight Python core, stateless design, and optional caching provide fast responses while allowing dynamic engine configuration.

Open SourceReady to get started?

Join the community and start self-hosting SearXNG today

Weekly Views

Loading...
Support Us
Most Popular

Infrastructure Supporter

$5/month

Keep our servers running and help us maintain the best directory for developers

Repository Health

Loading health data...

Information

Category
other
License
AGPL-3.0
Stars
22.7k
Technical Specs
Pricing
Open Source
Docker
Community
Supported OS
LinuxDocker
Author
searxng
searxng
Last Updated
18 hours ago