Recent Activity

I made a new logo, I like it a lot. It's simpler.

I have basically all of the features for the next update with fully automatic TLS certs using a built in acme client.

The main thing stopping me from releasing it is I need to write some comprehensive tests, there are a lot of configuration options now; old modes I kept as I made new features. So far I have usually just tested it "in prod" on my own home setup, but this time I rewrote some important parts of the code.

I'm making progress! I have automatic certs locally on my own instance.

Basically just set up using the acme client and serving the challenge and the tls cert and set up the renew timer. I still need to do saving and loading to a file so it doesn't make a new let's encrypt account every restart.

I also have a plan to move the whole state file of the portal server to a root owned file and just pass an fd when spawn starts portal. That way I can make the cert root owned and the state too so certain attackers wouldn't be able to insert their own registrations or anything else.

I recently published v0.6.7 (release notes: https://github.com/fsmv/daemon/releases/tag/v0.6.7)

I'm always surprised at how many little features a reverse proxy server needs to support any kind of web technology. Glad to have gotten this done because I wasn't sure how I wanted to implement the multiple http path pattern registrations for the same port for a long time and I finally figured it out by trying both options and deciding i didn't like one of them more.

Now I'm working on automatic lets encrypt certs and I'm very excited about it. It's going to be almost no configuration just go install ask.systems/daemon and you can have a website with full encryption support (and run things in minimal chroot containers) for multiple backend servers.

Just published v0.6.6 yay! I'm excited about the logging changes, I was wanting accurate download size logging for a while and having the useragent is nice too. Also better support for TLS backends is always good, we want to encrypt everything.

I'm glad I waited because I realized I had updated the dependencies in a way that I didn't like that raised the minimum go compiler version. Now I have a nice script to do it next time.

Hopefully next release will be more features instead of bug fixes.

I started messing around with this again on this break after not coding for a while and got super into it. It started with accidentally finding a go issue about a potential bug I realized I had in my code and I wanted to fix.

I made several things more robust with detecting backend TLS support and made lots of improvements to the logging. I'm excited about accurately logging bytes served so I can tell how much bandwidth different pages are taking. I even ended up doing some windows specific platform code improvements.

There's even more, I'll do a new version soon, I just need to run it for 24 hours or so to make sure all the changes are working well. Can't take back a tag once it's in goproxy!

I've been working on this for several years off and on while I used it; it wasn't very well defined what it would be for a long time. I'm excited that it has come together into a neat package and it's finally ready to share with others.

I spent a good amount of time working to make it nice for newcomers. I'd love to hear if you try it out and what parts are confusing or didn't work when you tried to set it up.

I have a friend who has beta tested it for a while now and I have been running it for years so it should be relatively bug free but please let me know if there are problems of course.