“I need a new site,” I thought to myself the other day. “A site which will be static and, besides the regular Internet, accessible via a Tor onion service as well.”
Admittedly, “I need a new site” should have been more like “I would like a new site to play with”. And as far as Tor is concerned, I have exactly zero sensitive/classified/secret information to share. So in reality, out of the dozen of regular visitors my new site will probably be welcoming per month, exactly zero of them will have a substantive reason to use the corresponding onion service.
On the other hand I do like sites adhering to a clean-and-no-frills design logic, hence the fondness for static sites. Additionally, although I have always been admiring the simple-yet-powerful inner workings of Tor, I somehow managed to avoid playing with hidden services – now called onion services.
Since these days I am having some time-off from my nine-to-five, I managed to get around setting up a new static site (this one), and have it hosted on an old but pretty reliable Raspberry Pi 3. The site is also accessible via a Tor onion service. Just fire-up Tor Browser or open a Private Window with Tor from within Brave, and navigate to the following address:
What follows is a short list with the hardware and software I used, together with a couple of articles I read before setting this site up.
- A Raspberry Pi 3 Model B+ with no extra hard disk. The Pi has a 16-gigabyte SD card only, which should be enough for now.
- For automatically downloading and putting Raspberry Pi OS (former Raspbian) on the SD card, I turned to Raspberry Pi imager.
- The Onion Service Protocol is a good introduction on how onion services work.
- Although I am more familiar with nginx, this time around I thought I should try lighttpd web server.
- Regarding the generation of this static site, Hugo was the obvious choice for me. (Maybe because Hugo is the only static site generator I have used in actual projects.)
- Among other topics, this article offers a good overview on installing the Tor client and setting up an onion service.
I am pretty sure I am forgetting something important. In any case, I will be revisiting the topic in future posts.
Update 2020-10-14. Today I decided to have this site accessible via an onion service only. I understand this will severely limit its discoverability, but I still find this experiment quite intriguing.
Update 2022-01-30. Starting today this site is accessible via a clearnet address also (that would be https://kolderson.net). It is still hosted on a fine Raspberry Pi, though.