<?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>Tor on Nobody&#39;s Home</title>
    <link>https://cloud.nobodyhome.dev/tags/tor/</link>
    <description>Recent content in Tor on Nobody&#39;s Home</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Tue, 15 Sep 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://cloud.nobodyhome.dev/tags/tor/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Online Security Basics</title>
      <link>https://cloud.nobodyhome.dev/posts/online-security-basics/</link>
      <pubDate>Tue, 15 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://cloud.nobodyhome.dev/posts/online-security-basics/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;These are the 101 - bare basics for accessing that sketchy link you don&amp;rsquo;t want tied to &lt;strong&gt;you&lt;/strong&gt; (i.e. .cn, .ru). They key is understanding  your threat model.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Are you concerned about your activity being monitored? -&amp;gt; VPN&lt;/li&gt;
&lt;li&gt;Are you concerned about being attributed to you? -&amp;gt; TOR&lt;/li&gt;
&lt;li&gt;Are you concerned about infecting your system? -&amp;gt; VM/Container&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;resources&#34;&gt;Resources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.privacyguides.org/en/&#34;&gt;PrivacyGuides&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.docker.com/products/docker-desktop/&#34;&gt;Docker Desktop&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.torproject.org&#34;&gt;TOR Project&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;terms&#34;&gt;Terms&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;DNS: Domain Name Service&lt;/li&gt;
&lt;li&gt;VPN: Virtual Private Network&lt;/li&gt;
&lt;li&gt;TOR: The Onion Router&lt;/li&gt;
&lt;li&gt;VM: Virtual Machine&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;how-do-you-connect&#34;&gt;How do you connect?&lt;/h2&gt;
&lt;p&gt;The basic model of an internet connect is:
&lt;img alt=&#34;connection&#34; loading=&#34;lazy&#34; src=&#34;https://cloud.nobodyhome.dev/assets/security/connection.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Onion Redirect</title>
      <link>https://cloud.nobodyhome.dev/posts/onion-redirect/</link>
      <pubDate>Sat, 12 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://cloud.nobodyhome.dev/posts/onion-redirect/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;This post should be short and sweet - the goal is to get this: &lt;img alt=&#34;.onion available&#34; loading=&#34;lazy&#34; src=&#34;https://cloud.nobodyhome.dev/assets/tor_redirect/onion-available.png&#34;&gt; in the Tor browser.&lt;/p&gt;
&lt;h2 id=&#34;references&#34;&gt;References&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://community.torproject.org/onion-services/advanced/onion-location/&#34;&gt;TOR.org&lt;/a&gt;
&lt;a href=&#34;http://xmrhfasfg5suueegrnc4gsgyi2tyclcy5oz7f5drnrodmdtob6t2ioyd.onion/onion-services/advanced/onion-location/index.html&#34;&gt;TOR.onion&lt;/a&gt;
(hint: it&amp;rsquo;s the same page)&lt;/p&gt;
&lt;h2 id=&#34;implementation&#34;&gt;Implementation&lt;/h2&gt;
&lt;p&gt;The first step is to set up a &lt;a href=&#34;https://cloud.nobodyhome.dev/posts/tor-hidden-services/&#34;&gt;Tor site&lt;/a&gt;. After that, everything is easy.&lt;/p&gt;
&lt;h3 id=&#34;nginx&#34;&gt;Nginx&lt;/h3&gt;
&lt;p&gt;Add this line to your site&amp;rsquo;s &lt;code&gt;.conf&lt;/code&gt; file:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;add_header Onion-Location http://&amp;lt;your-onion-address&amp;gt;.onion$request_uri;
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;folder-structure&#34;&gt;Folder Structure&lt;/h4&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;├──your-project-folder
│  ├──Dockerfile
│  ├──your-website-contents-folder
│  │  └──[CONTENTS]
└──└──nginx.conf
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;nginx-contain-in-docker&#34;&gt;Nginx Contain in Docker&lt;/h4&gt;
&lt;p&gt;This configuration assumes you&amp;rsquo;re &lt;a href=&#34;https://cloud.nobodyhome.dev/posts/building-docker-containers/&#34;&gt;building&lt;/a&gt; your own docker container, and probably getting a &lt;a href=&#34;https://cloud.nobodyhome.dev/posts/named-tor-site/&#34;&gt;custom url&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tor Proxy</title>
      <link>https://cloud.nobodyhome.dev/posts/tor-proxy/</link>
      <pubDate>Sat, 30 May 2026 00:00:00 +0000</pubDate>
      <guid>https://cloud.nobodyhome.dev/posts/tor-proxy/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;I wanted to see how to route my network traffic over tor. Would it be too slow? Would it even work? TBH, the load times have been a &lt;em&gt;bit&lt;/em&gt; worse, but yes - it works, and the load times aren&amp;rsquo;t even that bad.
