Find: Stargazer Gemini Server

Stargazer project page

Today I found Stargazer, a gemini server written in Rust that supports SCGI. I've been using Molly Brown for SCGI development but wanted to see what else is out there. I know GLV-1.12556 supports it as well, but I think it's only via TCP(?), and I wanted to use UNIX Domain sockets instead. Stargazer does both.

As some of you may remember, I've been toying around with SCGI on and off for a bit. My drive is/was to reduce the overhead of spinning up a new process for every user click (something @stack recently mentioned, but I can't build my own server), and honestly, I just wanted the challenge.

I recently learned the maintainer started on v2.x of the server as well.

Here are the features according to the project site:

BTW I am still quite happy with @skyjake's GmCapsule, and am running it on my VPS. I still recommend this server to anyone.

๐Ÿ€ gritty

Jan 02 ยท 4 months ago ยท ๐Ÿ‘ Cotteux, ps, sam

6 Comments โ†“

๐Ÿ‘ป ps ยท Jan 02 at 06:02:

Thanks for the reference!

Have any traversal tests passed, or are we waiting for the new Rabbit Day? Agate had this vulnerability fixed, even Nginx. I'm always worried about testing new solutions that work with filesystem paths because of this.

๐Ÿ€ gritty [OP] ยท Jan 02 at 16:09:

@ps I'm not exactly sure, but I emailed the dev yesterday. if they respond I can ask.

I saw that gmid was pretty security focused and IIRC supports FastCGI instead. I remember the project site discussed CHROOT and containers so I imagine that one is well tested for traversals. Might be worth a look if you want FastCGI, but for my case I think SCGI might be easier, and I just haven't invested the time to look into FastCGI.

I'm not aware of Rabbit Day, but I saw an article about the Rabbit r1 if that's what you're talking about.

๐Ÿš€ stack ยท Jan 02 at 19:34:

Curious why you can't build your own server on your VPS -- or at home and move it to your VPS?

๐Ÿ€ gritty [OP] ยท Jan 02 at 22:25:

@stack Fair. I guess it's not that I can't, per se, given enough time and effort, but at current I don't think I could create anything better than what's already out there. Well, not in a weekend at least! I don't code for a living, so I figure (what I assume to be) the professionals have more insight on optimization, concurrency, error handling and general organization.

๐Ÿš€ stack ยท Jan 03 at 01:15:

Oh, I thought you meant that for some reason you could not compile stuff!

I didn't think I had it in me either, but once faced with the tasks of building a server I found that there is a lot of information on how to do it. But I have dealt with sockets and such before, so it was more of figuring out the details of how to do what I already more or less understood.

๐Ÿ‘ฝ spc476 ยท Jan 03 at 04:29:

It's underdocumented (that's an understatement) but GLV-1.12556 does support Unix sockets for SCGI. To use it, you just create a symbolic link to the socket. If the destination link is "scgi://hostname:port/" it will use TCP, and if it's "scgi:/path/to/socket" it will use a UNIX socket.