Do I need anything more than this? Is there some modern technology that is demonstrably better than my workflow? I worry I've been left behind, but I also find containers and other modern obsessions to be overkill for my needs.
Thanks for any and all advice.
[1]: https://caddyserver.com/
I can see two downsides to using a VM. 1) You need to update it. 2) Your website goes down if your VM goes down. Do these matter? I’d say 1) is moderately important and 2) depends on your website.
Using Netlify fixes these issues (but introduces other potential problems). Does that make it “demonstrably better”? Depends. I’m not you, so I don’t know any pain points or annoyances you have or what you consider important. At the end of the day it doesn’t make a difference to the actual website.
That said, it is very quick to try. Why not spend an hour or so and see if it’s worth it for yourself?
There are easier ways _depending on the context of what you already know_. There are better ways depending on what you're optimizing for. For you I bet this will be hard to beat. For me, I'd probably throw it in AWS S3, because that's what I know without having to think about it or do much work.
Containers and other such things are more for when you need different things, like a dynamic site or backend async processing, or not a site at all, and especially when you need some/all of that and are tired of sysadmining a VM.
As others have said, you can just drop it in S3.
The other alternative is Cloudflare pages. It’s cheaper than s3 with a generous free tier. I find it less hassle than uploading to s3. Git commit, git push, a few moments later it’s deployed on a global CDN.
Both options will be cheaper than running a VM and maintenance free.
At some date after that point you'll be seen as a retro computing hobbyist if you're willing to change your personal brand, and people will flock to your blog to learn just how you manage to pull it off...
Its easy, cheap and resilient. If you want you can then cloudflare the site or aws have an equivalent service.
for instance host with
Basically you check your files into GitHub and chill, it is as easy as it gets.
- https://pages.cloudflare.com/
- https://www.digitalocean.com/community/tutorials/how-to-depl...
If you are fine with your site being down for short periods of them then this approach is perfectly fine. Otherwise you'd need to set up multiple instances and some sort of load balancing between then.
Others have suggested hosted solutions for static sites (Netlify, Vercel, Github Pages, Cloudflare) and I think those would be a lot easier if you want a no fuss production solution.
Vendor lock-in is no where near as bad for static sites too, as the actual static build is the same just slightly different deploy commands for different platforms.
A commercial product might not exist in a few years, but you can't guarantee someone else will pay for your Caddy server VM, after you're gone too.
I serve my blog from Node.js on Heroku, even though it's mostly statically rendered, because that's my comfort zone. A CDN or even nginx would be more efficient, but I don't need it to be. I much prefer having the breezy and familiar workflow
I think of it in terms of marginal cost. What is the cost of spinning up another site in a CDN/jamstack workflow? Not too bad if it's also static. What about spinning up another service like a database? Or not even leaving the HTTP space, what about a non-static site? I like having the flexibility of say hacking together a RSS aggregator in a weekend and throwing it onto my VPS behind my already running reverse proxy.
(Oh and it's a "free" VPN if you are already paying for the VPS for another reason.)
It costs about 6 cents a month.
maybe i'm missing something as i didn't see anyone else suggest it, but i would just use github pages, or even something like gdrive, dropbox, mega can host html i think.
This is what I would do.
Keep the Markdown files on your local PC.
- Add/modify Markdown files.
- run a bash script to
- - rsync them all to your VPS
- - run Caddy on VPS
Done.
View on your favorite web browser.