&lt;img alt=&#34;it works&#34; loading=&#34;lazy&#34; src=&#34;https://media1.giphy.com/media/v1.Y2lkPTc5MGI3NjExNXMwNjhqbW56ZGM1azZvYzZnMjUwNHRkMWt5N3hidHJ1MHJxY2dvbSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/BoBOKNtlR8rTi/giphy.gif&#34;&gt;&lt;/p&gt;
&lt;p&gt;The directory structure will end up looking like this:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;├──tor-proxy
│  ├──compose.yaml
└──└──torrc
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;NOTE: I used Google&amp;rsquo;s Gemini, and a locally hosted gemma 4 model to build this. There are likely multiple resources that aren&amp;rsquo;t properly recorded.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Static Site from Start to Finish</title>
      <link>https://cloud.nobodyhome.dev/posts/website-stack/</link>
      <pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate>
      <guid>https://cloud.nobodyhome.dev/posts/website-stack/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;This guide is meant to be a top level overview on how to get a Hugo based static site set up on both the clear-web, and the dark-web. Both sites will host the exact same content, have custom URLs, and will be publically accessible. The intent is to string together some prior posts into a cohesive walkthrough, with less detail than the individual guides linked below.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://cloud.nobodyhome.dev/posts/install-docker/&#34;&gt;Install Docker&lt;/a&gt; -&amp;gt; &lt;a href=&#34;https://cloud.nobodyhome.dev/posts/hugo/&#34;&gt;Hugo Setup&lt;/a&gt; -&amp;gt; &lt;a href=&#34;https://cloud.nobodyhome.dev/posts/tor-hidden-services/&#34;&gt;Tor&lt;/a&gt; &amp;amp; &lt;a href=&#34;https://cloud.nobodyhome.dev/posts/cloudflare-service/&#34;&gt;Cloudflare Tunnel&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Named Tor Site</title>
      <link>https://cloud.nobodyhome.dev/posts/named-tor-site/</link>
      <pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate>
      <guid>https://cloud.nobodyhome.dev/posts/named-tor-site/</guid>
      <description>&lt;h3 id=&#34;whats-the-point-of-this&#34;&gt;What&amp;rsquo;s the Point of This?&lt;/h3&gt;
&lt;p&gt;Recently, schools across the US were hit by a breach of the education software Canvas by the ShinyHunters. The group&amp;rsquo;s ransom note included an interesting .onion url:
&lt;img alt=&#34;ransom note&#34; loading=&#34;lazy&#34; src=&#34;https://cloud.nobodyhome.dev/assets/named_tor_site/note.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Normally a .onion address is randomly generated characters with no meaning. The site&amp;rsquo;s name being tied to the keys generated when the node joins the network. However, ShinyHunters and the CIA have been able to generate custom TOR keys to at least get a partially human readable url.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tor Site</title>
      <link>https://cloud.nobodyhome.dev/posts/tor-hidden-services/</link>
      <pubDate>Sat, 13 Dec 2025 00:00:00 +0000</pubDate>
      <guid>https://cloud.nobodyhome.dev/posts/tor-hidden-services/</guid>
      <description>&lt;h3 id=&#34;directory-setup&#34;&gt;Directory Setup&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Set up the files and directories:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;mkdir -p tor-site/keys tor-site/html tor-site/logs
touch tor-site/torrc
&lt;/code&gt;&lt;/pre&gt;&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;Set permissions:
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;chmod 700 tor-site/keys 
sudo chown root:root tor-site/keys tor-site/logs
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;content-setup&#34;&gt;Content Setup&lt;/h3&gt;
&lt;p&gt;Add the files for your website into the &lt;code&gt;tor-site/html&lt;/code&gt; folder:
example:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;h1&amp;gt;Hello from the Onion Router!&amp;lt;/h1&amp;gt;
    &amp;lt;p&amp;gt;This site is hosted inside Docker.&amp;lt;/p&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;docker-setup&#34;&gt;Docker Setup&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://cloud.nobodyhome.dev/posts/install-docker/&#34;&gt;Install Docker&lt;/a&gt;
