SearXNG/Hosting a public instance

There are several public instances of SearXNG, and you can host your own.

DNS configuration

edit

Create DNS A records (and AAAA records if your server uses IPv6) with your domain name registrar pointing to the server that you are hosting your instance on.

Setting up the HTTP server

edit

There are several HTTP servers available. The most popular ones all work with SearXNG.

Caddy

edit

This is the recommended server, as it is the easiest to configure and automatically obtains a TLS certificate from Let's Encrypt.

Docker container

edit

If you installed the SearXNG docker container, add the following to your Caddyfile, and reload Caddy. Replace "example.com" with your fully-qualified domain name:

example.com {
    reverse_proxy localhost:8080
}

Installation script and manual installation

edit

NginX

edit

Apache

edit

Obtaining a TLS certificate

edit

A TLS certificate is necessary in order to use HTTPS, which is preferred by most modern web browsers. For this tutorial, we will use Let's Encrypt for a certificate, as Let's Encrypt provides certificates for free.

Caddy

edit

Caddy automatically obtains a TLS certificate, so you do not need to do anything if you used Caddy.

Other web servers

edit

Visit the Certbot website and follow the instructions there.

Adding your instance to the list

edit

An official list of public instances is maintained at searx.space. You can add your own by going to the Github repository and creating a new issue to add your instance. Ensure you meet the requirements.