56 lines
1.9 KiB
Plaintext
56 lines
1.9 KiB
Plaintext
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 will not execute
|
|
-nx, --nocgi: disable cgi execution
|
|
|
|
hints:
|
|
if you're running esgd with the python executable on the
|
|
command line, e.g. `python esgd.py --host 0.0.0.0
|
|
--gopherhost test`, ENSURE THAT THE EXECUTABLE IS INTERPRETING
|
|
PYTHON3 CODE. On my system, you have to use the executable
|
|
`python3`; `python` is python2 on my system.
|
|
|
|
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
|
|
|
|
Copyright 2021 randomuser
|