<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>techaro - Hamradio.my</title>
	<atom:link href="https://hamradio.my/tag/techaro/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>Amateur Radio, Tech Insights and Product Reviews</description>
	<lastBuildDate>Tue, 08 Jul 2025 07:26:27 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://hamradio.my/wp-content/uploads/2026/02/cropped-cropped-image-removebg-preview-3-32x32.png</url>
	<title>techaro - Hamradio.my</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>How Anubis Works: Fighting Bots with Proof-of-Work</title>
		<link>https://hamradio.my/2025/07/how-anubis-works-fighting-bots-with-proof-of-work/</link>
					<comments>https://hamradio.my/2025/07/how-anubis-works-fighting-bots-with-proof-of-work/#respond</comments>
		
		<dc:creator><![CDATA[9M2PJU]]></dc:creator>
		<pubDate>Tue, 08 Jul 2025 07:26:23 +0000</pubDate>
				<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[free open source software]]></category>
		<category><![CDATA[web application firewall]]></category>
		<category><![CDATA[airesistance]]></category>
		<category><![CDATA[antibot]]></category>
		<category><![CDATA[antibotsolution]]></category>
		<category><![CDATA[anubis]]></category>
		<category><![CDATA[botprotection]]></category>
		<category><![CDATA[cloudflarealternative]]></category>
		<category><![CDATA[containers]]></category>
		<category><![CDATA[cybersecurity]]></category>
		<category><![CDATA[ddosprotection]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[edgeprotection]]></category>
		<category><![CDATA[infosec]]></category>
		<category><![CDATA[jschallenge]]></category>
		<category><![CDATA[linuxsecurity]]></category>
		<category><![CDATA[networksecurity]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[opensourcefirewall]]></category>
		<category><![CDATA[proofofwork]]></category>
		<category><![CDATA[reverseproxy]]></category>
		<category><![CDATA[selfhosted]]></category>
		<category><![CDATA[techaro]]></category>
		<category><![CDATA[webfirewall]]></category>
		<category><![CDATA[websecurity]]></category>
		<guid isPermaLink="false">https://hamradio.my/?p=8299</guid>

					<description><![CDATA[<p>The internet today is crawling with bots—some helpful, most not. Whether it’s AI scrapers harvesting public data or malicious bots launching DDoS attacks, websites are under constant pressure to defend their content. Enter Anubis: a clever, open-source web firewall that uses Proof-of-Work (PoW) to filter out bots while letting real users through with minimal friction. [&#8230;]</p>
<p>The post <a href="https://hamradio.my/2025/07/how-anubis-works-fighting-bots-with-proof-of-work/">How Anubis Works: Fighting Bots with Proof-of-Work</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"></h2>



<p class="wp-block-paragraph">The internet today is crawling with bots—some helpful, most not. Whether it’s AI scrapers harvesting public data or malicious bots launching DDoS attacks, websites are under constant pressure to defend their content. Enter <strong>Anubis</strong>: a clever, open-source web firewall that uses <strong>Proof-of-Work (PoW)</strong> to filter out bots while letting real users through with minimal friction.</p>



<p class="wp-block-paragraph">Let’s unpack how it works—and how to deploy it with Docker and Nginx.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">What Is Anubis?</h3>



<p class="wp-block-paragraph">At its core, <strong>Anubis is a PoW gateway</strong>. It sits in front of your website and challenges each visitor with a lightweight computational puzzle before letting them through.</p>



<p class="wp-block-paragraph">The concept is simple but effective: bots that don’t execute JavaScript (like most scrapers or AI crawlers) can’t pass the challenge. Even those that do will find it expensive to scale.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">How It Works (Step by Step)</h3>



<p class="wp-block-paragraph">Here’s what happens when someone visits a site protected by Anubis:</p>



<ol class="wp-block-list">
<li><strong>User requests a page</strong>.</li>



<li><strong>Anubis intercepts the request</strong> as a reverse proxy.</li>



<li><strong>It serves a small HTML page with embedded JavaScript</strong> containing a Proof-of-Work challenge.</li>



<li><strong>Browser solves the challenge in a second or two</strong>, generating a token.</li>



<li><strong>The browser resubmits the request with the token</strong>, and Anubis lets them through.</li>
</ol>



<p class="wp-block-paragraph">This slows down bots significantly while being nearly invisible to human users.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Why It Works</h3>



<p class="wp-block-paragraph">Bots and crawlers typically skip JavaScript. That means:</p>



<ul class="wp-block-list">
<li>They can’t pass the PoW challenge.</li>



<li>Even if they try, solving the challenge repeatedly becomes <strong>computationally expensive</strong>.</li>
</ul>



<p class="wp-block-paragraph">For humans: it’s just a couple of seconds. For bots: it’s a serious headache.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Real-World Adoption</h3>



<p class="wp-block-paragraph">Anubis is already being used by high-traffic, open-source projects like:</p>



<ul class="wp-block-list">
<li><a>Arch Wiki</a></li>



<li><a>GNOME</a></li>



<li><a>WineHQ</a></li>



<li><a>FFmpeg</a></li>



<li><a>UNESCO</a></li>
</ul>



<p class="wp-block-paragraph">These communities needed something robust, lightweight, and self-hosted. Anubis delivered.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Quick Start with Docker</h2>



<p class="wp-block-paragraph">Anubis is available as a Docker image at:</p>



<pre class="wp-block-code"><code>ghcr.io/techarohq/anubis
</code></pre>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f516.png" alt="🔖" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Available Tags</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Tag</th><th>Description</th></tr></thead><tbody><tr><td><code>latest</code></td><td>The latest stable release (recommended for most users)</td></tr><tr><td><code>vX.Y.Z</code></td><td>Specific version (e.g., <code>v1.4.2</code>)</td></tr><tr><td><code>main</code></td><td>Edge build from the <code>main</code> branch — use only if you need it</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2699.png" alt="⚙" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Docker Compose Example</h3>



<p class="wp-block-paragraph">Here’s a quick way to run Anubis using Docker Compose:</p>



<pre class="wp-block-code"><code>services:
  anubis:
    image: ghcr.io/techarohq/anubis:latest
    container_name: anubis
    restart: unless-stopped
    ports:
      - "8080:8080" # Anubis listens on port 8080 by default
    volumes:
      - ./config:/etc/anubis
    environment:
      - ANUBIS_CONFIG=/etc/anubis/anubis.toml
    user: "1000:1000"
</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f510.png" alt="🔐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Important</strong>: Make sure the mounted <code>./config</code> directory is <strong>owned by UID/GID 1000</strong>, or is writable by that user.</p>
</blockquote>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9e0.png" alt="🧠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> System Requirements</h3>



<p class="wp-block-paragraph">Anubis is very efficient:</p>



<ul class="wp-block-list">
<li>~128MiB RAM is enough for many use cases.</li>



<li>Ideal for HTTP traffic.</li>



<li>May not be suited for long-lived connections like <strong>WebSockets</strong> (TBD in real-world use).</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f310.png" alt="🌐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Nginx Reverse Proxy Config</h2>



<p class="wp-block-paragraph">Once Anubis is running, you’ll want to route traffic through it. Here’s a basic Nginx config to pass requests through Anubis and then upstream to your real site:</p>



<pre class="wp-block-code"><code>server {
    listen 80;
    server_name yoursite.com;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">You can also put Anubis in front of another reverse proxy (like Nginx ➜ Anubis ➜ App), depending on your network layout.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9f0.png" alt="🧰" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Why Choose Anubis?</h2>



<ul class="wp-block-list">
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Open-source and fully self-hostable</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> No CAPTCHAs, no third-party cloud services</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Blocks scrapers and AI bots reliably</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Works great with Docker, Nginx, and minimal hardware</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Community-tested and battle-hardened</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Final Thoughts</h2>



<p class="wp-block-paragraph">In an age of aggressive AI scraping and relentless bots, <strong>Anubis offers a refreshingly simple and effective shield</strong>. By making abuse computationally expensive and annoying for bots—but nearly invisible to humans—Anubis flips the script and puts the burden back where it belongs.</p>



<p class="wp-block-paragraph">You can try a live demo at <a href="https://anubis.techaro.lol/">anubis.techaro.lol</a> or start deploying right away using <a href="https://github.com/TecharoHQ/anubis">the official GitHub repo</a>.</p>
<p>The post <a href="https://hamradio.my/2025/07/how-anubis-works-fighting-bots-with-proof-of-work/">How Anubis Works: Fighting Bots with Proof-of-Work</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamradio.my/2025/07/how-anubis-works-fighting-bots-with-proof-of-work/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
