I’ve been a Software Engineering Student for 2 years now. I understand networks and whatnot at a theoretical level to some degree.
I’ve developed applications and hosted them through docker on Google Cloud for school projects.
I’ve tinkered with my router, port forwarded video game servers and hosted Discord bots for a few years (familiar with Websockets and IP/NAT/WAN and whatnot)
Yet I’ve been trying to improve my setup now that my old laptop has become my homelab and everything I try to do is so daunting.
Reverse proxy, VPN, Cloudfare bullshit, and so many more things get thrown around so much in this sub and other resources, yet I can barely find info on HOW to set up this things. Most blogs and articles I find are about what they are which I already know. And the few that actually explain how to set it up are just throwing so many more concepts at me that I can’t keep up.
Why is self-hosting so daunting? I feel like even though I understand how many of these things work I can’t get anything actually running!
I think the reason is that there’s a preferred method for doing things for each person.
Like take reverse proxies for instance.
You can use nginx proxy manager if you’re comfortable with docker but uncomfortable with CLI or text file configs.
Or you can just use straight nginx.
Or if you want you can use Caddy, which is what I personally do, because I dig how well Caddy does automatic management of letsencrypt certs. But that means being comfortable grokking how to write a Caddyfile (the config), and how to launch a daemon on some sort of Linux.
So if you want to take my route you’ve got even more choices, you can run it on a Linux VM, a Linux container, or let docker manage your Linux container. Or you can use someone’s Caddy docker container and config that for yourself.
Personally I hand configured a Linux LXC container on proxmox and am using that for all the reverse proxying on my proxmox NUC server.
It’s just so many variables now.
I remember back in the day you just installed a LAMP server and ran everything with PHP.
I’m not sure which is better.
But I’ve got to say, the sheer amount of abstractions and ways to orchestrate a system are mind numbing.
Like you can do proxmox or truenas or truenas scale or Synology or rancher or bare metal. There are so many things to decide on now.
And I’ve been running Linux for the past 18 years or so.
The biggest thing for me is that you should decide on the outset if you want a simple setup, or if you want to play with bleeding edge enterprise stuff.
One is relatively plug and play and somewhat tends to be less secure.
The other can be fun for some or job training for others. I find the people who find it fun to be a bit weird, like they are basically LARPing being a system administrator. But it might be just dressing up for the job they want instead of the job they’ve got, or they just like it and that’s fine for them.
It’s not really for me. I look for simplicity, but also security. Luckily I’m a fan of minimal installs and am happy with operating on a CLI. OpenBSD is a pretty solid base to build on. It makes you think about everything you add and how it’s a possible security hole.
Anyway, enjoy reading manuals. That’s most of what we do here. Join a forum or two (a real one). Find a supportive community there, ask good questions, contribute good answers. It’s computer karma and by helping others you’re broadening and solidifying your own comfort levels.
Don’t give opinions as fact. They are opinions.
This comment is clearly riddled with opinions. YMMV. Good luck with your goals.