Ask HN: How do you deploy Go on bare metal?
How have you chosen to deploy your Go web server on bare metal running on port 443 without running it as root?
In this technical retrospective (2022), @iio7 shares practical architectural lessons learned from running, scaling, or migrating production software under lean constraints.
Core Principles for Independent Builders:
Defaulting to simpler architectures (such as monolithic frameworks, SQLite, or managed VPS) prevents early engineering bankruptcy.
Evaluating true compute and egress costs reveals that high cloud bills can often be slashed by 80%+ through judicious re-platforming.
Code you write at 2 AM as a solo engineer must be easy to debug six months later without complex microservice dependencies.
Community Debate Themes:
HN engineers debated the tradeoffs between cloud convenience and raw server economics, database indexing strategies, and resisting premature architectural complexity.
CATEGORY Frugal Engineering →
HISTORICAL ERA Pandemic Bubble (2020–2022)
COMMUNITY SCORE ★ 5 points
TOTAL DISCUSSIONS 4 comments
On FreeBSD, you can set the privileged port lower. I prefer setting it to port 79, so whatever webserver doesn't need to run or start as root. MacOS should have the same sysctl, IIRC, and I think Linux can delegate priviledged ports some other way.
Nginx, caddy, or any other proxy in front of it