I've never had so much fun self-hosting. A decade or so ago I was hosting things on Linode and running all kinds of servers for myself but with the rise of cloud services, I favored just giving everything to Google. I noticed how popular this community was on Reddit/Lemmy and now it's my new addiction.
I'm a software engineer and have plenty of experience deploying to AWS/GCP so my head has been buried in the sand with these cloud providers. Now that I'm looking around there are things like NextCloud, Pihole, and Portainer all set up with Cloudflare Zero Trust... I feel like I'm living the dream of having the convenience to deploy my own services with proper authentication and it's so much fun.
Reviving old hardware to act as local infra is so badass it feels great turning on old machines that were collecting dust. I'm now trying to convince my brother to participate in doing hard-drive swaps on a monthly basis so I have some backup redundancy off-site without needing to back up to the cloud.
Sorry if this feels ranty but I just can't get over how awesome this is and I feel like a kid again. Cheers to this awesome community!
EDIT: Just also found Fission and OpenFaaS, selfhosted serverless functions, I'm jumping with joy right now!
Yea between the enshitificaiton of the internet and how far selfhost software has come it is a great time to selfhost and will just keep getting better.
Selfhosting, reddit drama, kbin, all this just makes it seem like the internet is having a sort of grassroots, back to basics movement which I'm all for lol.
Is there a specific part that you’re having trouble with? Is it more how it works under the hood, or more about using it to spin up containers? I can try to answer any questions and post some how tos for you.
I think I just need a general overview. Something about the concept isn't clicking for me, and it makes it hard for me to learn how to use it when I fundamentally don't get it. Is there a really good "Introduction to Docker and the tools people use with it" that I haven't found?
Are you having trouble learning it or understanding what it's used for? Much of learning Docker also comes with understanding some basics of software deployment like environment variables, ports and volumes. Happy to help answer any questions because it's an extremely powerful tool once it starts clicking.
Honestly I've never used docker properly and one time I tried for the *arr stack I ran into many issues with access to storage drives and connectivity between different services. Does it actually help with anything on rpi? I thought it's good enough to just install the rpi OS and then install other services normally on it?
If you want to host things and be accessible from outside your home then I'd start with getting a domain and static IP, point the DNS at your IP, make sure your DNS provider is supported by Let's Encrypt DNS authentication.
Then setup nginx as a reverse proxy and get Let's Encrypt setup with auto renewal. That way you can have secure https connections to your home.
Then install docker compose, fire up a service and configure nginx to proxy to it
I usually cut down on domain/DNS cost by using a free dynamic DNS service called duckdns. It works super well, provides Let's Encrypt support and sub-sub-domains. (for example your could have https://git.$username.duckdns.org)
I've found as a IT noob that Caddy 2 provides as much "batteries inside" and "boiler-plate free" to support me, because I have no Idea what I'm doing. So I just let caddy handle my encryption and reverse proxy to my actual server.
I'm an embedded software dev, who only discovers ethernet protocols on a surface level, because we hadn't need it yet in previous projects, so I'm a bit lost on how to do cloud stuff. So having all these great tools for free for me to try out and connect from outside to my media servers and stuff is awesome!
My old cheap Asus N66u router has a free dyndns service built-in. Super easy to setup. I use it to host a jellyfin setup. Bout to setup a torrent server and a NextCloud server. Used to run a owncloud server a few years back and loved having it.
https://hub.docker.com/r/linuxserver/swag is a nice image that gets you an nginx reverse proxy and Let's Encrypt automatic cert creation/renewal set up out of the box, with a bunch of sample configs for popular self-hosted services.
Haven't looked into it too much other than running wireguard to get around CG-NAT. How hard is it to deal with SSH certificates when setting up your own hosting?
Managing certificates is fairly easy with let's encrypt and certbot. Just get a free subdomain from duckdns and give it a try.
The only thing I wish I knew earlier is, that you don't need the whole snapd thing to install certbot, like they tell you in the official Dokumentation, but can just install it from the debian repository (and I assume the same goes for Ubuntu)
How do you get around CG-NAT with wireguard. I dont know much about that, but when ISP enabled CG NAT on my service my wireguard stopped working. I fixed that by asking them to turn it off, but would be nice to know whats workaround.
Duckdns was running all the time in docker container, but didnt work with CG NAT
Basically I got a $6 a month vps (with $250 credit for some reason) and configured it to be a tunnel to computers on my network that ran Web and community radio stuff.
Yeah, if you hosted them all as installed services then it would be pretty hard to manage, but if you're running them as containers and have some management software its easy. I have a very simple setup with portainer and docker-compose and it's no problem for me to manage about 10 services. I don't think I'll be adding more in the near future, but even if I would, it still wouldn't be a problem.