The GmCapsule / Titan server source repository is now public.

It has been running unattended for a couple of months, so the worst initial bugs seem to be gone. It is only at v0.1, though; I've got plenty of ideas for modules to add.

The requirements are a ~recent version of Python 3 and pyOpenSSL >= 21.

Repository (Python sources):

GmCapsule introduction:

Why you might want to use this:

- supports both Gemini and Titan
- written entirely in Python, with minimal dependencies (pyOpenSSL is required for more advanced SSL certificate handling)
- easy to use for serving simple static files
- flexible and extensible: CGI programs and full-fledged Python modules

Why you might want to NOT use this:

- can be heavy: uses Python and more memory than native code
- early development; no official release yet

@jk I know it's an odd request, but I'd like to experiment with gemini over amateur radio.

but we can't use encryption

is it possible to tell the server (or any other gemini server?) to use "none" as the cypher ?


TLS is mandatory with Gemini.

Perhaps you’d like to look into Gopher? Or Spartan for a more modern alternative.

@jk Playing around with it now.

Currently just trying to modify /index.gmi. I can edit it in Lagrange with titan, but it fails when I try to save. And I guess it's because the server has not been instructed how to do that, who to allow. Can this be done?

@liebach Basically you need some sort of a script that runs when the Titan upload comes in.

I’m using this one for managing my own gemlog: It writes the file contents, commits to Git, and regenerates the index pages.

Perhaps you can adapt that to your needs?

I’m planning to make this booster script an official GmCapsule module at some point.

@jk Thanks, that looks about right. Was just trying to make the simplest possible thing work, and it seems the pointers I need are in that code. It's always easier to work from some known good code. 😃

I've run out of steam for tonight though, so it'll have to be another day.

Sign in to participate in the conversation

skyjake's personal Mastodon instance