Jump to content

SearXNG/Hosting a public instance

From Wikibooks, open books for an open world

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

DNS configuration

[edit | edit source]

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 | edit source]

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

Caddy

[edit | edit source]

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 | edit source]

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 | edit source]

NginX

[edit | edit source]

Apache

[edit | edit source]

Obtaining a TLS certificate

[edit | edit source]

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 | edit source]

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

Other web servers

[edit | edit source]

Visit the Certbot website and follow the instructions there.

Adding your instance to the list

[edit | edit source]

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.