Installing Agate on Docker

For a while now, I've been interested in the Gemini^ protocol. Gemini is a simple network protocol for exchanging hypertext documents. In some ways, it is an evolution of Gopher^) but a lot more modern and also improved in some ways. It can also be seen as an alternative to HTTP but really, the topic deserves its own article, which I will undoubtedly write at some point.

=> Gemini | Gopher

The protocol itself is ridiculously simple. In fact, it allows you to make a request with a simple bash one-liner:

$ openssl s_client -quiet -crlf   \
    -servername ghostze.ro   \
    -connect ghostze.ro:1965 \
  | awk '{ print "response: " $0 }'
# then enter: gemini://ghostze.ro^

=> gemini://ghostze.ro gemini://ghostze.ro


response: 20 text/gemini;lang=en-US
response: ```ascii ghost Ø text and a ghost below
response:                                    _
response:   ____ _               _       ___/ |
response:  / ___| |__   ___  ___| |_    / _ \/
response: | |  _| '_ \ / _ \/ __| __|  | |/| |
response: | |_| | | | | (_) \__ \ |_   | |/| |
response:  \____|_| |_|\___/|___/\__|  /\___/
response:         .-.                 |/
...

Installation

The simplicity of the protocol also means that there is an abundance of gemini servers but I eventually settled on Agate^. And since I prefer to have everything in a Docker container, I ended up going that route.

=> Agate

The eventual implementation is hardly that exciting but it wraps agate in a Docker image and I set up the volumes and ports using docker compose^. I could find some Docker examples in the Agate repository but still had to figure out some things related to the certificates, so I decided to share my setup:

=> docker compose

https://git.sr.ht/~ghostzero/agate-docker

Let me know if you find this helpful! And of course, come say hi at my Gemini capsule at gemini://ghostze.ro^ ;-)

=> gemini://ghostze.ro

=> Reply via email: ghostzero@ghostze.ro

=> Back

Proxy Information
Original URL
gemini://ghostze.ro/posts/gemini-agate-on-docker.gmi
Status Code
Success (20)
Meta
text/gemini
Capsule Response Time
131.582425 milliseconds
Gemini-to-HTML Time
0.396704 milliseconds

This content has been proxied by September (ba2dc).