This Gopher hole ran on sgopherd for well over a decade:
https://uninformativ.de/git/sgopherd
I'm not happy with this approach anymore. The script itself might be
acceptable, but especially Bash could have lots of security issues. I
want to reduce the attack surface.
I'm currently experimenting with a Gopher server I wrote in Rust, called
"rophy". It uses OpenBSD's pledge() and unveil() before it reads a
single byte from the client. Similar to sgopherd, it is run through
inetd: My code never runs as root and never does any socket stuff, it
just reads from the file system and communicates with stdin/stdout.
This is highly experimental and I'm not good at Rust yet, because this
language is super hard to learn. Time will tell if I'm going to keep it
or not.