<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Searxng on Thanos Apollo</title>
    <link>https://thanosapollo.org/tags/searxng/</link>
    <description>Recent content in Searxng on Thanos Apollo</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Wed, 04 Mar 2026 13:04:07 +0200</lastBuildDate>
    <atom:link href="https://thanosapollo.org/tags/searxng/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Self hosting SearXNG in 2023</title>
      <link>https://thanosapollo.org/posts/starting-point-searxng/</link>
      <pubDate>Mon, 25 Sep 2023 00:00:00 +0300</pubDate>
      <guid>https://thanosapollo.org/posts/starting-point-searxng/</guid>
      <description>My experience self hosting SearXNG, the best way to surf the net until now.</description>
      <content:encoded><![CDATA[<p>Hosting SearXNG has been the easiest one to setup thus far, it literally takes 5 minutes. It&rsquo;s benefits are more than just privacy, let&rsquo;s dive into it.</p>
<ul>
<li>You can find my SearXNG instance <a href="https://search.thanosapollo.com">here</a></li>
</ul>
<h2 id="about">About</h2>
<p>SearXNG is a meta search engine, <em>aggregates search results from various sources</em>. No search engine today provides adequate results, everything is filled with ads and sites that just optimize for SEO &amp; quantity over quality.</p>
<ul>
<li><em>Most of today&rsquo;s mainstream sites provide worse content than chat gpt 3.5.</em></li>
</ul>
<h3 id="what-issues-does-searxng-solve">What issues does SearXNG solve?</h3>
<p><strong>Finding Good Content &amp; Finding it FAST!</strong>
I don&rsquo;t like wasting my time, <em>unless it&rsquo;s about configuring emacs</em>, I just want to search for something and get the best results ASAP.</p>
<blockquote>
<p>But Thanos, what do you mean? It&rsquo;s a meta search engine, it&rsquo;s not as fast as something like google or duckduckgo</p>
</blockquote>
<p>Yes! Since SearXNG aggregates results from different sources, it&rsquo;s not as fast as using a single one of them alone. <em>But&hellip;</em> let&rsquo;s see a scenario that you want to search for a video, you&rsquo;d open your browser, then go to youtube.com <em>or odysee</em>, then search for your video query. If you were using SearXNG all you&rsquo;d have to do is just type <code>!yt</code> <em>VIDEO-QUERY</em>. Maybe you are looking for a book? just type <code>!aa book-title</code> on the saerch bar and you will get results from <a href="https://annas-archive.org">annas-archive.org</a></p>
<p>It&rsquo;s even more powerful for researching &lsquo;scientific&rsquo; topics. I can directly search pubmed for <code>nano-antibiotics in treatment of lung infection</code> by just writing <code>!pub</code> in front of the search query.</p>
<p>I&rsquo;m using <a href="https://nyxt.atlas.engineer/">Nyxt</a> as my browser, I had set different keybindings to search pubmed &amp; the archlinux wiki but using a meta search engine like SearXNG is even more powerful than that &amp; way easier to setup, <strong>offering ~70 search engines!</strong>.</p>
<h2 id="how-to-setup-searxng">How to setup SearXNG</h2>
<ul>
<li>I&rsquo;m using <a href="https://www.ionos.com">Ionos</a> to host my SearXNG instance, it offers unlimited bandwidth for just 1$/month, <em>the best deal that I&rsquo;ve found.</em></li>
<li>The best guide that I&rsquo;ve found on setting up SearXNG is at <a href="https://landchad.net/searxng">landchad.net</a> <em>by <a href="https://goshawk22.uk">goshawk22</a></em>, refer to this guide &amp; to the <a href="https://docs.searxng.org/">SearXNG docs</a> if you have any issues.</li>
</ul>
<h3 id="step-1-clone-the-repo-run-the-installation-script">Step 1: Clone the repo &amp; run the installation script</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>$ git clone https://github.com/searxng/searxng /usr/local/searxng/searxng-src
</span></span><span style="display:flex;"><span>$ cd /usr/local/searxng/searxng-src
</span></span><span style="display:flex;"><span>$ ./utils/searxng.sh install all
</span></span></code></pre></div><h3 id="step-2-configure-nginx">Step 2: Configure nginx</h3>
<p>Create a new file <code>/etc/nginx/sites-available/searxng.conf</code> and add the following:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>server {
</span></span><span style="display:flex;"><span>    # Listens on http
</span></span><span style="display:flex;"><span>    listen 80;
</span></span><span style="display:flex;"><span>    listen [::]:80;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    # Your server name
</span></span><span style="display:flex;"><span>    server_name searx. example.org ;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    # If you want to log user activity, comment these
</span></span><span style="display:flex;"><span>    access_log /dev/null;
</span></span><span style="display:flex;"><span>    error_log  /dev/null;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    # X-Frame-Options (XFO) header set to DENY
</span></span><span style="display:flex;"><span>    add_header X-Frame-Options &#34;DENY&#34;;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    # HTTP Strict Transport Security (HSTS) header
</span></span><span style="display:flex;"><span>    add_header Strict-Transport-Security &#34;max-age=31536000; includeSubDomains&#34;;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    # Content Security Policy (CSP)
</span></span><span style="display:flex;"><span>    add_header Content-Security-Policy &#34;default-src &#39;self&#39;;&#34;;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    location / {
</span></span><span style="display:flex;"><span>        uwsgi_pass unix:///usr/local/searxng/run/socket;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>        include uwsgi_params;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>        uwsgi_param    HTTP_HOST             $host;
</span></span><span style="display:flex;"><span>        uwsgi_param    HTTP_CONNECTION       $http_connection;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>        # see flaskfix.py
</span></span><span style="display:flex;"><span>        uwsgi_param    HTTP_X_SCHEME         $scheme;
</span></span><span style="display:flex;"><span>        uwsgi_param    HTTP_X_SCRIPT_NAME    /searxng;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>        # see limiter.py
</span></span><span style="display:flex;"><span>        uwsgi_param    HTTP_X_REAL_IP        $remote_addr;
</span></span><span style="display:flex;"><span>        uwsgi_param    HTTP_X_FORWARDED_FOR  $proxy_add_x_forwarded_for;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><ul>
<li>Create a symbolic link to enable this site.</li>
</ul>
<!--listend-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>$ ln -s /etc/nginx/sites-available/searxng.conf /etc/nginx/sites-enabled/searxng.conf
</span></span></code></pre></div><ul>
<li>Now all you have to do is restart Nginx and SearXNG.</li>
</ul>
<!--listend-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>$ systemctl restart nginx
</span></span><span style="display:flex;"><span>$ service uwsgi restart searxng
</span></span></code></pre></div><ul>
<li>Setting up <code>https</code> connection with certbot <em>optional</em></li>
</ul>
<!--listend-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>$ apt install python3-certbot-nginx <span style="color:#75715e"># install certbot</span>
</span></span><span style="display:flex;"><span>$ certbot --nginx
</span></span></code></pre></div><h3 id="step-3-configuring-your-instance">Step 3: Configuring your instance</h3>
<p>You will be playing around with those 2 paths:</p>
<p><code>/etc/searxng/settings.yml</code> &amp; <code>/usr/local/searxng</code></p>
<p>You can find the default configuration <a href="https://github.com/searxng/searxng/blob/master/searx/settings.yml">here</a>, although I recommend using the default settings as much as possible if you are just starting out.</p>
<p>Your theming configuration lies at <code>usr/local/searxng/searxng-src/searx/static/themes/simple</code> you can remove &amp; edit the default logos or do whatever fancy stuff you like there.</p>]]></content:encoded>
    </item>
  </channel>
</rss>
