Skip to main content
Perplexica uses SearxNG as its search engine to retrieve web results while maintaining privacy. SearxNG is a privacy-respecting metasearch engine that aggregates results from multiple search engines.

What is SearxNG?

SearxNG is a free, privacy-focused metasearch engine that:
  • Aggregates results from multiple search engines (Google, Bing, DuckDuckGo, etc.)
  • Does not track or profile users
  • Provides JSON API for programmatic access
  • Supports specialized search engines including Wolfram Alpha

Default configuration

If you’re using the standard Perplexica Docker image, SearxNG is included and pre-configured. No additional setup is required.
When you run Perplexica with Docker:
The image includes:
  • SearxNG running on port 8080 (internal)
  • Pre-configured settings with JSON format enabled
  • Wolfram Alpha search engine enabled
  • Automatic startup with Perplexica

Using your own SearxNG instance

If you already have a SearxNG instance running, use the slim Perplexica image:
string
required
The URL of your SearxNG instanceExample: http://localhost:8080

Requirements for external SearxNG

Your SearxNG instance must be properly configured for Perplexica to work correctly.
Ensure your SearxNG instance has:
1

JSON format enabled

Perplexica requires JSON API access. In your settings.yml:
2

Wolfram Alpha enabled

Enable Wolfram Alpha for computational queries:
3

Network accessibility

Ensure SearxNG is accessible from Perplexica:
  • If both run in Docker, use Docker networking
  • If Perplexica is in Docker and SearxNG is on host:
    • Windows/Mac: http://host.docker.internal:8080
    • Linux: http://<host-ip>:8080

SearxNG configuration

The bundled SearxNG instance uses the following configuration:

settings.yml

  • use_default_settings: Inherits SearxNG’s default configuration
  • autocomplete: Uses Google for search suggestions
  • formats: Enables both HTML and JSON output
  • wolframalpha: Required for computational queries and calculations

Advanced configuration

If you’re running your own SearxNG instance, you can customize:
string
Autocomplete providerOptions: google, duckduckgo, wikipedia, dbpedia, qwantDefault: google
array
Supported output formatsRequired: Must include json for PerplexicaDefault: ["html", "json"]
array
Enabled search enginesRequired: wolframalpha must be enabledYou can add more engines from the SearxNG defaults

Setting up standalone SearxNG

To run SearxNG separately from Perplexica:

Using Docker

1

Create settings.yml

Create a SearxNG configuration file:
2

Run SearxNG container

3

Verify JSON format

Test that JSON API is working:
You should receive JSON-formatted search results.
4

Configure Perplexica

Set the SearxNG URL in Perplexica settings or via environment variable:

Manual installation

For manual installation, refer to the official SearxNG documentation.
Basic steps:
  1. Install SearxNG following the official guide
  2. Configure settings.yml with JSON format and Wolfram Alpha enabled
  3. Start SearxNG service
  4. Configure Perplexica to use your SearxNG URL

Configuring in Perplexica

You can set the SearxNG URL through:

Settings UI

  1. Navigate to Settings in Perplexica
  2. Find the “Search” section
  3. Enter your SearxNG URL in the “SearXNG URL” field
  4. Save changes

Environment variable

Set SEARXNG_API_URL before starting Perplexica:
Or with Docker:

Troubleshooting

SearxNG not responding

Test the SearxNG endpoint:
You should see the SearxNG web interface HTML.
Ensure JSON format is enabled:
If you get an error about unsupported format, check your settings.yml.
From inside the Perplexica container:
If this fails, verify the URL configuration and Docker networking.

Wolfram Alpha not working

Wolfram Alpha is required for computational queries and calculations. Without it, some search features may not work correctly.
Verify Wolfram Alpha is enabled in settings.yml:

Connection refused errors

If Perplexica can’t reach SearxNG:
  • Both in Docker: Use Docker network or container names
  • SearxNG on host: Use host.docker.internal (Windows/Mac) or host IP (Linux)
  • Different machines: Ensure firewall allows connections

Performance tuning

For better performance with your own SearxNG instance:
  • Limit the number of search engines to reduce latency
  • Enable caching in SearxNG settings
  • Use a local Redis instance for SearxNG caching
  • Configure rate limiting to prevent overload

Next steps