2020-10-11 12:56:17 -04:00
|
|
|
# kineto
|
|
|
|
|
|
|
|
This is an [HTTP][http] to [Gemini][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.
|
|
|
|
|
|
|
|
[http]: https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol
|
2025-01-10 07:24:45 -05:00
|
|
|
[gemini]: https://geminiprotocol.net/
|
2020-10-11 12:56:17 -04:00
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
|
|
```
|
|
|
|
$ go build
|
2025-01-10 07:24:45 -05:00
|
|
|
$ ./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
|
2020-10-11 12:56:17 -04:00
|
|
|
```
|
|
|
|
|
2025-01-10 07:24:45 -05:00
|
|
|
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.
|
|
|
|
|
2020-10-11 12:56:17 -04:00
|
|
|
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.
|
|
|
|
|
2021-05-31 14:26:59 -04:00
|
|
|
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.
|
2021-02-14 17:42:51 -05:00
|
|
|
|
2025-01-10 07:24:45 -05:00
|
|
|
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.
|
|
|
|
|
2025-01-08 08:29:17 -05:00
|
|
|
The -p argument is optional and allows you to specify a custom Portal to proxy
|
2025-01-10 07:24:45 -05:00
|
|
|
external Gemini requests. This option will effectively disable the use of `/x/`
|
2025-01-08 08:29:17 -05:00
|
|
|
for all external URLs, that is al URLs whose host does not match the proxied site.
|
|
|
|
|
2020-10-11 12:56:17 -04:00
|
|
|
## "kineto"?
|
|
|
|
|
|
|
|
It's named after the Contraves-Goerz Kineto Tracking Mount, which is used by
|
|
|
|
NASA to watch rockets as they ascend to orbit.
|
|
|
|
|
|
|
|
![](https://l.sr.ht/_frS.jpeg)
|