I’ve been wanting to get into self hosting for a long time and messed about a bit with setting up a nextcloud. But while I am reasonably well versed in linux and programming all things to do with the internet are quite confusing and mostly after reading blogposts and the like I am feel like I am missing so much knowldedge. From why people use traefik, how and why to use docker containers, what settings to change on the router, how to connect and setup the domain, and probably most importantly how to do this safely. Is there a good book or site that explains these more basic things?
Computer networking is basically a completely different field from operating systems and programming, though obviously some of the concepts are relevant. Turns out plugging these things into each other so that they can share information in a useful way is kind of difficult. A lot of very smart people have been working on it for almost 70 years, and frankly it’s still a fucking mess, so don’t feel bad if you feel a little lost.
Starting with the basics is the right instinct, in my opinion. Start with the OSI model:
…telkomuniversity.ac.id/7-osi-layer-the-building-… geeksforgeeks.org/…/osi-model-analogy-osi-7-layer…
This helps to break down the actual functioning of the network into logical steps. It’s very helpful when you’re trying to visualize the operarion of some of the more abstract bits of the technology stack (like TCP/UDP), and when you’re trying to think through what piece of it might be causing your problem in the moment (the router is on and the cables are plugged in, why is there no connection?). It’s a map that can help you when you’re lost. It’s also a guide to how a lot of people who work on networking technology think, so it can help you understand how things are supposed to work.
Beyond that, Professor Messer is a great resource: www.professormesser.com
If you feel reasonably confident with computer hardware components and various types of cable connectors, you can probably skip the A+ part and go straight into Network+. Because you’re doing this as a home hobbyist (not for the actual certification), I recommend just listening to the courses like you would a podcast. Don’t try to memorize or fully understand everything, just use it to get a grasp of the terminology and purpose of the various pieces.
I also recommend taking on a project to gain experience. Implenting PiHole pi-hole.net for your home network will cover routing, DHCP and DNS, plus you can do it with a Docker container.
Cisco’s CCNA exam, I think, covers a lot of ground. Although, homelab specific knowlegde, is best gained by building stuff and getting your hands dirty, so to speak, in my opinion.
I mean, there’s literal full step by step guides on youtube on how to start hosting and exposing services locally on a home server to the world, just look for “how to self host” or “home server guide” and you can learn alot of the basics that way. You don’t really need to learn all of networking, unless you want to.