Building a Mini PC Home Server: Proxmox, Docker, Jellyfin + Hardware Acceleration

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hey everyone so we're going to do something a little different in this video and what we're going to do is use a Mini PC to set up a Home Server so I really have three goals for this Mini PC the first is that I want to run Docker on it the second is that I want to use jelly Fin and I want it to work with Hardware acceleration and the third is that I want it to run home assistant so that's really the only goal I have for this device and what I'm going to be using is a gmk tech knockbox G3 uh it only has eight gigs of memory I'm probably going to have to upgrade that to at least 16 but we're not going to worry about that in this video so we're going to go through the entire setup process for this minus home assistant which I'll get to in a little bit but we're going to go through the whole setup process for this and we're going to start with the basics here so the first thing that I had to select was an operating system now going to cut right to the chase I selected proxmox the reason I selected proxmox is because I like to take backups of my devices on a nightly basis and the easiest way that I could do that is using proxmox so on a nightly basis I will run a backup process automatically that will backup these systems and services to my sonology Nas and if I ever have to restore back to them I can do it back to yesterday's version now this has saved me countless times especially with things like home assistant because there have been updates that have broken things and it was easier at the time to restore from a backup than it was to try and figure out exactly what went wrong so for that reason I selected prox MOX everything that I'm going to do in this video can be done if you install something like Ubuntu server or Debian so I'm not suggesting that you have to do it this way but this is the way I am going to do it now from a service perspective I'm going to set up in this video Docker and jelly fin in an lxc container for each each of them will have two gigs of memory so I'll have more than enough with the 8 gigs I have right now but each of them will have two gigs of memory and we'll get to why I'm not going to be running them in an lxc container together once we look at the setup process so I want to jump right into this and up to this point the only thing I did in this proxmox installation is I went in and I disabled the Enterprise repositories which they'll be enabled by default so you can just select them and disable them and then I added the no subscription repository which you can do this way select add and finally I just ran updates on the system so as long as you do that you will be up to the point that I'm at now the first thing we're going to do is configure a Docker lxc container now we're going to be using an lxc con container because from a resource usage perspective this is going to be a lot less than a full-blown virtual machine so it's basically going to share the system resources so the first thing that I'm going to do is download the Ubuntu 2204 template now I used to use Debian but I found that Ubuntu runs a little better so you can use deban if you want but as soon as that's done we're going to go in and we are going to create a container now this first container I'm just going to call it Docker and then I'm going to give it a password make sure this unprivileged container stays selected you do not want to run Docker in an lxc container with a privilege container next we are going to select that Ubuntu template we're going to give this 20 gigs of storage space I'll give it two cores and two gigs of memory finally in the network section I'm just going to select DHCP but you can enter a static IP address if you want I'd suggest doing it on your DHCP server but up to you everything else can stay as default and we're going to select finish and then at that point our Docker lxc container will be configured so the only other thing we have to do is inside of the options we have to turn on keyl so that Docker can run inside of a container so this will have all the permissions that we need so once you did everything you can start up the container and it should be extremely fast but then you log in and we are here so the first thing we're going to do here is update the system as well so now that the updates are done I'm going to install Docker so the commands I'm going to be running are official Docker commands uh from their documentation I have a written tutorial on how to configure Docker inside a proxmox it has the same commands you can use either so we're basically just going to run each of these commands one by one all right so as soon as you run all of these commands the final command that we have to run is this and this is going to install Docker so now that that's done the only other thing I'm going to do is install portainer so I have a way to manage Docker now you don't have to do this but I find it easier to actually manage Docker using portainer than anything else so that's done finally I'm just going to install the net tools package and then I'm going to find out what this IP is so it's 56 and then I'm going to navigate to painer and painer should be set up so at that point I will create a user account and now we have Docker and painer configured and it's currently running inside of proxmox so this is where I will go in and I'm going to configure all of my uh containers if you want a video to see what containers I run just leave a comment I'm happy to do that but now this is done so only thing I'd mention here you really want to set up a static IP address for your Docker installation so make sure you do it on your DHCP server or you can change it in the network configuration but you generally want this to stay the same so that is done now my next requirement is to run a jelly fin server inside of proxmox as well but I want to use Hardware transcoding so the device that I'm using and you don't have to use this device it has an n100 processor the n100 processor can be used with Quicks sync so I want to run an lxc container with jelly Fin and I want to pass the integrated Graphics directly from the proxmox host to our jelly fin lxc container I know it gets a little confusing but it'll make sense in a minute here now the reason you have to do this separately is because I'm going to be using NFS and what you can see here is that we have an unprivileged container however inside of these features here you cannot use NFS or SMB with a unprivileged container you can only do it with a privileged container you do not want to run Docker with a privileged container you're giving root access to your proxmox server you don't want to do that so keep it separate in my opinion this is best but keep it separate and then we're going to configure a secondary lxc container which is only going to be used for jelly fin so what we're going to do is basically run through the exact same thing the only difference is this is going to be privileged so I basically set up the exact same settings I had before and the lxc container is going to be created at that point point so there are going to be a lot of steps here a lot of commands I will do my best to break down exactly what each of these mean but the first thing that we're going to do is install VA info and ultimately what this does is if we run this VA info command you will see that our GPU drivers are not installed it's not actually pulling anything so that leads us to our next step which we have to install the GPU driver so without the GPU drivers you're not going to be able to get Hardware transcoding working now I have all of these commands in a written tutorial that explains how to configure jellyfin on a proxmox server with Hardware transcoding I'll leave that in the description you can get all these commands there so we're going to run three commands which are going to install our GPU drivers and to be clear I am only certain that these GPU drivers work with the n100 processor if you have a different processor I can't guarantee these are going to work there are three commands there in the written instructions if we run VA info again we have received a response which ultimately means that our GPU drivers have been installed successfully and we were able to pull some information from it so now the next step is going to be actually modifying this configuration file here and adding a few parameters which is basically just going to pass the GPU from our host to The Container so we're going to run this command here to edit this configuration file but what you're going to see here is I have 101.com 101 is the lxc containers ID for jelly fin so as soon as I do that we're going to get the default configuration file for our jelly fin container now I'm going to add these three lines at the bottom here these are going to be what passes this which is our GPU directly to this container so I'm going to write this these changes and then we are done with that step now we're done with the actual host changes at this point and we can start up our container and we're going to have to update it now with the container started and logged into we are going to update the system all right so with the actual updates installed we're going to install VA info again and as soon as that's installed if we run that command there we go we have our GPU which is passed from our proxmox host to our lxc container so that's good now the final thing we have to do is actually install Jelly fin all right so what we're going to do is we are actually going to install Jelly fin using a script there's a manual way of doing this but it's a lot easier to use the script in order to use the script we have to install curl the script will use Curl so with curl installed this commands will install Jelly fin now as soon as you get this message you can select enter here but what this is going to do do is this is going to install Jelly fin all right so once it's active and running we know it's installed what we're actually going to do now is shut this down because inside of these options here I forgot to turn on NFS so I'm going to be using NFS to pass my media to this jelly fin server you don't have to use NFS you use SMB I find NFS to be a little easier so I am going to enable that and then I'm going to start this container back up and then I'm going to log in what I'm going to do now is actually pass my media to it so on my sonology n in my media folder I'm going to go in and I'm going to create NFS permissions for this media folder only so what we have to do is we have to get the IP address of this jelly fin server 10.2.0 do502 10.2.0 to a folder inside of our lxc container running jellyfin so the first thing that we're going to do is make a directory for our media and then we're going to CD into it so as you can see nothing is there next we are going to install the NFS package that we will need and as soon as that's installed we can mount the actual shared folder on our sonology Nas to this media folder all right so after the NFS package is installed we can actually Mount our sonology Nas's media folder to the media folder on our device this command you have to make sure NFS is configured on this container and you have to ensure that the NFS permissions are granted on your Nas as soon as you do that if you navigate to that folder and you check what is inside of it you should have your media so the final thing we have to do here is actually ensure that this mounts every time we boot up the system so in order to do that we have to modify our fstab file and it's going to be a pretty basic setup here so basically what I have here is this is my Nas the IP address of my Nas the volume and the folder this is the folder on this lxc container this is NFS that's what we're using and then default0 0 everything in between here can be tabs and as soon as you do that we can reboot this system and as soon as the system comes back up and we log in we should be able to go to that folder and yes our data is there so that is now configured the final step here is going to be actually configuring jelly fin so once again the IP address is 102.05 so we're going to go to that IP address and port 8096 and we're going to get brought to the Jelly finin setup page so I'm going to quickly run through this and I'm going to just add in a test media library here but all of this can be modified based on whatever you want and you're going to have to add multiple libraries based on whatever type of media you have but all of this can stay as default you want to ensure that remote connections is enabled I would disable uh UPnP here I would not use that but once you select finish and you log in you should see all of your media um all right so the final thing that I want to do here is actually configure Hardware acceleration and show you that it's working so inside of the settings here you can select the person icon you can select dashboard and then what you will do is Select playback and we are going to turn on quick sync and we're going to turn it on for our options here and then at the bottom here we're going to save so now that Hardware transcoding is enabled what we're going to do is we're going to play a video and if we select this playback info here what you'll see is that we're actually not transcoding so we're direct playing at this point and that ultimately means that it's playing directly off the device it doesn't have to actually transcode it but if I come in here and I change this to 480p for example if you give it a second here on the left hand side you're going to see that it starts to transcode as soon as it starts to transcode as you can see what it's actually doing is it's using the GPU rather than the CPU so transcod coding will work with the CPU it'll be more efficient with the GPU this is using GPU Hardware transcoding which is on our processor it's the integrated Graphics from our processor so now that that's done the only thing I want to show you is I talked earlier about automated backups I backup all of my virtual machines and containers directly to my sonology Nest the way that I do that is by selecting the data center and then I add my sonology Nas as storage now I use it as NFS storage it basically follow the same process we followed for the media folder but if you grant NFS permissions the same way we did for the media server I have a tutorial for this exact thing as well that I will leave in the description uh as soon as you select that and you select where the data should go you can select exactly what this uh storage can be used for I generally select everything and then you can add it now as soon as you add it on the Le hand side you're going to see it but what this allows you to do is actually back up virtual machines and containers directly to your Nas so if you select this anology Nas storage in the top right you can back up the actual container directly to it so as soon as I do that what you'll see is it'll run through this process and if you give it a few seconds now the backup will complete so if you ever have to restore you can then select a previous backup and select restore and then you will restore it now if you want you can also configure automated backups so in the data center and in the backup tab you can select add and then what you have to do is select the storage and then you can select when it's going to back up and you can select all and then ultimately this will just run every single day based on whatever actual retention policy you set and now in the background without you realizing every single night your virtual machines and your containers will back up directly to your sonology Nas or whatever NFS storage you have and you'll be able to restore from them if you ever have problems this has saved me so many times because I have not wanted to go through and actually try and figure out what broke with whatever application update was installed all I had to do was go in restart from yesterday's backup and then I could go at a later time reinstall that update and try and figure out exactly what went wrong so that is the long and short of this you don't have to use this Hardware you don't even have to use these Services if you don't want to but this is exactly what I'll be using this device for if you want to see the next step which would be installing home assistant on proxmox leave a comment happy to create a video on that but if you have any questions feel free to leave them in the comments and if you made it this far thank you for watching I'll see you guys next time
Info
Channel: WunderTech
Views: 13,593
Rating: undefined out of 5
Keywords: mini pc home server, proxmox mini pc, jellyfin mini pc, docker mini pc, docker on proxmox, docker on proxmox lxc container, jellyfin proxmox hardware acceleration, jellyfin proxmox hardware transcoding
Id: gHBSrENzeqk
Channel Id: undefined
Length: 15min 40sec (940 seconds)
Published: Sun Mar 10 2024
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.