The Ultimate Home Lab Guide: Easy DIY Setup NAS, Docker, Game Servers & More!

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
welcome back to made in Japan last week I had a few drives fail destroying my rate and losing almost all of my data but no time to cry I need it back up and running so let's do some early spring cleaning and rebuild we'll do a fresh install and reset up my Nas and my Docker containers then back up my data host my games and manage my media whether your home lab is on a nck or an Enterprise server this setup will work for you join me as we take a look at my whole Lab setup and rebuild from scratch feel free to follow along if you you haven't already hit that like And subscribe button so you can be notified of any future videos I'm sure many viewers are wondering what is a home lab or why do you need a server in your home a home lab typically refers to a setup where individuals create a miniature version of a data center or network environment in their home this could involve networking equipment or other Hardware to simulate real world scenarios for learning testing or personal projects there are few reasons why someone might have a server or a Home lab having a home lab allows enthusiasts and it Prof professionals or students to gain hands-on experience in various Technologies it provides a practical and a safe place to test different configurations softwares or setups without impacting production environment some individuals may use home labs for personal projects such as hosting their own website Game servers or running custom applications like I do many it certifications require practical knowledge and a home lab is an excellent way to prepare for exams by gaining hands-on experience home Labs can be used to experiment with home automation systems and iot devices and smart home Technologies some individuals like myself prefer to host their own services for increased control over data security and privacy rather than relying on cloud service you never know where your dad is going and you never know when their service could go down forever in my case my server will automatically back up pictures from my family's phones store them on a redundant storage system and also upload the images to the cloud for extra safekeeping this is how I sold having a Home Server to my wife anyway way our family pictures are worth more than anything so she's willing to put up with the cost of my hobby and the space it takes up I also have Docker containers that run several services that automatically Download Sort and rename 100% legal media I then use another container to host that media on Plex so me and my family can watch that media anywhere we go sometimes I also spin up containers to Host Game servers like Minecraft power world valheim Etc having an always on computer that I can connect to and use these servic is is why I started this hobby it's a great system to learn skills that has helped me in my professional and personal life my lab originally started out on a Raspberry Pi but my needs soon outgrew the hardware so I upgraded using my old Gaming desktop this worked great but it was a little unstable and used a bit too much power since I used the hardware for my old gaming setup it was about 7 years old and not designed to save on power so I started having issues I was then recommended by a friend to check out yahu auctions where I found cheap used Enterprise servers that's when I met my HP prant dl120 gen 9 it's a beauty and at only 10,000 Yen it was a bargain that's less than $100 US the CPU only had six cores and it had 16 gigs of RAM so I purchased a new CPU and two more 8 gig DMS for a total of 32 gigs of RAM now that I've explained my setup let's get started this setup should work on just about any hardware even a Raspberry Pi although there may be some limitations I personally have tried this on a knok my old gaming PC and an HP Enterprise server I'll start by logging into my server Enterprise servers have a thing called BMC or baseboard management controller this is like a Mini PC inside the PC once you set up an IP address username and password it allows you to connect from any web browser on the network you can then monitor the video output and input commands remotely it's amazing once at our server we'll start by installing proxmox from a USB we'll power up our device and wait for it to give us our boot options you may need to press a key to get into it in my case it's f11 here we can use our arrows to select the proxmox USB it'll boot from the USB and we'll want to choose graphic install it'll take a few seconds to scan the hardware and ready the files but once it's loaded up we can choose a drive that we want to install proxmox on next we'll choose the time zone and keyboard layout then set up a password and web login we can also link it to an email so that proxmox can send you alerts about the server next we'll need to set up the network that our server will be on here we can set up a static IP so it's easy to connect to every every time we'll confirm all our settings and hit finish once it's finished installing we'll need to reboot the server let it boot up then we can use the web login from any device on our Network just open up your favorite web browser type in that IP address Colin 8006 for the port number and we'll be greeted to our proxmox login screen enter in that username and password you set up a moment ago and we're inside congratulations you now have a hypervisor a hypervisor like proxmox is a lightweight operating system that acts as a shell converting whatever Hardware you're running into something easily manageable and readable by virtual machines first we'll set up a virtual machine for Tress tress is an operating system that is very good at organizing data and setting up redundant data pools first we'll head over here and use the local disk to import a dis image so we can start installing virtual machines for tras we'll keep most of the settings as default and the OS tab will select the image we just uploaded and we'll make a 20 gig drive for the VM this is just to host the operating system so I like to set it up with two cores as it doesn't use very much CPU power then we'll give it 10 gigs of RAM tras uses ZFS which is a type of raid that will use Ram as a cache so when you upload data to your share it first uploads to the ram which is extremely fast and then slowly offloads It Whatever storage media you have assigned this works amazingly for uploading many small files well leave the network as is and finish start the VM and it will start booting from the iso we pointed it to earlier select start install and after a moment we can select install install and upgrade select the boot disc that we set up and tell the system it's okay to wipe this select your preferred authentication method it recommends using admin and just setting a password once it's done installing shut down the virtual machine and remove the iso CD from the hardware settings now that it's done installing we can pass through our Hardware in my case my server has a built-in HBA or host bus adapter hbas connect your drives to the computer usually through pcie ports my built-in HBA also controls the two SATA ports on the motherboard so I can only pass pass through half of it and have to manually assign individual drives for the rest to pass through pcie devices we first need to enable virtualization in the bios for the BIOS we'll need to reboot the entire server open the system settings once in the Bios we will want to make sure that virtualization is turned on the location and naming may vary depending on your motherboard's maker but it's usually in advanced settings and called something like Intel virtualization or svm mode make sure it's enabled save your settings and exit we'll let the server reboot once the server is back out we can log in and connect to the shell type in Nano Etc deault SLG grub then in the grub CMD line Linux default in the quotations next to quiet we want to type intelcore I mmu equals on this will allow virtualization inside proxmox crl X yes and enter to save the file then we will need to update grub with update hyphen grub once passer is working we need to check what bus ID the device is on open up proxmox shell again or SSH and type in this command udevadm info DQ all-n /d/ your drive letter bar grab Dev path and enter this will show you the pcie device that that drive is connected to it's worth checking all of the devices that you want to pass through to make sure exactly what bus ID they're on sometimes one card may have more than one bus ID and in my case we can see that the boot ssds is on the same bus ID as four of my data drives so passing through the ID for my drive would break prox Mox and it would no longer have access to its own boot Drive once we've confirmed our IDs make sure that trass is shut down and we can edit the hardware settings go ahead and hit the add button add pcie click on Raw device and search for the IDS we just looked up click add and we can see our device is now passed through to the VM if everything worked properly we can start up the virtual machine and we're good to go as I mentioned in my case I can't pass through my four drives that are connected to the same bus as my boot SSD so we'll pass those hard drives through manually first we'll need the drive IDs we could use the drive letter but this could change from time to time and would end up causing issues so it's better to grab the device ID confirm the virtual machine is shut down open up proxmox shell or SSH we'll type in ls- n/d slisk slby ID this will list all of the drives attached to proxmox once we find the drive make note of the ID in my case it's at- the model number and the serial number next once we have a list of the devices that we want to pass through individually we'll type in/ sbin /qm set- Vero and this is important the number that this drive will show up as if you have 10 drives they'll be Vero 1 Vero 2 Vero 3 Etc /dev slisk slby ID SL Drive ID that we just made a list of as we hit enter in that command we'll see the hard disk pass through to the virtual machine in the hardware section you can confirm the number and the serial numbers against the drives you wanted to pass pass through and confirm everything looks good go ahead and start up tress and again if everything is working properly it'll Boot and all our drives will be available in tress to create a pool in tress open up your browser and type in the IP address we just set up for Tress sign in with the username and password you just created and log in you'll be greeted to the dashboard where it shows our memory usage CPU usage and any pools that we have set up to create a new pool go to storage create pool we'll create a name for this array in this example we use test click next and here is the array setup layout is the redundancy settings for our disc array stripe is combining two or more discs into a single Drive however there's no redundancy so if one drive fails you lose all the data mirror takes even number discs and creates a duplicate so if you have two discs you'll only have the space of one while the other has a duplicate of all the data raid Z1 2 and three the number indicates the number of drives that can fail before data is lost with raid Z3 you could lose three full drives without losing any data for this test I'll click stri which again is not redundant so if one drive dies all data is lost but I won't be keeping anything important on here anyway here it will automatically select all the discs of the same size or you can select manual selection you can add a vdev and drag in your drives that you want to use for this pool click save we'll click next all these other settings are optional so we won't mess around with them for now we'll click save and go to review or we'll double check the drives that we have selected and the capacity that it will give us we'll click create pool confirm that any data on these dis will be deleted in the creation of this pool and continue the time it takes will depend on the amount of drives and the storage capacity of those drives but once it's done we'll be shifted back to the storage page where we can see all our pools that are currently active if we scroll down we can see our test pool with two discs at 2 tabt each for a total of around 4 tabt to make this accessible to our containers and other network devices we'll need to create a data sheet go ahead and click on data sets go to our test and add data set test with a capital t is the name of the pool itself but that will not be access by other devices so we'll have to create a data set that our devices can connect to we'll use test with a lowercase T all these can be left as default and we'll click save next we'll need to create a share so that windows and other devices can connect to our data set go ahead and click shares click add we'll find the data set that we just created lowercase test we'll leave the permissions as default and click save it will then ask us to reset the SMB Services if it's already enabled then it'll ask us to create access control lists and we'll create users that can access this data we'll go ahead and clean everything up and save and then go back in and add our user click add item to create a mask give it read write and execute permissions then click add item again go to user select our user that we want to be able to access and give them permissions click save and now we should be able to access our share from any device on the network let's go ahead and give it a test in windows open up this PC or my computer click on computer map a network drive we can choose a drive letter sl/ our IP add address hit browse and we should see our tress options go ahead and connect with different credentials type in the username and password that we've set up our share will then open up a new window and we can test by creating a new folder or a new text document and we're good to go now we should have permissions on all of our devices using those login credentials for the docker server I like to use Ubuntu Ubuntu is an extremely popular Linux operating system so there's a lot of support online making it easier to deal with problems in the future create a new VM name it something like Docker then in the OS tab we'll select the Ubuntu ISO we have uploaded earlier for a boot dis I want something a little larger Flex can use a lot of space storing metadata and whatnot but this depends on the amount of media and metadata settings that you have set up so I'll choose something like 80 gigs we'll choose here to store the virtual drive on the local VM storage for CPUs I usually put eight cores this is mainly for gaming servers but Plex can also use quite a bit on its own if you don't plan on creating any game servers you can probably get away with three or four and we'll set 10 gigs for Ram we may add more later depending on our use case the great thing about prox Mox and virtual machines is we can change our Hardware settings whenever we want if we need some extra cores or CPUs hard drives or memory we can just add them to our Hardware list and next time the server restarts it will be updated with the new hardware we'll spin up the VM and go through the normal install settings for Ubuntu things like language keyboard time zones Etc here I like to choose the minimum install as this is going to be a Docker server and not used as a desktop I don't need a bunch of extra software we'll create a user and password and let ubun to finish installing once it's done It'll ask us to shut down the VM and remove the CD ISO drive just like we did in tress the first thing I like to do once Ubuntu is finished installing is install open SSH server because copy paste works much better through a terminal rather than the web browser first we'll do pseudo app get update to update the repositories then pseudo app install open SSH server hit enter to confirm the install and away it goes after after a few seconds we are good to go use your favorite terminal to connect through SSH I like putty next we'll connect to the shares we made in tress the docker containers will store data on the nas so we need Ubuntu to mount these shares when it boots first we need to install cifs drivers so Ubuntu can connect to SMB shares so we'll use pseudo app install cifs utils once that's finished installing we can open up the fs tab using pseudo Nano slcfs Tab here we will add the information for our share in my case my information looks like this but you will probably need to change the IP address share name where you want to mount the share locally and then of course the username and password if you're not worried about security we can put our credentials right in the mount command but I can't recommend using that long term it's better to create a reference text file that we can lock and store as FS tab is easily accessible if we've entered the right information in our Mount commands we should be good to go type in pseudo Mount d a to mount all the services in the fs tab if it all worked we will be able to CD into our share and see all the files on the share it's also good to test out your permissions and see if you can create a directory or file directly on the share all right next let's install Docker type in these commands to set out the docker repo then we'll add the repository to the app source and finally install Docker next let's create a painer container this will help manage our containers in the future use the painer commands to create a volume and install the painer container you could change the ports or environments but I recommend leaving it as is as this just works great now we can load painer on our web browser just type in ubuntu's IP address followed by the port number that we just set up in my case 9334 here we'll create a user profile and we're in the great thing about painer is we can create Stacks this is a text file with all the information to create the docker containers that we want here is the stack I like like to use I'll have a link to a file below you will need to change some things depending on your setup things like ports or volumes and in some cases passwords and usernames but that will be noted in the file we link below make the changes to work with your system and copy and paste it into your stack hit deploy and after 10 to 20 minutes your containers should be up and running but there's some last minute configurations that need to be done for example Plex in the stack there's a place for a claim code the claim code is something that we generate from our Plex account it expires after about 15 minutes so it's best to start the container then go back and change the stack we'll copy and paste a new claim code and update the stack we can then log in to Plex through the IP address and the port number then we will be greeted with the option to claim the server this will link it to your Plex account so you can manage it here we'll select our libraries where our media will be stored and set up our Plex settings but that's a whole another Rabbit Hole so next we'll jump over to our downloader if we want our downloader to use a VPN we will need to give the container a location for VPN configs let's go back into Ubuntu and download our config files I use Nord so I can look up the config files online just by Googling nordvpn config files then I'll choose a good connection from the list download and save it into our openvpn folder under Docker QB torrent openvpn folder then restart the container and we should be able to watch it boot up and connect if your logs look like this you should be good to go we can connect to the the web UI by going to the IP address for 8080 or whatever you set Yours up to the default user is admin and the default password is admin admin so it's important to change those and we're all set up next let's set up sonar and jacket you know the drill open your browser type in the IP and the port number you set up sonar and radar are controllers for media Management Systems so we'll need to point it to the other programs we've set up in other containers first let's go to settings and then download client here we'll choose QB torrent and enter the information we just set up hit test to confirm it's working then next let's add the pathways to our Nas in media management we can choose our root folders and we'll be able to search for the volumes that we set up which connect to that Nas it might be a good idea to test out your permissions here by opening up the shell in painer we can go to our container click this button to access the shell log in as route and try making a directory next we need sonar to be able to grab torrent files from the internet we can either set this up directly in sonar by creating a direct link to a site like neor but I prefer to use an indexer like jacket setting it up this way creates a more refined search result so I don't get junk downloads to set up a connection to Jacket we'll go ahead and click new and the bottom right option tours na here we can name it jacket and we'll need the API key in another tab on our browser we'll open up jacket IP address and the port we set for it in the upper right hand corner of Jacket we'll see our API key go ahead and copy that bring it back to sonar and paste in next we can set up our categories and settings for the most part I only download anime that I own so I can choose anime in the category section I don't have any restrictions on seed ratios and I haven't had much success with setting tags but we'll use jacket to refine those settings a little further the last part we need here is the URL so let's go back to jacket and we'll add an indexer in the search bar we can search for just about any torrenter even private ones again since I only download anime I'll choose n Tor we'll choose n from the list and then set up its configuration for me I like to change it so that it's trusted only and English translated that way I don't get anime in random languages and I have it selects files from high seeders to low with these settings we can go ahead and click okay and click on the copy fores nav feed this will give us the URL that we can enter into sonar go ahead and paste it in there and click test if everything works all right we'll get the green check mark can hit save and we're ready to go you can add new series at the top but remember it's not legal to download anything that you don't already own so download at your own risk and that's it your home server is set up sonar will talk to jacket to look for your totally legal downloads send the requests to your VPN protected downloader and save them to your Nas and then Plex will pick up the media and host it for you to consume on any of your web devices you can even set up apps on your phones like photosync to create automated photo backup systems from your phone to the nas you can spin up new VMS on proxmox whenever you want and use them to learn and build skills practice using Linux building Network management or packet tracing whatever you like if you like this content feel free to let us know down below let's make some videos together and enjoy the learning process see you
Info
Channel: MadeInJapan
Views: 4,852
Rating: undefined out of 5
Keywords: Home lab setup, NAS setup, Docker containers, RAID recovery, Server administration, Networking, Virtualization, IT skills, Data security, Home automation, DIY tech, Personal projects, Learning technology, IT certifications, Data backup, Game server hosting, Media management, Proxmox, TrueNAS, Ubuntu server, Raspberry Pi, Enterprise server, HP Proliant DL120 Gen 9, Hardware setup, Software setup, Tech tutorials, IT infrastructure, Cloud storage
Id: UP2dmHKrnNQ
Channel Id: undefined
Length: 21min 10sec (1270 seconds)
Published: Fri Mar 29 2024
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.