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
$ doas pkg_add gophernicus
You need to create /etc/inetd.conf
And add the following line:
gopher stream tcp nowait nobody /usr/local/libexec/in.gophernicus in.gophernicus -h <hostname>
Change to you actual hostname.
Enable and start inetd
$ doas rcctl enable inetd
$ doas rcctl start inetd
And you are all set.
Put some files under /var/gopher
Then Fire up your gopher client pointing to your host.
for example:
lynx gopher://localhost
!!Configureation arguments
!!!hostname
This is by default attempted to be auto-detected 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 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