GoHome: A simple app to host your Go modules with vanity URLs
from peter@deddit.petersanchez.com to golang@programming.dev on 06 Jan 2024 15:22
https://deddit.petersanchez.com/g/golang@programming.dev/p/7kfqxRScmTSyNZD7Pg-GoHome-A-simple-app-to-host-your-Go-modules-with
from peter@deddit.petersanchez.com to golang@programming.dev on 06 Jan 2024 15:22
https://deddit.petersanchez.com/g/golang@programming.dev/p/7kfqxRScmTSyNZD7Pg-GoHome-A-simple-app-to-host-your-Go-modules-with
Repo: https://git.code.netlandish.com/~petersanchez/gohome
I wrote a simple application to easily manage your Go modules that you host on your own domains, backed by sqlite3.
I know there are quite a few ways to do this (nginx hacks, static pages, other server apps) but none of them scratched my itch. I wanted a simple utility that I can add/edit via my web browser and be done with it. No config file changes, no server reloads, etc.
Happy to hear all feedback.
Blog post (if you care): https://petersanchez.com/easily-host-go-modules-on-your-domain/
threaded - newest
Considering the implications of relying on an external company as the registry, I don’t think custom domains are really “vanity” as much as reserving agency to move the code if it becomes necessary. I’m perfectly happy with GitHub, but would rather my modules didn’t break if they implement a policy change at some future date. I also don’t like the implication that “GitHub owns” my repo due to the import path stuff.
That being said, I wonder if this same thing could be achieved with a simple reverse proxy/CDN with a few rewrite rules? Ideally, the only cost to a typical maintainer would be the domain name, and the rest could be hosted on free infrastructure (cloudflare would seem like a reasonable choice).
Yea, that's my main thing. I don't want to be "stuck" on a forge I no longer want to continue using.
I'm sure you can wire up many ways to do it with a simple CDN, etc. Previously I was using nginx rules to serve it. I know others who use simple static html pages. There are many ways to get it done. My module is just one way that works for me.