GEOMYS Gopher Server
Find a file
Brett Lajzer 9d243588e3 Additional error handling and consistent logging format.
Detect and bail on binary data that is not detected as malformed UTF-8.
This also prevents trying to print garbage to the log.
2026-01-03 12:35:39 -05:00
lib Save a few bytes because why not. 2026-01-02 09:57:56 -05:00
geomys.raku Additional error handling and consistent logging format. 2026-01-03 12:35:39 -05:00
LICENSE Add license 2026-01-01 11:17:05 -05:00
nex2gopher.raku Improve documentation and update copyrights. 2026-01-01 11:31:16 -05:00
README.md Less sass, more correctness. 2026-01-01 11:39:58 -05:00

GEOMYS Gopher Server

This is the GEOMYS Gopher server software. It aims to be a very simple server that provides a few, spartan niceities while being very small and maintainable. It will automatically generate directory listings, but can also use hand-written listings.

It's written in Raku.

Dependencies:

Installing

  1. Extract it somewhere.
  2. Install the dependencies listed above.
  3. Run it: raku geomys.raku <root-path> <server-name> [<binding> [<port>]]. Try running it without any arguments for the usage info as there's more there.

Usage

Create your root folder and put things in it that you want to make available to users. There are three special files you can make:

  • HEAD | HEAD.nex - Gophertext | nex* file that will be prepended to the listing (generated or not)
  • INDEX | INDEX.nex - Gophertext | nex* file that will be used instead of a generated listing
  • FOOT | FOOT.nex - Gophertext | nex* file that will be appended to the listing (generated or not)

These three special files and any files/directories that start with a period will not show up in generated listings. However, they can still be accessed if one knows the selector for them.

What is nex*?

Nex* is a (very slightly) modified version of the Nightfall Express document format. There are only two differences:

  1. Non-URL-format links MUST start with the Gopher type character of the linked resource (no spaces). Failure to do so will result in a broken link as the parser will consume the first character regardless of validity.
  2. Any text following a space character after a link is interpreted as the Gopher label.