Agena(1) BSD General Commands Manual Agena(1) NAME agena -- Gemini-to-Gopher proxy SYNOPSIS agena [-h] [--cert cert_file] [--key key_file] [--host address] [--port port_numbe] [--sockfile domain_socket] [--quiet] [--version] DESCRIPTION agena is a simple Gemini-to-Gopher proxy. It accepts Gemini requests for URLs with a scheme of gopher://, fetches those requests, and returns a corresponding Gemini response. If the Gopher URL has an itemtype of 1, the Gopher menu is losslessly translated to Gemtext and the Gemini re- sponse header uses a MIME type of text/gemini. For other item types, the header uses a MIME type as determined by file(1), and the content is re- turned unchanged, except that non-UTF-8 text resources are transcoded to UTF-8, which all compliant Gemini clients are required to handle. See TEXT ENCODING for more details on transcoding. agena can listen for Gemini requests either via TCP/IP (in which case it requires a TLS certificate and matching private key like any other Gemini server) or via a Unix domain socket. agena is intended to be used with a Gemini client which supports offload- ing requests for gopher:// URLs to a translation proxy, e.g. av98(1). The options are as follows: -h, --help Display a short help message and exit. --cert cert_file Specify the path to a PEM-encoded TLS certificate to use (only required when accepting TCP/IP connections). Must match the pro- vided private key file. --key key_file Specify the path to a PEM-encoded private key to use (only re- quired when accepting TCP/IP connections). Must match the pro- vided certificate file. --host host Hostname or IP address to listen for TCP/IP connections on. Will be ignored if a Unix domain socket is provided with --sockfile. --port port_number Port number to listen for TCP/IP connections on. Will be ignored if a Unix domain socket is provided with --sockfile. --sockfile domain_socket Path to a Unix domain socket to listen on. infinitySupress any output to stdout. infinityDisplay version number and quit. TEXT ENCODING agena attempts to decode content received for any text-based item types (e.g. 0, 1, h) first as UTF-8 (which is backward compatible with ASCII) and, if this fails, then as ISO-8859-1 (aka "Latin1"). If both these decodes fail and the 'chardet' Python package is not in- stalled, agena will give up and return a Gemini response with status code 43 (proxy error). If 'chardet' is installed, agena will use it to at- tempt to determine the original character encoding. Regardless of the original encoding, agena will return Gemini responses encoded as UTF-8. EXAMPLES Start agena with full default settings, i.e. listening for TLS connec- tions on port 1965 on all network interfaces, using certificate and key files in the working directory named cert.pem and key.pem: agena Start agena listening for TLS connections on non-standard port 19650 on the local IPv4 interface only, using a certificate and key stored outside the working directory. agena --host 127.0.0.1 --port 19650 --cert /etc/ssl/certs/agena_cert.pem --key /etc/ssl/private/agena_key.pem Start agena listening for local connections via a Unix domain socket: agena --sockfile /var/run/agena/socket SEE ALSO o chardet: https://pypi.python.org/pypi/chardet STANDARDS agena is a Gopher client conforming to RFC 1436 and RFC 4266 . It is also a Gemini client con- firming to and . TRIVIA agena is named after the Agena Target Vehicle (ATV), used by NASA during its Gemini program (after which the Gemini protocol is named) to develop and practice orbital docking techniques. AUTHORS Solderpunk James Tomasino All Operating January 25, 2025 All Operating