exceedingly simple gopher daemon
Go to file
randomuser 0cef6add89 the great documentation update 2021-07-29 23:10:25 -05:00
init add tentative service file for esgd 2021-07-23 14:39:39 -05:00
sandbox add simple cgi script to sandbox 2021-07-29 20:42:11 -05:00
.gitignore remove some stuff from the gitignore 2021-07-23 14:29:05 -05:00
README the great documentation update 2021-07-29 23:10:25 -05:00
esgd.py add a flag, --gopherhost 2021-07-29 22:59:21 -05:00

README

esgd is a simple gopher daemon. it supports a simpler subset
of the CGI/1.1 specification for CGI, and it automatically
brings gophermaps missing certain features up to compliance.
the modules used in esgd are part of the standard python
distribution.

options:
-u, --user: user to change to on startup
-g, --group: group to change to on startup
-s, --host: host name
-gs, --gopherhost: host name to use for links
  when parsing gophermaps
-p, --port: port
-d, --dir: directory to host from

-ndx, --direxc PATH: selectors containing
  PATH are not executing
-nx, --nocgi: disable cgi execution

hints:
by default python's socketserver when hosting on "localhost"
will bind to the loopback interface. this is fine for testing,
but in production you'll want to use --host '0.0.0.0' to force
socketserver to bind to your public-facing interface.

also, due to some dumb code in socketserver, IPv6 is not
supported at this time. once this server gets in a stable
condition a rewrite using system level sockets will be in
order.

note that when using the --host parameter you might want to
use --gopherhost to set a publicly facing domain name. this
name is substituted in in gophermaps that are incomplete.

(somewhat) applicable standards:
- RFC3875: The Common Gateway Interface (CGI) Version 1.1
  NOTE: support for CGI/1.1 is limited and not up to spec.
  this will change in the future.
- RFC1436: The Internet Gopher Protocol (a distributed
  document search and retrieval protocol)
  NOTE: almost to full compliance

files:
esgd.py - main executable
README - this file
sandbox - test gophermaps for setting up the server
init - init scripts/configuration files