💾 Archived View for acidic.website › musings › now-on-jetforce.gmi captured on 2021-12-17 at 13:26:06. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2020-09-24)
-=-=-=-=-=-=-
Date: 2020-06-03
State: Done
I've been using my own homegrown Python script to serve files through stunnel and Xinetd but decided the time had come where I actually wanted to start writing some Gemini CGI stuff. I could pretty easily extend my server to execute scripts and have it return the output, but I felt like:
If I wanted to satisfy the above requirements, I woud need to rewrite my Python server script. I decided that, rather than reinvent the wheel, I may as well use one of the many servers out there that already hold open persistent sockets in an accept loop and can already handle CGI. I settled on Jetforce because I didn't want to install the Go toolchain on my DO Droplet, but did have Python installed. I have no opposition to using Go, and actually enjoy the language quite a bit, so if I were to deploy Molly Brown in the future, I would probably cross-compile it on another machine and just scp the binary onto the DO Droplet.
When I read through the Molly Brown source, I found the same permissions checking code that Gophernicus used. Having fought with permissions with Gophernicus, I wanted something a bit less opinionated, so I settled on Jetforce. I wish Jetforce had Vhost support, and while I could add that, I will probably eventually write a full featured Gemini server in Nim that can take full use of the resources on my potato box and have Vhost, CGI, and Client Cert support.
Moving was fairly easy because I haven't written too much yet. I had to:
Because Jetforce does not support Vhosts, I'll just be using a cgi-bin path to serve these. This is good enough for now, and when I'm really craving Vhost support I'll roll my own server.
I realize most of these ideas are fairly America-centric, but of course I am an American. If anyone has ideas for other sites they want mirrored via CGI, feel free to reach out.