Instead, they took the simplest possible route that works: installing the web server on bare metal, serving plain HTML and CSS, and using direct port forwarding via the router. This was a delightful read.
Instead, they took the simplest possible route that works: installing the web server on bare metal, serving plain HTML and CSS, and using direct port forwarding via the router. This was a delightful read.
Three years ago, I tried to publish a website on a VPS in the morning to present it to a client at lunch. This was before ChatGPT. I spent hours trying but got nowhere. At the meeting, having failed to publish it, I had to run it locally and share my screen. I was frustrated.
Later, I discovered Heroku, which solved all my problems. Eventually, I migrated to VPS + CapRover, and now I use VPS + Coolify.
I’m happy with my setup—it works—but I’ve always felt guilty for not knowing how to publish a simple website without Docker.
However, with tools like Caddy and Let’s Encrypt, the process has become easier. That said, it still involves quite a bit of fiddling if you want to automate everything and make it reproducible without a lot of hassle. Now, I do it all the time for fun. But that said, if it's a static site, then I don't see much point in self-hosting when Cloudflare Page and GitHub Page are so much more convenient.
On top of a Linux distro is not what people usually call bare metal
As much as I look back at the simplicity (Apache config was not that difficult for a small site, at least with Apache 2.0), the part of me that operates production software these days gets anxiety the idea of it all.
And yet, when I wrote a small website to host my wedding website last year, it was indeed Linux, (some webserver), Postgres and PHP, with me copying files manually to FTP. It was probably nginx but you know what, I paid a company £50 for a large amount of storage, bandwidth, a domain and SSL certificate, for year, and everything went dandy. Horses for courses and all that.
Sure, languages evolve, but that doesn't mean "anything goes" -- to the contrary, novel mutations have to survive intense selection pressures in order to eventually become part of the standard language.
Where new ways of using existing terms create ambiguity and conflict with existing meanings, their survival chances aren't always great.
This use of "bare metal" does contradict the pre-existing meaning, so is not quite appropriate. What is valid is describing the OS itself as running on bare metal in contrast to running within a VM/container -- but an application running on top of that OS is not running on bare metal.
This isn't particularly egregious, though, since there are negligible cases of actually running applications on bare metal today: if you are talking about applications, the context can usually explain the intended meaning. But that wasn't always the case in the past (PC "booter" software used to be common), so this doesn't necessarily apply retrospectively, and may not be the case in the future, especially considering some of the interesting things companies like Oxide are working on.