<-- back to the mailing list

[tech] Doppio: Gemini server in Java

Sean Conner sean at conman.org

Sun Jan 3 03:43:17 GMT 2021

- - - - - - - - - - - - - - - - - - - 

It was thus said that the Great Bill Havanki once stated:

Greetings,
I’d like to announce my own take on a Gemini server implementation, which
I’ve named Doppio.
https://github.com/bhavanki/doppio/

Cool!

I implemented it in Java as a fun side coding project, but I hope it’s
useful for others. It supports the usual good stuff:
* static files, including finding index files
* CGI with most meta-variables from RFC 3875, plus a bunch from Apache
mod_ssl

For CGI support, I set the REQUEST_METHOD to "" (since RFC-3875 madatesit---others have set it to "GET"), and instead of the Apache variables forTLS, I used:

TLS_CIPHER TLS_VERSION TLS_CLIENT_HASH TLS_CLIENT_ISSUER TLS_CLIENT_SUBJECT TLS_CLIENT_NOT_BEFORE TLS_CLIENT_NOT_AFTER TLS_CLIENT_REMAIN

and I think others that support CGI have done similar. I like that you used"Certificate" for AUTH_TYPE (as I have done) and the subject name forREMOTE_USER (as most others have done). I also added the following:

GEMINI_DOCUMENT_ROOT GEMINI_SCRIPT_FILENAME GEMINI_URL_PATH GEMINI_URL

and again, some others support some of the above. Sadly, the CGIdiscussions seem to die out quickly on this list.

Anyway, nice job.

-spc