----------------------------------------
       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]
       
 (DIR) [0] gopher.black (tor)
       
       In my last post [1] I mentioned three problems I had left:
 (DIR) [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' {} \;