Docker  Compose File
&lt;code&gt;compose.yaml&lt;/code&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;services:
  nginx:
    container_name: nginx
    image: nginx
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - SETGID
      - SETUID
    volumes:
      - ./html:/usr/share/nginx/html:ro
      - ./logs:/var/log/nginx
    networks:
      - tor_network
  tor:
    container_name: tor
    volumes:
      - ./torrc:/etc/tor/torrc:ro
      - ./keys:/var/lib/tor/hidden_service/
    image: alpine:latest
    entrypoint: sh -c &amp;#34;apk add --no-cache tor &amp;amp;&amp;amp; tor -f /etc/tor/torrc&amp;#34;
    security_opt:
      - no-new-privileges:true
    cap_drop:
      - ALL
    cap_add:
      - NET_BIND_SERVICE
    networks:
      - tor_network
    depends_on:
      - nginx

networks:
  tor_network:
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;nginx&lt;/code&gt; is the name of your web server container - this is important for the &lt;code&gt;torrc&lt;/code&gt; file.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;:ro&lt;/code&gt; sets the volume to read only&lt;/li&gt;
&lt;li&gt;&lt;code&gt;networks: tor_network&lt;/code&gt; means all the traffic stays inside the tor network&lt;/li&gt;
&lt;li&gt;&lt;code&gt;security_opt: - no-new-privileges:true&lt;/code&gt;  prevents the user from running as root through &lt;code&gt;setuid&lt;/code&gt; or &lt;code&gt;setgid &lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cap_drop: -All&lt;/code&gt; removes all default Linux capabilities granted to a container&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cap_add: - NET_BIND_SERVICE&lt;/code&gt; will allow tor to work with only the necessary capabilities&lt;/li&gt;
&lt;li&gt;&lt;code&gt;networks&lt;/code&gt; ensures that all traffic stays inside the docker network with a custom bridge &lt;code&gt;tor_network&lt;/code&gt; to access the tor relays
See &lt;a href=&#34;https://cloud.nobodyhome.dev/posts/docker-permissions/&#34;&gt;Docker Permissions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;create-torrc&#34;&gt;Create &lt;code&gt;torrc&lt;/code&gt;:&lt;/h3&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;# Standard Tor config
DataDirectory /var/lib/tor

# Define the Hidden Service
HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 nginx:80
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;note: the name &lt;code&gt;nginx&lt;/code&gt; should be the same as you name your web server container in the &lt;code&gt;compose.yaml&lt;/code&gt; (see [[#Docker Setup]]).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;notes&#34;&gt;Notes:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Did you know you can make a custom tor site name? See the &lt;a href=&#34;https://cloud.nobodyhome.dev/posts/named-tor-site/&#34;&gt;Named Tor Site&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;The docker service setup:
&lt;a href=&#34;https://cloud.nobodyhome.dev/posts/dockhand/&#34;&gt;Dockhand&lt;/a&gt;
&lt;a href=&#34;https://cloud.nobodyhome.dev/posts/portainer/&#34;&gt;Portainer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;
services:
  nginx:
    container_name: nginx
    image: nginx
    volumes:
      - {$PWD}/html:/usr/share/nginx/html:ro
    networks:
      - tor_network
  tor:
    container_name: tor
    volumes:
      - {$PWD}/torrc:/etc/tor/torrc:ro
      - {$PWD}/keys:/var/lib/tor/hidden_service/
    image: alpine:latest
    entrypoint: sh -c &amp;#34;apk add --no-cache tor &amp;amp;&amp;amp; tor -f /etc/tor/torrc&amp;#34;
    security_opt:
      - no-new-privileges:true
    cap_drop:
      - ALL
    cap_add:
      - NET_BIND_SERVICE
    networks:
      - tor_network
    depends_on:
      - nginx

networks:
  tor_network:
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;references&#34;&gt;References:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/hundehausen/tor-hidden-service-docker&#34;&gt;hundehausen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://oneuptime.com/blog/post/2026-02-08-how-to-forward-docker-container-traffic-through-tor/view&#34;&gt;oneuptime.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://randywestergren.com/running-a-hidden-tor-service-with-docker-compose/&#34;&gt;randywestergren.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/bob-crutchley/tor-hidden-service&#34;&gt;bobcrutchley&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/tgeek77/tor-hidden-service&#34;&gt;tgeek77&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://rawcode7.medium.com/docker-container-security-tips-and-tricks-a4c94b9b28f1&#34;&gt;Jon Goldman&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
  </channel>
</rss>
