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