Gophernicus

Gopher is an application-layer protocol that provides the ability to extract and view and access various files on remote Web servers. Gopher was conceived in 1991 as one of the Internet’s first data/file access protocols to run on top of a TCP/IP network. It was developed at University of Minnesota and is named after the school's mascot.

There are many gopher server are available but many of them are not under development. Gophernicus is a one of the most modern, full-featured and secure gopher daemon.

Installation :

pkg_add -vr gophernicus

You need to create the following file:

vi /etc/inetd.conf

And add the following line:

gopher stream tcp nowait nobody /usr/local/libexec/in.gophernicus in.gophernicus -h <hostname>

Change <hosname> to you actuall hostname.

Enable and start inetd

doas rcctl enable inetd doas rcctl start inetd

And you are all set. Put some files under

/var/gopher

And fire up your gopher browser pointing to your host. lynx gopher://your-host-name

Important configure arguments include:

--hostname. This is by default attempted to be autodetected by the configure script, using the command hostname. It is expected to be the publicly-accessible address of the server. However, this might be completely wrong, especially on your personal machine at home or on some cheap VPS. If you know you have a fixed numerical IP, you can also directly use that. For testing, just keep the default value of localhost which will result in selectors working only when you're connecting locally.

--gopherroot. The location in which your gopher server will serve from. By default is /var/gopher. Also can be changed later using the -r <root> parameter in configuration files.

Post Install Configuration

Here are all the options which can be use for post install configuration. you can user them only by typing

$gophernicus -h example.com.

-h hostname Change server hostname (FQDN) [$HOSTNAME]

-p port Change server port [70]

-T port Change TLS/SSL port [0 = disabled]

-r root Change gopher root [/var/gopher]

-t type Change default gopher filetype [0]

-g mapfile Change gophermap file [gophermap]

-a tagfile Change gophertag file [gophertag]

-c cgidir Change CGI script directory [/cgi-bin/]

-u userdir Change users personal gopherspace [public_gopher]

-l logfile Log to Apache-compatible combined format logfile

-w width Change default page width [67]

-o charset Change default output charset [UTF-8]

-s seconds Session timeout in seconds [1800]

-i hits Maximum hits until throttling [4096]

-k kbytes Maximum transfer until throttling [4194304]

-f filterdir Specify directory for output filters

-e ext=type Map file extension to gopher filetype

-R old=new Rewrite the beginning of a selector

-D text|file Set or load server description for caps.txt

-L text|file Set or load server location for caps.txt

-A admin Set admin email for caps.txt

-U paths Specify a colon-separated list of extra unveil(2) paths

              (OpenBSD only).

-nv Disable virtual hosting

-nl Disable parent directory links

-nh Disable menu header (title)

-nf Disable menu footer

-nd Disable dates and filesizes in menus

-nc Disable file content detection

-no Disable charset conversion for output

-nq Disable HTTP-style query strings (?query)

-ns Disable logging to syslog

-na Disable autogenerated caps.txt

-nt Disable /server-status

-nm Disable shared memory use (for debugging)

-nr Disable root user checking (for debugging)

-np Disable HAproxy proxy protocol

-nx Disable execution of gophermaps and scripts

-nu Disable personal gopherspaces

-d Debug output in syslog and /server-status

-v Display version number and build date

-b Display the BSD license

-? Display this help