Capybara is no longer in active development! It is advised to switch over to September!
September's configuration (and experience) is nearly identical to Capybara's, so switching over should be no hassle.
Capybara is an HTTP to Gemini proxy designed to ... proxy ... Gemini capsules over to HTTP.
Capybara also happens to be a fork of Kineto. If you think you don't need any of the modern day enhancements that Capybara offers, check out Kineto for a more bare, raw-er experience.
$ go build
$ ./capybara [-b 127.0.0.1:8080] [-s style.css] [-e style.css] gemini://fuwn.me
The -b
argument is optional and allows you to bind to an arbitrary address;
by default Capybara 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 Capybara 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.
$ docker run -d -e ROOT='gemini://fuwn.me' [-e BIND='127.0.0.1:8080'] [-e CSS='style.css'] [-e CSS_EXTERNAL='style.css'] fuwn/capybara
Edit the docker-compose.yml
file to your liking, then...
$ docker-compose up -d
Capybara allows the optional usage of a Capybara.yaml
file for simple configuration, here is the format:
capybara:
keep_gemini: # A list of hosts where if the host is present; the URL will not be proxied
- fuwn.me #
# Example:
# Proxied: `gemini://gem.rest` becomes `/proxy/gem.rest`
# Not proxied (present in `capybara.keep_gemini`): `gemini://gem.rest` is kept
keep_gemini_exact: # A list of URLs where if the URL is present; the URL will not be proxied
- fuwn.me/skills #
# Similar to `keep_gemini` except only keeps exact URLs
The configuration file can be located in three different places relative to Capybara:
- Docker Compose:
./capybara-data/
- Local:
./
(same directory as the Capybara executable),./capybara/
, or./capybara-data/