From ad1473870278334e59360eccfa9b520f4c00149b Mon Sep 17 00:00:00 2001 From: Adam Lawson Date: Mon, 16 May 2022 16:45:28 +0100 Subject: Added SearXNG Tutorial --- searxng.html | 143 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 searxng.html (limited to 'searxng.html') diff --git a/searxng.html b/searxng.html new file mode 100644 index 0000000..3271899 --- /dev/null +++ b/searxng.html @@ -0,0 +1,143 @@ + + + + Setting up a public SearXNG instance – LandChad.net + + + + + + + +

Setting up a public SearXNG instance

+ +
+ SearXNG logo +

+ SearXNG is a free internet metasearch engine which aggregates results from more than 70 search services. + This guide sets up a working instance that can be accessed using a domain over HTTPS. + Features include: +

+ + +

Installation

+ +

Install the required packages.

+ +
apt install git nginx -y
+ +

Open http and https ports.

+ +
iptables -I INPUT 6 -m state --state NEW -p tcp --dport 80 -j ACCEPT
+iptables -I INPUT 6 -m state --state NEW -p tcp --dport 443 -j ACCEPT
+netfilter-persistent save
+ufw allow 80
+ufw allow 443
+ +

Clone the SearXNG Repository.

+ +
git clone https://github.com/searxng/searxng searxng
+cd searxng
+ +

Installing SearXNG, Filtron and Morty.

+ +
./utils/searx.sh install all
+./utils/filtron.sh install all
+./utils/morty.sh install all
+ +

Check that both filtron and morty are running.

+ +
systemctl status filtron
+systemctl status morty
+ +

Configure Nginx

+ +

Delete the default site.

+ +
rm /etc/nginx/sites-enabled/default
+ +

Create a new file /etc/nginx/sites-available/searxng.conf and add the following:

+ +

+server {
+
+    # Listens on http
+    listen 80;
+    listen [::]:80;
+
+    # Your server name
+    server_name searx.example.org;
+     
+    # If you want to log user activity, comment these
+    access_log /dev/null;
+    error_log  /dev/null;
+                
+    # Searx reverse proxy
+    location / {
+            proxy_pass         http://127.0.0.1:4004/;
+                
+            proxy_set_header   Host             $host;
+            proxy_set_header   Connection       $http_connection;
+            proxy_set_header   X-Real-IP        $remote_addr;
+            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
+            proxy_set_header   X-Scheme         $scheme;
+            proxy_set_header   X-Script-Name    /searx;
+    }
+        
+    location /searx/static {
+            alias /usr/local/searx/searx-src/searx/static;
+    }
+        
+    # Morty reverse proxy
+    location /morty {
+            proxy_pass         http://127.0.0.1:3000/;
+               
+            proxy_set_header   Host             $host;
+            proxy_set_header   Connection       $http_connection;
+            proxy_set_header   X-Real-IP        $remote_addr;
+            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
+            proxy_set_header   X-Scheme         $scheme;
+    }
+}
+        
+ +

Now create a symbolic link to enable this site.

+ +
ln -s /etc/nginx/sites-available/searxng.conf /etc/nginx/sites-enabled/searxng.conf
+ +

Restart Nginx and SearXNG.

+ +
systemctl restart nginx
+service uwsgi restart searx
+ +

Configure HTTPS with Certbot

+ +

Install certbot.

+ +
apt install python3-certbot-nginx
+ +

Install a Let's Encrypt SSL certificate to Nginx and optionally let it configure HTTPS for you. + Detailed instructions and additional information.

+ +
certbot --nginx
+ +

SearXNG should now be available from your domain.

+ +

Configuration

+ +

You can change settings by editing /etc/searxng/settings.yml.

+ +

Contribution

+
  • Author: goshawk22 – website
  • +
    + + + -- cgit v1.2.3