5 ms·
I like how the author didn’t try to be overly clever with it. They could’ve used Docker to install and isolate dependencies, Caddy or Traefik to serve the site
by rednafi 2y ago
I like how the author didn’t try to be overly clever with it. They could’ve used Docker to install and isolate dependencies, Caddy or Traefik to serve the site and manage SSL automatically, maybe even k3s to run a mini cluster for HA, Tailscale to avoid manual port forwarding, Terraform for future auto-provisioning without hassle, or Ansible to prepare the machine and all that jazz.
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.
- hoppp 2y agoIf its for you there is no need to overcomplicate it. Complexity is just for job security :)
- ekianjo 2y ago> installing the web server on bare metal, On top of a Linux distro is not what people usually call bare metal
- reassess_blind 2y agoI've heard it called bare metal as opposed to a docker container or VM.
- ekianjo 2y agoThis is the Wikipedia definition which is the same thing as I said. If it's on top of an OS, it's not bare metal. https://en.m.wikipedia.org/wiki/Bare_machine https://en.m.wikipedia.org/wiki/Bare_machine
- reassess_blind 2y agoYeah, you're correct by the original definition - but in the modern context of Docker/k8s and web servers, "bare metal" is being colloquially used to refer to installing directly on the bare OS, and people understand that.
- mharig 2y agoI found that today "bare metal" is used equivalent to "non-cloud". I think this is pathetic.
- ad133 2y agoMaybe it is, these days? As much as I appreciate all the functionality brought to us by these tools, when I started web-dev circa 2005, LAMP (Linux, Apache, MySQL + PHP) was the go-to for hobbyists. 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.
- justin66 2y agoI'm sure 100% of the people who read that comment understood what it meant.
- Dalewyn 2y agoHowever many layers of abstractions deep you are, please try and get yourself out of there. The air down there ain't good for ya.
- rednafi 2y agoYeah. I used it for a lack of better term. But you get the idea.
- handity 2y agoIt is the correct term
- ekianjo 2y agoIt is not https://en.m.wikipedia.org/wiki/Bare_machine https://en.m.wikipedia.org/wiki/Bare_machine
- handity 2y agoNow that's just goofy, I get why they have similar names but it's begging for misunderstandings. https://en.m.wikipedia.org/wiki/Bare-metal_server https://en.m.wikipedia.org/wiki/Bare-metal_server
- Joeboy 2y agoCan't remember the name (if it has one), but there's a linguistic phenomenon where words take on opposite meanings from the original. The "Peacemaker" was a missile, "literally" now means "figuratively", "awful" used to mean "awe-inspiring". And apparently "bare metal" now means "runs on an operating system".
- Gormo 2y agoOTOH, technical fields develop jargon specifically as a solution to the problems created by semantic drift in vernacular vocabulary. 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.
- 2y ago
- icedrift 2y agoI appreciated this as well. Going in I was expecting a long winded technical report detailing npm compatibility issues or bundle size optimizations but no, they're simply setting up an apache webserver and shipping HTML/CSS.
- rubslopes 2y agoI really appreciated the blog post because it taught me something I’ve always wanted to learn but avoided because PaaS made me complacent. 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.
- rednafi 2y agoIt took me much longer than I'd like to admit to publish my first bare-metal website on a VM. The main issue was SSL—I could never configure Nginx for multiple sites on the same server with TLS. Setting up DNS and pointing your domain to your server also requires some fiddling. It’s not intuitive, and there aren’t many people doing this, so resources with full end-to-end examples are limited. 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.
- immibis 2y agoNowadays, certbot can configure either Nginx or Caddy automatically. Make sure you install the appropriate plugin with apt (if you're using apt).