Back in the day, if you were ‘hip’ and ‘cool’ and had a UNIX shell account back in 1993 there was this cool way of getting around various computer systems around the world called gopher. What was really cool, is that it offered search services, indexing and even gateways into various libraries (where they kept physical books) where you could search their card catalogs for various tomes you were looking for.

Some colleges even had various services that you could connect to, offering things like news, weather and whatnot. It was pretty neat, however there was one stumbling block, which is gopher was a VERY controlled environment, where most universities locked their client to only starting at one particular gopher server, and to get anywhere else you had to memorize an insane number of keystrokes that would make 1800 operators go crazy. Also there was nothing like virtual hosting, so the idea of having your own gophersite was most likely out of the question. The other issue is that the University of Minnesota, where boombox resided (the master gopherserver) saw they had something good going, and unlike UCB’s CSRG which gave BSD away for free, they were going to license the server for $100 for a educational institution, and $500 for a commercial institution.

Needless to say, this CERN thing called HTTP which they were trying to distance themselves from, which wanted no money for became the next big thing, and with the freedom and ease of setting up website, gopher became a ghost of the past.

But as the world was starting to build web clients, many understood gopher, including Microsoft’s Internet Explorer. Although starting with version 7 (gopher was also disabled with some updates in IE6), gopher has since been removed. But thanks to the Utilu IE Collection, and this quick registry setting you too can surf gopher space with IE 4.0 (or 5,5.5..) like it’s the mid 1990s.

So needless to say with a client in hand, I wanted to setup my own server. And keeping with it being old, I decided to use the old 2.3.1 gopher server. I also compiled it with freeWAIS support, although I haven’t quite worked out how to get that fully working right now. Compiling this stuff on 32bit i386 Linux was trivial to say the least, but if you need binaries or anything they are here.

the next thing was to get both wais, and gopherd running from xinetd, which was easy once I knew how. These are the service files I created:

service gopher

{

socket_type = stream

protocol = tcp

wait = no

user = gopher

server = /usr/local/etc/gopherd

server_args = -I -l /var/log/gopherd.log -u gopher /gopher-data 70

instances = 20

}

And for wais:

service wais

{

socket_type = stream

protocol = tcp

wait = no

user = root

server = /usr/local/bin/waisserver

server_args = -d /gopher-data/wais /gopher-data/wais.log -l 10 -p 210

instances = 20

}

Easy, right?

Gopher likes to be a named service, so I went with my virtuallyfun.com domain, as it is easier to type. I guess I could have gone with gopher.superglobalmegacorp.com but that is… LONG. Another cool thing is that there are several gopher proxies out there for HTTP only people, so you can also get to my gopher page here (via gopher.floodgap.com).

The harder part was figuring out how the directory mapping works, but luckily there was enough in the test directory to get something working, changing this

ls

About decode-n-scripts install mspl tmp

bin ftp-horrors lib pids

Into this:

The secret is all in the .names and .Links files. The .names file will map a directory name to something more pleasing, such as changing mspl to the “Microsoft Programmer’s Libary”.

Path=./mspl

Name=Microsoft Programmer’s Library

Easy, right?

And the .Links file creates links to various content, from a telnet example (to my bbs….)

Type=8

Name=QemuOS/2 BBS (My BBS!)

Host=bbs.superglobalmegacorp.com

Port=23

Numb=100

Abstract=My Synchronet BBS running on OS/2 inside of Qemu! #100

Path=

To another gopher system

Name=My lame SDF.org site

Type=1

Host=sdf.org

Port=70

Path=/users/jsteve

Abstract=My personal SDF gopherspace (itsucks) #-11

Numb=-11

To even doing some crude ascii art!

Name= # # # ##### ##### # # ## # # # #

Type=3

Path=

Numb=5

#

Name= # # # # # # # # # # # # # #

Type=3

Path=

Numb=6

.. and so on.

So yes, to be difficult, all the links in this post are gopher:// links. I don’t know if that’ll deter the likes of Gerhard W. Recher, but I’d like to think that his poorly constructed automated tests will be unable to connect to gopher resources.

Now if I can figure out how to setup my own jughead or veronica to search my own wais of information, that’d be excellent.

If I had the virtual space I’d host the whole thing on a virtual VAX…. or something equally insane. Word is Shoebill just got ethernet support, so running my gopher space on A/UX would be cool.