GOPHERSPACE.DE - P H O X Y
gophering on gopher.black
----------------------------------------
gopher.black on tor, part 2
April 28th, 2018
----------------------------------------

This gopher site is finally available as a tor hidden service with
the production onion address: blackgviz2y4nhrd.onion [0]

[0] gopher.black (tor)

In my last post [1] I mentioned three problems I had left:
[1] gopher.black on tor, part 1

1) Ugly onion addresses
2) Internal links kick you out of tor
3) Port 71

Here's how that got resolved.

I used Eschalot to generate my onion address. I let the app run
a full day trying to get something that started with gopherblack,
but the pattern was too long to find a match. I figure "black" is
good enough for folks to remember. I had about
15 different ones starting with black, but this had the best
looking pattern.

I ended up installing Gophernicus as a second gopher server next
to motsognir and configured it to serve up my same content. This
install was a tiny bit tricky since I already have a service
listenining on port 70. I also wanted Gophernicus to use my tor
address, not my actual hostname. Finally, I wanted it to run on
port 71, but act like links were still port 70. Doing all this
involved changing 3 files in the repo before I ran make install:

  gophernicus.env

  Uncomment options and give it the onion host and whatever else
  is necessary to your liking: 
  
    OPTIONS="-h blackgviz2y4nhrd.onion -nf -nt"


  gophernicus.socket

  Change port to listen on to 71 or 1138 or whatever you'll be
  using with the tor proxy.


  gophernicus@.service

  There's a line in there that looks like this:

    ExecStart=/usr/sbin/in.gophernicus -h %H $OPTIONS

  Remove the -h %H bit. We set that in options.

Now you can 'sudo make install' and it should "Just Work".
Remember to update your torrc to use port 70 and proxy to 71. This
will give you your content back on port 70 over tor and all will
be good in the world.

The last hurdle to fix were the internal links. My sexy burrow
helper wants to be a good partner, so it generates gophermaps with
full \tHOST\tPORT\r\n line endings. That's overkill for motsognir
and gophernicus, and doesn't allow them the flexibility to add
those bits itself. 

On Motsognir I can exclude the full line ending as long as
I prefix the line with type "i" and it will work.

On Gophernicus I can get rid of any type at the start of the line
and it will work.

To make both happy I need to include the type "i" at the start of
the line and add a single tab character at the end. Not two tabs
or three, just exactly one with nothing after it. This makes both
servers happy and lets them fill in the gaps.

I'll need to add a switch to burrow to generate this style in the
future, but in the meantime I can manually clean it up as I add
posts.

find . -name "gophermap" -exec sed -i 's/\tgopher.black.*//g' {} \;