Find a file
2025-01-17 13:54:57 -05:00
.gitignore Add portal flag 2025-01-08 08:31:56 -05:00
COPYING Initial commit 2020-10-11 13:43:39 -04:00
go.mod Update image inlining 2025-01-17 13:54:57 -05:00
go.sum Update go-gemini dependency 2021-02-25 08:52:22 -05:00
main.go Update image inlining 2025-01-17 13:54:57 -05:00
README.md Add new flags for robots.txt and URL rewrites 2025-01-10 07:24:45 -05:00

kineto

This is an HTTP to Gemini proxy designed to provide service for a single domain, i.e. to make your Gemini site available over HTTP. It can proxy to any domain in order to facilitate linking to the rest of Geminispace, but it defaults to a specific domain.

Usage

$ go build
$ ./kineto [-P] [-R] [-b 127.0.0.1:8080] [-r /learn-more-about-gemini] [-s style.css] [-e style.css] [-p https://portal.mozz.us] gemini://example.org

The -P argument is optional and allows you to completely disable proxying and URL rewriting external gemini URLs. The user visiting your site will need to have a browser or browser extension that understands how to handle gemini:// links.

The -R argument is optional and allows you to completely disables serving a custom robots.txt response. When enabled the request will be proxied to your gemini site.

The -b argument is optional and allows you to bind to an arbitrary address; by default kineto will bind to :8080. You should set up some external reverse proxy like nginx to forward traffic to this port and add TLS.

The -s argument is optional and allows you to specify a custom CSS filename. The given file will be loaded from the local disk and placed in a <style> block. By default kineto will serve its built-in style.

The -e argument is optional and allows you to specify a custom CSS URL. If provided, the style.css given will be treated as a link to be put in the href of a <link rel="stylesheet"...> instead of being placed inline with the body in a <style> block like with the -s flag. The given stylesheet can be a relative link, for instance -e /main.css will serve main.css from the root of the proxied Gemini capsule.

The -r argument is optional and allows you rewrite external gemini links to a custom URL. Use this if you have external gemini links but instead of proxying them you prefer to invite your visitors to learn more about the Gemini protocol and download a Gemini browser. This can be a relative or absolute URL.

The -p argument is optional and allows you to specify a custom Portal to proxy external Gemini requests. This option will effectively disable the use of /x/ for all external URLs, that is al URLs whose host does not match the proxied site.

"kineto"?

It's named after the Contraves-Goerz Kineto Tracking Mount, which is used by NASA to watch rockets as they ascend to orbit.