What is the most essential computer terminology to understand home servers? reddit / selfhosted ---------------------------------------------------------------------- Entropy_nihilist · 2023-12-30 03:45 I’m not sure if this is the right place to post this, so please let me know if there could be somewhere better. I’m just getting into understanding computers and servers, with the aim of setting up a home server. However, I’m having a lot of trouble. I can understand the physical parts easily enough, but the software and networking terminology is giving me a headache. My main issue is that ADHD is making it difficult to learn the terminology. Understanding computer jargon is seemingly a brick wall for my ADHD for multiple reasons. I get lost, confused and frustrated when trying to research it. When it comes to learning the terminology, I’m not sure where to start. If you guys had to pick the most important terminologies and information needed to make sense of home servers, what would they be? I’d like to get a foundation of essentials to start building from. Do any of you know where I can find simple explanations for the essential stuff? Apologies for asking such a noobish question, but I’m just getting frustrated trying to figure everything out and getting nowhere. Thank you! ---------------------------------------------------------------------- Entropy_nihilist · 2023-12-30 03:48 Clarification - I'm not necessarily asking for you guys yo explain everything about the important stuff. I'd be more than happy with being told where to find beginner, ADHD friendly explanations elsewhere. ---------------------------------------------------------------------- devilsproud666 · 2023-12-30 03:50 Networking and hardware is a great start. ---------------------------------------------------------------------- dadarkgtprince · 2023-12-30 03:59 In band vs out of band is a good one. Basically differentiating your management and production traffic ---------------------------------------------------------------------- netnft · 2023-12-30 04:15 Pick your OS and start with DNS. Windows is a good server to learn from. You can then move onto other types once you get the basics. Windows Server is as close as you are going to get to a workstation experience. ---------------------------------------------------------------------- DementedJay · 2023-12-30 04:21 I think rather than trying to find a table where you can take slightly smaller bites, why not try asking the questions the confuse you about the terms you don't understand? I highly doubt anyone here will be upset with you. I personally enjoy helping people, especially people who are new to all this and are struggling to learn more, or figure out where to start. Ask away! ---------------------------------------------------------------------- pussylover772 · 2023-12-30 04:21 OSI layer 1…. ---------------------------------------------------------------------- Entropy_nihilist · 2023-12-30 04:38 I was hesitant to do that, frankly because it happens so often. Physical computer parts I mostly understand, and I have a very basic understanding of a Linux terminal. I have a basic understanding of virtual machines and decker containers. Most of the time, what trips me up is networking. Networking is the biggest bane of my existence, computer wise. I just get so overwhelmed by terminology that I don't even know where to start looking it up. Perhaps I should write up a more detailed post about what I'm trying to do, server wise. That might take a while, though. ---------------------------------------------------------------------- DementedJay · 2023-12-30 04:40 Networking is a pretty huge subject, but I started out as a network engineer, so again, ask away. If you're feeling self-conscious, just PM me. ---------------------------------------------------------------------- BelugaBilliam · 2023-12-30 04:49 Networking: - port forwarding - how reverse proxy works - IPs & ports Docker - likely to run a lot of self hosted apps this using this Hardware: - kinda depends on what your setup is, but you may hear about NICs (network cards) Random stuff: - what transcoding is (for media servers) Just off the top of my head. Hope it helps! ---------------------------------------------------------------------- Cautious_Delay153 · 2023-12-30 05:17 documentation Learn how to learn from the documentation. DOC-U-MEN-TATION Im still getting good at going through the written. Its a good mix of searches and docs ---------------------------------------------------------------------- HighMarch · 2023-12-30 05:51 Networking is pretty simple, honestly. The terminology has a tendency to overcomplicate it for a lot of people. Here's how I explained explained it to my non-techy spouse: Imagine you're getting ready to drive down the road. The building address is either Mac or IP (depending upon network layer you're working with). If you know that you want to go to the Dentist, but don't know the address so you look it up? That's the same as checking with a switch for a Mac table, or doing a DNS query (again, depending upon whether internal or external traffic). The GPS guidance that gets you to your destination? That's routing (Border Gateway Protocol, more or less). The analogy starts to weaken when you start getting more complicated than that, but I think that provides a fair overview. I don't have a great analogy for hardware vs. software, unfortunately. I've used both cars and layers of cake in the past to exemplify it, but neither were that strong of an analogy, so I'm going to hope someone else has good info/commentary on that for you. Hardware is just a tool, and software is what you do with the tool, effectively. A plugged-in pile of computer parts don't do anything but eat electricity until you give them commands. An operating system, and software on top of that, are just more efficient ways of accomplishing that without having to write instructions on punch cards. Watch HumbleBundle\* for a CompTIA\* bundle. Their A+ and Net+ books do a pretty good job of giving you an overview, and also contain a huge index of terminology. ALSO: Unless you're wanting to pursue certs, you don't need to memorize terminology. I've been Net+ certified for almost 20 years, and a CCNA in the past, and I still double-check myself on a LOT of terminology that doesn't get used in my daily work. As long as you can go "I think my issue is BGP" and then Google it to confirm that's the issue, or rule it out? You'll be fine. \* No association/benefit/etc, beyond being a current/past cert holder, and someone who buys from HumbleBundle occasionally. ---------------------------------------------------------------------- MiakiCho · 2023-12-30 06:05 Could you provide more information about your academic background? Do you already have a home server setup? What is your goal and motivation to learn about servers? How much time can you dedicate to learning? ---------------------------------------------------------------------- Entropy_nihilist · 2023-12-30 06:50 I'm self taught and don't have any certs, or any training in this area. I graduated high school before coding or anything like that in the curriculum. I have a bachelors degree, but it's not relevant to this topic. I'm planning on building a NAS / media server with an offsite backup connected by a VPN. I'm working on another post asking more specific questions about this but I'm not happy with it just yet. ---------------------------------------------------------------------- Entropy_nihilist · 2023-12-30 07:18 I just made a new post with more details about the issues I'm having. I'm not sure if I've given tmenough information though. ---------------------------------------------------------------------- ItsaSnareDrum · 2023-12-30 07:32 Let me just say I relate to this question so much. Coming into the space with ADHD it’s just acronym after acronym and take a lot of patience to get yourself up to speed ---------------------------------------------------------------------- CranberryLegal6919 · 2023-12-30 07:33 Google network layering, that is the core from everything you should understand ---------------------------------------------------------------------- Reverent · 2023-12-30 07:53 My entire learning process is built around problem driven design. IE: "what problem were people trying to solve by doing X thing". Networking for example. * "How do you connect things together?" - cabling/ethernet standards. * "What do you do when you need to talk to more than what's on that cable?" ARP/MAC, IP addressing, etc. * "What if your address changes from time to time?" - DNS * "What if people are dicks and start trying to break your stuff?" Encryption, TLS, etc. (This is a recurring theme by the way. People design stuff, then they need to design it to not break because people are awful) Once you understand the problem being solved (or at least attempted to be solved), the technologies generally make more sense. ---------------------------------------------------------------------- c4ptnh00k · 2023-12-30 07:54 “Cease and desist”, “piracy”, “throttling”. lol jk I’d start with the OSI model and work your way up. Can’t host anything anywhere if there’s no network ---------------------------------------------------------------------- TheCaptain53 · 2023-12-30 08:06 The thing here is that you won't know what you need to know until you start researching it. I would first of all figure out what you're trying to achieve and then take it from there. The benefit of a home setup is that you're presumably not operating anything mission critical, so if you decide to trash the whole thing and start again, you can. ---------------------------------------------------------------------- mousepad1234 · 2023-12-30 08:09 Networking but also network security. Don't just open ports for all your services to the entire world, or open ports just because someone said that's how to make an application work. A good start would be figuring out what all you want to do, followed by what apps you intend to use to make that happen, and then figure out the best and most secure way to set those apps up. ---------------------------------------------------------------------- Smeeks1126 · 2023-12-30 08:16 YouTube helps me when i dont want to read or need direction on what i need to learn. I'll look up a video on something I want to do, then look for someone who I can listen talk about it for 30 min, pausing and googling anything I don't understand. Sometimes working it out on my own machine "with" them. I'm a little more "throw myself into it and figure it out" though. I couldn't make up my mind which OS I wanted to run on my server. So I downloaded like 6 different things, installed them all, and kept the two that made the most sense (proxmox and truenas scale if you were wondering). Set the base system up. Installed a few things. Deleted some stuff. Reinstalled things. Google and YouTube'd my way through problems as I discovered them. Like the damn SSL certificates. Ugh, those were a headache for me to wrap my head around. But made me feel sooo good when that "security error" finally went away. I am also ADHD, so i understand the block. super technical things are my hyperfocus though. So I can sit down in front of my server and blow 5 or 6 hrs in front of a screen before I realize what happened. ---------------------------------------------------------------------- DigitalWhitewater · 2023-12-30 08:20 The Comptia A+ exam will give you all the computer terminology you need, even if you never sit the exam. I suggest watching the Professor Messor YouTube channel. His videos will walk you thru all the A+ exam content in a well produced manner. Bonus: he also has video playlists for other comptia exams like Network+ and Security+ which will help extent your knowledge base even further. ---------------------------------------------------------------------- ModernSimian · 2023-12-30 09:25 Well at least you know it's a layer 0 problem, so you are solving it the right way. Work your way up the OSI model. 1 you probably understand already, 2 is easy and small, 3 gets fun, and you can pick at parts of 4 for a while. ---------------------------------------------------------------------- netDevice · 2023-12-30 10:04 “Computer Networking: A top-down approach”, by Kurose, is a very nice book. If you’re interested in networking, you will enjoy it. Some parts might be a little outdated, but still interesting. ---------------------------------------------------------------------- mrblonde91 · 2023-12-30 11:26 I would say a lot of these pieces you can learn more intuitively by putting everything together. Eg I have a reasonable understanding of port forwarding and reverse proxies as a result of just building out the system. There's still networking terms that I'll forget unless I need to do something with them. So I'd say you'll achieve a lot of learning via doing the practical work and you can read alongside it. You'll be able to build up the mental associations. ---------------------------------------------------------------------- temotodochi · 2023-12-30 11:46 >confused and frustrated when trying to research it. ADHD is a common thing among IT professionals. Frustration is part of the job, it's the cusp of understanding when you aren't over it just yet and the more you know the more you know about what you don't know ergo a loop of frustration in case you just "educate yourself". Instead try to do it project and need based. Your project should yield you some service, like media server which actually transcodes on another beefier machine via rffmpeg and learn everything about that while you do it. Rinse and repeat with other things like proper DNS. If you just try to educate yourself about everything you will never go beyond the treshold of understanding and will forever stay frustrated. ---------------------------------------------------------------------- Ill-Caterpillar-7088 · 2023-12-30 11:46 Am I able to PM you with some of my stupid questions? ---------------------------------------------------------------------- someguynamedlou · 2023-12-30 11:49 I second this. If you’ve got this one down you can probably figure out the rest! Don’t forget learning to write documentation once you start building for production use cases. Too many people forget docs are for reading AND writing. …including me…. ---------------------------------------------------------------------- boli99 · 2023-12-30 11:56 >"the internet" learn that "the internet" is not one thing. it is a system composed of many things. so never claim that 'the internet isnt working' - instead work out which one of its parts is not working, and then you are 90% of the way to solving your own problem. ---------------------------------------------------------------------- DementedJay · 2023-12-30 12:06 Sure thing. ---------------------------------------------------------------------- weeklygamingrecap · 2023-12-30 13:24 And document EVERYTHING, that little fix that you do on a weekend, some tiny adjustment you think would be neat, the error that will totally, never, ever happen again. ---------------------------------------------------------------------- Invisiblelandscapes · 2023-12-30 13:34 I used the comptia certification network + notes and videos from proffessor Messer. Even if you don’t want the certification you will learn immensely from this man’s YouTube videos and notes. https://www.professormesser.com/ ---------------------------------------------------------------------- Firm_Tailor719 · 2023-12-30 14:49 Also ADHD, stop reading documents that have you drifting off within 60 seconds and watch some YouTube vids. ---------------------------------------------------------------------- rcane · 2023-12-30 15:11 Iptables does not block opened ports to a Docker container since Docker adds its own iptables rules. ---------------------------------------------------------------------- arankwende · 2023-12-30 15:40 This is the way ---------------------------------------------------------------------- arankwende · 2023-12-30 15:43 And if possible have a system of documentation, be that the names of txt files, folders, or implement something like bookstack or similar!!! ---------------------------------------------------------------------- lvlint67 · 2023-12-30 15:57 Just learn the osi model (or 3 layer model) and then read an intro to posix.... ---------------------------------------------------------------------- SM_DEV · 2023-12-30 16:24 OP, I would recommend either building a Linux server to play with, or “rent” a virtual server from a provider such as Linode. Linode has many tutorials on how to do various useful things and if you just want to learn the very basics of how things work, there are a plethora of free Linux tutorials as close as Google or a quick search on YouTube. Don’t try to learn the “language” or vernacular, but instead, concentrate on learning how things work. You’ll learn the acronyms you are struggling with along the way. For the very basics, you could look into books and guides for both the a+ and network+ exams. These two tracks will help you with the very basics necessary to begin. Lastly, use the tools available to you. If you want to know what an acronym is or how a given technology works, learn to use Google. There are even very good tutorials on how to become a more efficient user of the Google query engine. ---------------------------------------------------------------------- PoundKitchen · 2023-12-30 18:43 > The terminology has a tendency to overcomplicate it for a lot of people. Indeed, this is a common hurdle! ---------------------------------------------------------------------- sojojo · 2023-12-30 20:05 I have this setup and would call myself an amateur enthusiast. No professional IT experience, but I've been doing this for several years now. I went with TrueNAS and put it on some used PC hardware. My hardware: i5 6500, 16 GB DDR4 memory, 4x 14 TB Western Digital Red drives, 128 GB SSD (boot drive), 2x 512 GB m.2 SSDs. APC UPS. Some of the more important concepts that come to mind: * offsite backups: learn about rsync. It took me a few tries to get right. * RAID: I went with a RAID Z1 configuration which gives you 1 drive of redundancy. I'd recommend the same for your use case * Datasets and pools: how you logically group your storage devices (related to above). In my case, I have a bulk storage pool (the 4x HDDs) for media files and other data, and a systems pool (the 2x m.2 SSDs) for services like Plex and docker. * UPS: uninterruptible power supply. You need to have one of these in case there's a power outage. It should have USB so it can signal the NAS to shut down gracefully so you don't corrupt your data. Requires some additional setup in software. * File sharing: SMB is probably the most relevant. That way you can mount network shares on your other devices. * Media serving and other services: TrueNAS has a Plex plugin which makes setup dead simple. Make sure that all of your services are installed on an SSD pool, **not** a HDD pool. I made that mistake the first time around, and it's much more performant and less irritating when Plex has to run through and index things periodically. ---------------------------------------------------------------------- MiakiCho · 2023-12-30 20:45 To be honest with you, it is not as simple as people claim to learn about networking. There are 6 months to 1 year courses just on networking for those who already have basic knowledge of operating systems. There are just a lot of things to learn. To build a NAS, the easiest option for most is to just buy something pre-built like the one from Synology. Synology has both Plex and VPN packages that you can add. You just have to make sure the hardware you buy supports the packages you want. You could also do your own hardware and use TrueNAS. That requires more knowledge on the operating system and networking. If you want to go that route, just get some books on operating systems, networking and read them. Usually a book is more organized so that you can learn in a logical path. Then it would be easier for you to understand documentation of specific software like TrueNAS. Another option is just start, get stuck, get help from Internet, solve and loop. But that will be a bit painful to do if you don't understand the basics. ---------------------------------------------------------------------- Ikram25 · 2023-12-31 02:26 I think the easiest way to learn besides Google and reading documentation is just asking questions. So I’d say let just start at point one. What is something(s) that you are learning now or wanting to learn that you currently don’t understand. Terminology, ideas, processes. It’s a big beast to properly self host and is a lot of learning so your feelings are natural. ---------------------------------------------------------------------- instant_dreams · 2023-12-31 04:42 General comments first: 1. Pick a use case. Don't do something for the sake of it. 2. Make it iterative. Get it working, come back to it later when you've got a deeper understanding. 3. Look into Configuration as Code, or GitOps. Find a good way to make your setup easily replicable to minimise frustration. Specific issues: * Understand the difference between bare metal, containers, and virtual machines * Explore the concept of Command Line Interfaces (CLIs) vs Graphical User Interfaces (GUIs) and find which one works best for you