if you're running Docker you NEED to checkout Dockhand!
Read full transcript 15 segments
-
Hello everybody. This is Tekk. In this Hello everybody. This is Tekk. In this one, what we're going to be doing is one, what we're going to be doing is one, what we're going to be doing is checking out a tool called Dockhand. checking out a tool called Dockhand. checking out a tool called Dockhand. What this is is a powerful intuitive What this is is a powerful intuitive What this is is a powerful intuitive Docker platform free for home labs ready Docker platform free for home labs ready Docker platform free for home labs ready for enterprise. So they do have for enterprise. So they do have for enterprise. So they do have enterprise license options. From a enterprise license options. From a enterprise license options. From a surface level perspective, what this surface level perspective, what this surface level perspective, what this basically is is an alternative to basically is is an alternative to basically is is an alternative to something like Port Tainer, which is a something like Port Tainer, which is a something like Port Tainer, which is a tool that I love, but I haven't really tool that I love, but I haven't really tool that I love, but I haven't really seen myself using that much anymore. I seen myself using that much anymore. I seen myself using that much anymore. I usually just manage all my Docker usually just manage all my Docker usually just manage all my Docker Compose stacks and directories with the Compose stacks and directories with the Compose stacks and directories with the terminal. Works good for me. But the terminal. Works good for me. But the terminal. Works good for me. But the problem the problem with that is there problem the problem with that is there problem the problem with that is there are updates and things slipping through are updates and things slipping through are updates and things slipping through my fingers. I don't really have a good my fingers. I don't really have a good my fingers. I don't really have a good way to monitor manage all of these way to monitor manage all of these way to monitor manage all of these different Docker Compost decks that I different Docker Compost decks that I different Docker Compost decks that I have on a variety of different systems. have on a variety of different systems. have on a variety of different systems. And hopefully this tool right here is And hopefully this tool right here is And hopefully this tool right here is something that could go ahead and help something that could go ahead and help something that could go ahead and help me out. So what we're going to do in me out. So what we're going to do in me out. So what we're going to do in this video is set this up on a desktop this video is set this up on a desktop this video is set this up on a desktop computer that I'm currently using as computer that I'm currently using as computer that I'm currently using as kind of my LLM server. has a lot of kind of my LLM server. has a lot of kind of my LLM server. has a lot of Docker stuff running on it. So, this is Docker stuff running on it. So, this is Docker stuff running on it. So, this is a great place to start. I will add a a great place to start. I will add a a great place to start. I will add a different environment from a different different environment from a different different environment from a different different machine so I can maybe manage different machine so I can maybe manage different machine so I can maybe manage a bunch of different stuff from the one a bunch of different stuff from the one a bunch of different stuff from the one instance. We'll go over some of the instance. We'll go over some of the instance. We'll go over some of the features. We'll change some settings.
-
features. We'll change some settings. features. We'll change some settings. We'll have some fun. And we'll do all We'll have some fun. And we'll do all We'll have some fun. And we'll do all that right after I give a big thank you that right after I give a big thank you that right after I give a big thank you to the sponsor of today's video, to the sponsor of today's video, to the sponsor of today's video, gamma.app. If you're somebody who's into gamma.app. If you're somebody who's into gamma.app. If you're somebody who's into AI, which I understand if you're not, AI, which I understand if you're not, AI, which I understand if you're not, Gamma might be a awesome tool for you if Gamma might be a awesome tool for you if Gamma might be a awesome tool for you if you're looking to generate you're looking to generate you're looking to generate presentations, socials, websites, and presentations, socials, websites, and presentations, socials, websites, and more. Just to give you a quick demo more. Just to give you a quick demo more. Just to give you a quick demo here, let's go ahead and create new. And here, let's go ahead and create new. And here, let's go ahead and create new. And I'm going to generate something. Let's I'm going to generate something. Let's I'm going to generate something. Let's generate a presentation. And we're generate a presentation. And we're generate a presentation. And we're talking about Docker. Let's generate talking about Docker. Let's generate talking about Docker. Let's generate something for that. So, I wrote out this something for that. So, I wrote out this something for that. So, I wrote out this little prompt here just asking it to little prompt here just asking it to little prompt here just asking it to create something on anything that you'd create something on anything that you'd create something on anything that you'd want to know with Docker. I'm going to want to know with Docker. I'm going to want to know with Docker. I'm going to generate the outline there. And it's generate the outline there. And it's generate the outline there. And it's going to work pretty quick. They've going to work pretty quick. They've going to work pretty quick. They've recently added Nano Banana within their recently added Nano Banana within their recently added Nano Banana within their platform, which is the Google Gemini platform, which is the Google Gemini platform, which is the Google Gemini model. You can use it in their platform model. You can use it in their platform model. You can use it in their platform for free. It's incredibly quick. for free. It's incredibly quick. for free. It's incredibly quick. Everything is interactive. So, you could Everything is interactive. So, you could Everything is interactive. So, you could go through, make sure all the content is go through, make sure all the content is go through, make sure all the content is actually decent, edit, move things actually decent, edit, move things actually decent, edit, move things around, change everything how you want around, change everything how you want around, change everything how you want it to be. I could pick the general it to be. I could pick the general it to be. I could pick the general theming. I could pick the actual image theming. I could pick the actual image theming. I could pick the actual image generation type. And I can just click on generation type. And I can just click on generation type. And I can just click on generate, which you could see here. And generate, which you could see here. And generate, which you could see here. And then you could go edit it, manipulate then you could go edit it, manipulate then you could go edit it, manipulate it, do whatever you want. use it to it, do whatever you want. use it to it, do whatever you want. use it to build actual content or generate ideas build actual content or generate ideas build actual content or generate ideas for what you want to do. One thing, the for what you want to do. One thing, the for what you want to do. One thing, the layouts are really nice. And it is layouts are really nice. And it is layouts are really nice. And it is generating these images on the fly, generating these images on the fly, generating these images on the fly, which is cool. And of course, they have which is cool. And of course, they have which is cool. And of course, they have a bunch of fantastic internal tools to a bunch of fantastic internal tools to a bunch of fantastic internal tools to go ahead and edit this. But real cool, go ahead and edit this. But real cool, go ahead and edit this. But real cool, if we go over here, click on share, you if we go over here, click on share, you if we go over here, click on share, you can export it in a variety of popular can export it in a variety of popular can export it in a variety of popular formats, which is helpful. So, if you're formats, which is helpful. So, if you're formats, which is helpful. So, if you're interested in trying it out, go ahead interested in trying it out, go ahead interested in trying it out, go ahead and check out my link down below.
-
and check out my link down below. and check out my link down below. Generate a deck, refine it, export it. Generate a deck, refine it, export it. Generate a deck, refine it, export it. That's the workflow. So, big thank you That's the workflow. So, big thank you That's the workflow. So, big thank you to Gamut. Now, we are going to go and to Gamut. Now, we are going to go and to Gamut. Now, we are going to go and get this set up. Over here in this get this set up. Over here in this get this set up. Over here in this terminal, I've already sshed into the terminal, I've already sshed into the terminal, I've already sshed into the server that I do plan on installing this server that I do plan on installing this server that I do plan on installing this on. It's Fedora. It has Docker. It's got on. It's Fedora. It has Docker. It's got on. It's Fedora. It has Docker. It's got a 3090 in it. It's a pretty beefy a 3090 in it. It's a pretty beefy a 3090 in it. It's a pretty beefy machine. So, under home lab, we're just machine. So, under home lab, we're just machine. So, under home lab, we're just going to hit get started for free. We going to hit get started for free. We going to hit get started for free. We have a few options. So, you can see we have a few options. So, you can see we have a few options. So, you can see we can do a Docker run command. We have a can do a Docker run command. We have a can do a Docker run command. We have a simple Docker Compose right here, or we simple Docker Compose right here, or we simple Docker Compose right here, or we have a Docker Compose stack if you want have a Docker Compose stack if you want have a Docker Compose stack if you want to use Postgress instead of SQLite for to use Postgress instead of SQLite for to use Postgress instead of SQLite for your database. If I go over here, I'm your database. If I go over here, I'm your database. If I go over here, I'm just going to show you kind of how I got just going to show you kind of how I got just going to show you kind of how I got this set up. Right now, I have two this set up. Right now, I have two this set up. Right now, I have two docker compose stacks. One for zero docker compose stacks. One for zero docker compose stacks. One for zero byte, one for automation. So, if I ls byte, one for automation. So, if I ls byte, one for automation. So, if I ls automation for example, you can see I automation for example, you can see I automation for example, you can see I got the compose, got nadna, open web ui got the compose, got nadna, open web ui got the compose, got nadna, open web ui postgress in there. For this, I'm going postgress in there. For this, I'm going postgress in there. For this, I'm going to go ahead and just make a new to go ahead and just make a new to go ahead and just make a new directory. Call it dochand cd into this directory. Call it dochand cd into this directory. Call it dochand cd into this new directory. And then we'll make a new new directory. And then we'll make a new new directory. And then we'll make a new compose file right here. For this, I compose file right here. For this, I compose file right here. For this, I don't really see a need to run don't really see a need to run don't really see a need to run postgress. I'm not going to be storing a postgress. I'm not going to be storing a postgress. I'm not going to be storing a whole lot of data. So, let's go ahead whole lot of data. So, let's go ahead whole lot of data. So, let's go ahead and copy this and then drop it on into and copy this and then drop it on into and copy this and then drop it on into our compose YAML. Now, here I'm really our compose YAML. Now, here I'm really our compose YAML. Now, here I'm really not going to change too much. I don't not going to change too much. I don't not going to change too much. I don't have any services running on the port have any services running on the port have any services running on the port 3000. We have the image here. We have 3000. We have the image here. We have 3000. We have the image here. We have the var docker sock. So, you are going the var docker sock. So, you are going the var docker sock. So, you are going to be exposing the docker sock obviously to be exposing the docker sock obviously to be exposing the docker sock obviously because it's going to be managing because it's going to be managing because it's going to be managing everything for you. Now, one thing I everything for you. Now, one thing I everything for you. Now, one thing I might not want to manage this in a might not want to manage this in a might not want to manage this in a docker volume. So, I'll go ahead and get docker volume. So, I'll go ahead and get docker volume. So, I'll go ahead and get rid of that. that's probably recommended rid of that. that's probably recommended rid of that. that's probably recommended to, but that's not really how I do
-
to, but that's not really how I do to, but that's not really how I do things. Here, we're going to put this in things. Here, we're going to put this in things. Here, we're going to put this in our current working directory. So, in our current working directory. So, in our current working directory. So, in that home Brandon uh Docan directory, we that home Brandon uh Docan directory, we that home Brandon uh Docan directory, we have Docan data, and I am actually going have Docan data, and I am actually going have Docan data, and I am actually going to allow it to see one more directory. to allow it to see one more directory. to allow it to see one more directory. And you'll see this in action in just a And you'll see this in action in just a And you'll see this in action in just a little bit. And that is going to be my little bit. And that is going to be my little bit. And that is going to be my home directory. So, I want home Brandon home directory. So, I want home Brandon home directory. So, I want home Brandon to expose to expose to expose home Brandon within the container. And home Brandon within the container. And home Brandon within the container. And that is where I have a lot of my current that is where I have a lot of my current that is where I have a lot of my current Docker stuff. And that's how I'm going Docker stuff. And that's how I'm going Docker stuff. And that's how I'm going to easily import it. Again, you will see to easily import it. Again, you will see to easily import it. Again, you will see that shortly. So, let's just go ahead that shortly. So, let's just go ahead that shortly. So, let's just go ahead and run it, shall we? Docker compose up and run it, shall we? Docker compose up and run it, shall we? Docker compose up dash d. We don't really need to see it dash d. We don't really need to see it dash d. We don't really need to see it cuz we could easily just jump over here cuz we could easily just jump over here cuz we could easily just jump over here and see if it's working. So, let's go and see if it's working. So, let's go and see if it's working. So, let's go 183,000. 183,000. 183,000. And here we are. We are in dockhand. And here we are. We are in dockhand. And here we are. We are in dockhand. Now, I am going to configure my first Now, I am going to configure my first Now, I am going to configure my first environment, which is going to be my environment, which is going to be my environment, which is going to be my local environment. So to do that, we're local environment. So to do that, we're local environment. So to do that, we're going to go to settings and here under going to go to settings and here under going to go to settings and here under environments, we're going to add a new environments, we're going to add a new environments, we're going to add a new environment. This is going to be my environment. This is going to be my environment. This is going to be my let's just call it something like Fedora let's just call it something like Fedora let's just call it something like Fedora local. And if I go ahead and click on local. And if I go ahead and click on local. And if I go ahead and click on this, you get some more information. So this, you get some more information. So this, you get some more information. So the socket is going to be that Docker the socket is going to be that Docker the socket is going to be that Docker sock that we allowed it access to.
-
sock that we allowed it access to. sock that we allowed it access to. Additionally, you do direct connection Additionally, you do direct connection Additionally, you do direct connection with the engine API. And this I think with the engine API. And this I think with the engine API. And this I think it's hoser. This is how we're going to it's hoser. This is how we're going to it's hoser. This is how we're going to connect uh off-site machines. They're connect uh off-site machines. They're connect uh off-site machines. They're not really offsite machines that aren't not really offsite machines that aren't not really offsite machines that aren't the machine that this is running on. the machine that this is running on. the machine that this is running on. Machines in my local network. So all Machines in my local network. So all Machines in my local network. So all that looks good. We have our public IP that looks good. We have our public IP that looks good. We have our public IP here. I'm going to do my local IP. So it here. I'm going to do my local IP. So it here. I'm going to do my local IP. So it will work if I click on something. So will work if I click on something. So will work if I click on something. So this can be 180. And we could just add this can be 180. And we could just add this can be 180. And we could just add that. And just like that, it's added. So that. And just like that, it's added. So that. And just like that, it's added. So if I head over to my dashboard, you can if I head over to my dashboard, you can if I head over to my dashboard, you can see my environments right here. And I see my environments right here. And I see my environments right here. And I have that Fedora local environment with have that Fedora local environment with have that Fedora local environment with those containers running. If I go ahead those containers running. If I go ahead those containers running. If I go ahead and open this up, you can see I have and open this up, you can see I have and open this up, you can see I have nadn postgress a llama web UI and zero nadn postgress a llama web UI and zero nadn postgress a llama web UI and zero byte as well as docand just right here. byte as well as docand just right here. byte as well as docand just right here. When it comes to the individual When it comes to the individual When it comes to the individual container management has everything container management has everything container management has everything you'd kind of expect if you're familiar you'd kind of expect if you're familiar you'd kind of expect if you're familiar with port tainer bunch of the same with port tainer bunch of the same with port tainer bunch of the same things including simple stuff start, things including simple stuff start, things including simple stuff start, pause, restart. We have view details. pause, restart. We have view details. pause, restart. We have view details. You can browse the files which is pretty You can browse the files which is pretty You can browse the files which is pretty cool. So in like zero byte for example, cool. So in like zero byte for example, cool. So in like zero byte for example, if I clicked on browse files, it'll if I clicked on browse files, it'll if I clicked on browse files, it'll actually open up a whole file browser actually open up a whole file browser actually open up a whole file browser which is nice. And you have the ability which is nice. And you have the ability which is nice. And you have the ability to create files, upload files, refresh, to create files, upload files, refresh, to create files, upload files, refresh, and so forth. Additionally, you could and so forth. Additionally, you could and so forth. Additionally, you could jump into the logs, jump into the into jump into the logs, jump into the into jump into the logs, jump into the into the actual CLI for the container, and the actual CLI for the container, and the actual CLI for the container, and delete the containers. There's also delete the containers. There's also delete the containers. There's also quick options here to prune, refresh, quick options here to prune, refresh, quick options here to prune, refresh, and a big one is checking for updates.
-
and a big one is checking for updates. and a big one is checking for updates. So, if I click on check for updates, we So, if I click on check for updates, we So, if I click on check for updates, we can see I do have a few different things can see I do have a few different things can see I do have a few different things to update in the settings. And you'll to update in the settings. And you'll to update in the settings. And you'll see you can automatically have it check see you can automatically have it check see you can automatically have it check for updates at certain times of the day. for updates at certain times of the day. for updates at certain times of the day. You can even have it automatically You can even have it automatically You can even have it automatically update things, which I would not update things, which I would not update things, which I would not recommend. But let's say I want to recommend. But let's say I want to recommend. But let's say I want to update a llama. I just click on that update a llama. I just click on that update a llama. I just click on that update and then it's going to go ahead update and then it's going to go ahead update and then it's going to go ahead and pull download the image and restart and pull download the image and restart and pull download the image and restart the container with that new image. So, the container with that new image. So, the container with that new image. So, it will be all up to date. And there we it will be all up to date. And there we it will be all up to date. And there we go. It's done. So now that container is go. It's done. So now that container is go. It's done. So now that container is up to date and you can see that little up to date and you can see that little up to date and you can see that little update notification there is gone. Now update notification there is gone. Now update notification there is gone. Now then of course over here we have access then of course over here we have access then of course over here we have access to all the different logs. Really easy to all the different logs. Really easy to all the different logs. Really easy way to go ahead and jump through and way to go ahead and jump through and way to go ahead and jump through and actually see the logs for everything actually see the logs for everything actually see the logs for everything that we're running. We have multi here. that we're running. We have multi here. that we're running. We have multi here. You could change how it's displayed. You could change how it's displayed. You could change how it's displayed. Group logs. You can view it as singles Group logs. You can view it as singles Group logs. You can view it as singles if you'd like to and view it this way. if you'd like to and view it this way. if you'd like to and view it this way. It just has multiple viewing options. It just has multiple viewing options. It just has multiple viewing options. And then of course you have options to And then of course you have options to And then of course you have options to download the logs, copy them, change the download the logs, copy them, change the download the logs, copy them, change the font, autoscroll, bunch of really cool font, autoscroll, bunch of really cool font, autoscroll, bunch of really cool stuff. Then over here shell kind of the stuff. Then over here shell kind of the stuff. Then over here shell kind of the same principle philosophy. So if we go same principle philosophy. So if we go same principle philosophy. So if we go to a running container such as O Lama to a running container such as O Lama to a running container such as O Lama you could see connecting to a llama you could see connecting to a llama you could see connecting to a llama shell you could change this if you want shell you could change this if you want shell you could change this if you want to. So you could go sh in which there to. So you could go sh in which there to. So you could go sh in which there I'm now actually connected to Lama. And I'm now actually connected to Lama. And I'm now actually connected to Lama. And now over here under stacks this is where now over here under stacks this is where now over here under stacks this is where I like to have some fun. Now earlier I I like to have some fun. Now earlier I I like to have some fun. Now earlier I added this right here Brandon home and added this right here Brandon home and added this right here Brandon home and that's because these are unttracked.
-
that's because these are unttracked. that's because these are unttracked. These were created externally. So I want These were created externally. So I want These were created externally. So I want to link it up to their actual docker to link it up to their actual docker to link it up to their actual docker compose yaml file. So what I could do so compose yaml file. So what I could do so compose yaml file. So what I could do so let's say dohand for example if I go let's say dohand for example if I go let's say dohand for example if I go ahead and click on this unttracked right ahead and click on this unttracked right ahead and click on this unttracked right here. It's an unttracked stack. This here. It's an unttracked stack. This here. It's an unttracked stack. This stack is running in docker but dohand stack is running in docker but dohand stack is running in docker but dohand doesn't know where its compos file is. doesn't know where its compos file is. doesn't know where its compos file is. And since I gave it access to my home And since I gave it access to my home And since I gave it access to my home directory I should be able to just go to directory I should be able to just go to directory I should be able to just go to home brandon dochand and then the home brandon dochand and then the home brandon dochand and then the compose yaml is right here. Select that. compose yaml is right here. Select that. compose yaml is right here. Select that. There we go. And now I could just hit There we go. And now I could just hit There we go. And now I could just hit save or save and redeploy. I'll just go save or save and redeploy. I'll just go save or save and redeploy. I'll just go save. if I don't want to crash the whole save. if I don't want to crash the whole save. if I don't want to crash the whole stack. And then I would just do the same stack. And then I would just do the same stack. And then I would just do the same thing with something like a zero byte thing with something like a zero byte thing with something like a zero byte here. So home Brandon zero byte compose here. So home Brandon zero byte compose here. So home Brandon zero byte compose select and then this one I could save select and then this one I could save select and then this one I could save and redeploy. There we go. And just to and redeploy. There we go. And just to and redeploy. There we go. And just to make sure I don't think it's going to make sure I don't think it's going to make sure I don't think it's going to mess with permissions, but if I get out mess with permissions, but if I get out mess with permissions, but if I get out of here and let's go ll. Okay, so good. of here and let's go ll. Okay, so good. of here and let's go ll. Okay, so good. The compose is still managed by me. If I The compose is still managed by me. If I The compose is still managed by me. If I go into zero byte, I believe it's going go into zero byte, I believe it's going go into zero byte, I believe it's going to be the same situation, which it is. to be the same situation, which it is. to be the same situation, which it is. That is good. Now, quickly while I'm That is good. Now, quickly while I'm That is good. Now, quickly while I'm here, I'm going to do this, but I'm not here, I'm going to do this, but I'm not here, I'm going to do this, but I'm not going to show you because I got some uh going to show you because I got some uh going to show you because I got some uh passwords. And there we go. And it's passwords. And there we go. And it's passwords. And there we go. And it's really one thing that's really nice really one thing that's really nice really one thing that's really nice about these stacks is I've opened up about these stacks is I've opened up about these stacks is I've opened up automation here. I just kind of linked automation here. I just kind of linked automation here. I just kind of linked the source. And we could see all the the source. And we could see all the the source. And we could see all the individual containers. So, we got four individual containers. So, we got four individual containers. So, we got four of them in this stack. We could see the of them in this stack. We could see the of them in this stack. We could see the specific memory, the IP address or the specific memory, the IP address or the specific memory, the IP address or the Docker internal IP address for the Docker internal IP address for the Docker internal IP address for the specific stack to see where that is specific stack to see where that is specific stack to see where that is running. Just overall a lot of running. Just overall a lot of running. Just overall a lot of information and quick access to a whole information and quick access to a whole information and quick access to a whole bunch of the other things that we saw bunch of the other things that we saw bunch of the other things that we saw such as the logs, files, and so forth.
-
such as the logs, files, and so forth. such as the logs, files, and so forth. Now over here, we can see all of our Now over here, we can see all of our Now over here, we can see all of our images. This 8 gig image, not sure what images. This 8 gig image, not sure what images. This 8 gig image, not sure what it is. It says it's unused though, so it is. It says it's unused though, so it is. It says it's unused though, so let's go ahead and save some space by let's go ahead and save some space by let's go ahead and save some space by getting rid of that. Real easy there. If getting rid of that. Real easy there. If getting rid of that. Real easy there. If I drop down, we could see more I drop down, we could see more I drop down, we could see more information about the images. And then information about the images. And then information about the images. And then the same with volumes. We don't have any the same with volumes. We don't have any the same with volumes. We don't have any volumes cuz I opted not to use that. We volumes cuz I opted not to use that. We volumes cuz I opted not to use that. We could view all of our Docker networks. could view all of our Docker networks. could view all of our Docker networks. Here we have our registry. So you have Here we have our registry. So you have Here we have our registry. So you have Dockerhub by the default and then you Dockerhub by the default and then you Dockerhub by the default and then you could use this to search things such as could use this to search things such as could use this to search things such as Ubuntu. It' bring up the latest official Ubuntu. It' bring up the latest official Ubuntu. It' bring up the latest official Ubuntu image. You could see all the tags Ubuntu image. You could see all the tags Ubuntu image. You could see all the tags and easily just pull or run them and easily just pull or run them and easily just pull or run them directly from here. And then from there directly from here. And then from there directly from here. And then from there we have activity. So we can see things we have activity. So we can see things we have activity. So we can see things that I'm doing, see what's happening. that I'm doing, see what's happening. that I'm doing, see what's happening. Then we have schedules in which you can Then we have schedules in which you can Then we have schedules in which you can run various which these are all system run various which these are all system run various which these are all system schedules that are already here. And I'm schedules that are already here. And I'm schedules that are already here. And I'm pretty sure if I added the uh checking pretty sure if I added the uh checking pretty sure if I added the uh checking for updates and stuff through the for updates and stuff through the for updates and stuff through the settings, it would show up there as settings, it would show up there as settings, it would show up there as well. So, if I go into settings here, we well. So, if I go into settings here, we well. So, if I go into settings here, we have basic stuff, time format, date have basic stuff, time format, date have basic stuff, time format, date format, UI stuff. But one thing I want format, UI stuff. But one thing I want format, UI stuff. But one thing I want to change, let's go environments, and to change, let's go environments, and to change, let's go environments, and edit this environment. I I could have edit this environment. I I could have edit this environment. I I could have went to all this stuff when I first went to all this stuff when I first went to all this stuff when I first added it. But here we have updates. So, added it. But here we have updates. So, added it. But here we have updates. So, right now, enable schedule update check.
-
right now, enable schedule update check. right now, enable schedule update check. That's off. Let's go ahead and turn that That's off. Let's go ahead and turn that That's off. Let's go ahead and turn that on. And 4:00 a.m. daily. That sounds on. And 4:00 a.m. daily. That sounds on. And 4:00 a.m. daily. That sounds fine by me. Automatically update fine by me. Automatically update fine by me. Automatically update containers. Not going to do that at the containers. Not going to do that at the containers. Not going to do that at the moment. And then we have automatic image moment. And then we have automatic image moment. And then we have automatic image pruning. So, we go ahead and save some pruning. So, we go ahead and save some pruning. So, we go ahead and save some space and enable that. So, if an image space and enable that. So, if an image space and enable that. So, if an image isn't being used, it will automatically isn't being used, it will automatically isn't being used, it will automatically get rid of it. And let's go ahead and get rid of it. And let's go ahead and get rid of it. And let's go ahead and change my time zone. Mine as well. So, change my time zone. Mine as well. So, change my time zone. Mine as well. So, all that looks good. And I could save all that looks good. And I could save all that looks good. And I could save that. And actually, let's go back. Under that. And actually, let's go back. Under that. And actually, let's go back. Under activity, you can pick what you actually activity, you can pick what you actually activity, you can pick what you actually want it to monitor. Under security, you want it to monitor. Under security, you want it to monitor. Under security, you can enable scanning for vulnerabilities. can enable scanning for vulnerabilities. can enable scanning for vulnerabilities. And then for notifications, I don't have And then for notifications, I don't have And then for notifications, I don't have this set up right now, but for a wide this set up right now, but for a wide this set up right now, but for a wide variety of different things that happen variety of different things that happen variety of different things that happen within Docker, you can get notified of within Docker, you can get notified of within Docker, you can get notified of those things happening. Now, if I go those things happening. Now, if I go those things happening. Now, if I go back to schedules here, we can see we back to schedules here, we can see we back to schedules here, we can see we have the update environment Fedora local have the update environment Fedora local have the update environment Fedora local that is there ready to go. There's no that is there ready to go. There's no that is there ready to go. There's no runs and we also have the prune images runs and we also have the prune images runs and we also have the prune images right there. So, it will automatically right there. So, it will automatically right there. So, it will automatically kind of save me some space on those kind of save me some space on those kind of save me some space on those unused images. Now, if I jump back to unused images. Now, if I jump back to unused images. Now, if I jump back to settings here, we have our environments. settings here, we have our environments. settings here, we have our environments. We have our registries. We have git We have our registries. We have git We have our registries. We have git here. So, if you want to actually deploy here. So, if you want to actually deploy here. So, if you want to actually deploy your package or your stacks through git, your package or your stacks through git, your package or your stacks through git, you can set that up at a repository. I you can set that up at a repository. I you can set that up at a repository. I don't have a specific use case for that, don't have a specific use case for that, don't have a specific use case for that, so I'm going to just kind skim over so I'm going to just kind skim over so I'm going to just kind skim over that. If you do, you know what's going that. If you do, you know what's going that. If you do, you know what's going on. We have config sets, and this is on. We have config sets, and this is on. We have config sets, and this is basically just a template that you can basically just a template that you can basically just a template that you can reuse for multiple uh different reuse for multiple uh different reuse for multiple uh different containers or deployments. So, if I have containers or deployments. So, if I have containers or deployments. So, if I have a config set, you can see the name, the a config set, you can see the name, the a config set, you can see the name, the description, bridge network, you can set description, bridge network, you can set description, bridge network, you can set the environmental variables, port the environmental variables, port the environmental variables, port mapping, so on so forth. And then right mapping, so on so forth. And then right mapping, so on so forth. And then right here we have notifications. Now, if I here we have notifications. Now, if I here we have notifications. Now, if I added a channel, you could either use added a channel, you could either use added a channel, you could either use SMTP or apprise for web hooks. So then
-
SMTP or apprise for web hooks. So then SMTP or apprise for web hooks. So then you could use uh Telegram, Slack and so you could use uh Telegram, Slack and so you could use uh Telegram, Slack and so forth to get various notifications. And forth to get various notifications. And forth to get various notifications. And then here if I go to global system then here if I go to global system then here if I go to global system events. So this is where you would set events. So this is where you would set events. So this is where you would set that up, but I am going to skip that for that up, but I am going to skip that for that up, but I am going to skip that for now. And then last but not least, at now. And then last but not least, at now. And then last but not least, at least last but not least that we care least last but not least that we care least last but not least that we care about is authentication. If you didn't about is authentication. If you didn't about is authentication. If you didn't notice when I connected to this, it did notice when I connected to this, it did notice when I connected to this, it did not have me sign in at all. Probably not not have me sign in at all. Probably not not have me sign in at all. Probably not the best thing to have as a default, but the best thing to have as a default, but the best thing to have as a default, but we're going to easily fix that by first we're going to easily fix that by first we're going to easily fix that by first adding a user. So there we go. Filled it adding a user. So there we go. Filled it adding a user. So there we go. Filled it out. A fair password is better than no out. A fair password is better than no out. A fair password is better than no password, that's for sure. So there we password, that's for sure. So there we password, that's for sure. So there we go. The user has been created. So now I go. The user has been created. So now I go. The user has been created. So now I should be able to enable authentication. should be able to enable authentication. should be able to enable authentication. Going to test signing in real fast. And Going to test signing in real fast. And Going to test signing in real fast. And we're back in. So that worked. And then we're back in. So that worked. And then we're back in. So that worked. And then right here we have single sign on. So right here we have single sign on. So right here we have single sign on. So you can add single sign on providers you can add single sign on providers you can add single sign on providers just using client IDs and secrets. We just using client IDs and secrets. We just using client IDs and secrets. We have the callback URI. So if you're have the callback URI. So if you're have the callback URI. So if you're using something like authentic pocket using something like authentic pocket using something like authentic pocket ID, you can enable that here. And that ID, you can enable that here. And that ID, you can enable that here. And that is something I definitely will do once I is something I definitely will do once I is something I definitely will do once I get all that set up. Personally, I'm get all that set up. Personally, I'm get all that set up. Personally, I'm going to be leaning towards Pocket ID going to be leaning towards Pocket ID going to be leaning towards Pocket ID for all my uh single sign on local for all my uh single sign on local for all my uh single sign on local stuff. You can see there are some stuff. You can see there are some stuff. You can see there are some features hiding behind the u advanced features hiding behind the u advanced features hiding behind the u advanced enterprise feature, which I mean some of enterprise feature, which I mean some of enterprise feature, which I mean some of it makes sense. So, we have like user it makes sense. So, we have like user it makes sense. So, we have like user roles and things like that. For a home roles and things like that. For a home roles and things like that. For a home lab, those probably aren't going to be lab, those probably aren't going to be lab, those probably aren't going to be features that you're necessarily going features that you're necessarily going features that you're necessarily going to need or want to play around with.
-
to need or want to play around with. to need or want to play around with. Finally, under about we have the Finally, under about we have the Finally, under about we have the runtime, bunch of information. We're runtime, bunch of information. We're runtime, bunch of information. We're using MySQL light, the license version using MySQL light, the license version using MySQL light, the license version that we have, and of course the release that we have, and of course the release that we have, and of course the release notes all right within here. Now, what I notes all right within here. Now, what I notes all right within here. Now, what I actually want to do now and kind of the actually want to do now and kind of the actually want to do now and kind of the main point of setting this up is main point of setting this up is main point of setting this up is managing this one environment is really managing this one environment is really managing this one environment is really no trouble. But it does become a trouble no trouble. But it does become a trouble no trouble. But it does become a trouble when I have to manage multiple different when I have to manage multiple different when I have to manage multiple different environments and I have the Docker environments and I have the Docker environments and I have the Docker stacks or Docker Compose stacks and VMs. stacks or Docker Compose stacks and VMs. stacks or Docker Compose stacks and VMs. I have an Unrade machine all over the I have an Unrade machine all over the I have an Unrade machine all over the place. HSER agent. This is what we want place. HSER agent. This is what we want place. HSER agent. This is what we want right here. So, we have a quick install right here. So, we have a quick install right here. So, we have a quick install script which will install on any Linux script which will install on any Linux script which will install on any Linux system. So, I think I'm just going to go system. So, I think I'm just going to go system. So, I think I'm just going to go ahead and do that. We do have a uh ahead and do that. We do have a uh ahead and do that. We do have a uh Docker container that we could run which Docker container that we could run which Docker container that we could run which I mean probably would make sense to run I mean probably would make sense to run I mean probably would make sense to run it with a Docker container. All right, it with a Docker container. All right, it with a Docker container. All right, we're going to try that. Let's give that we're going to try that. Let's give that we're going to try that. Let's give that a copy. And I am going to sign into a copy. And I am going to sign into a copy. And I am going to sign into another server here. So, let's open up a another server here. So, let's open up a another server here. So, let's open up a new tab. And this is my NexCloud server. new tab. And this is my NexCloud server. new tab. And this is my NexCloud server. So, it's running NextCloud all in one.
-
So, it's running NextCloud all in one. So, it's running NextCloud all in one. If I run a docker ps, you could see that If I run a docker ps, you could see that If I run a docker ps, you could see that right here. Bunch of NextCloud stuff. right here. Bunch of NextCloud stuff. right here. Bunch of NextCloud stuff. That That's really it. Just nextcloud. That That's really it. Just nextcloud. That That's really it. Just nextcloud. So, I am just going to see if it's as So, I am just going to see if it's as So, I am just going to see if it's as easy as it seems. And paste this on in. easy as it seems. And paste this on in. easy as it seems. And paste this on in. We're going to change your secret token We're going to change your secret token We're going to change your secret token to something super secret such as um to something super secret such as um to something super secret such as um your secret token. I'll change this your secret token. I'll change this your secret token. I'll change this later. Let's just hit enter. Let's spin later. Let's just hit enter. Let's spin later. Let's just hit enter. Let's spin her up. So, now it's theoretically her up. So, now it's theoretically her up. So, now it's theoretically running. So if I go to doc hand once running. So if I go to doc hand once running. So if I go to doc hand once again, let's click this little plus again, let's click this little plus again, let's click this little plus button. Try to add a new environment. button. Try to add a new environment. button. Try to add a new environment. This is going to be next cloud. Next This is going to be next cloud. Next This is going to be next cloud. Next cloud VM is fine. We're going to do the cloud VM is fine. We're going to do the cloud VM is fine. We're going to do the hoser agent. And this is going to be the hoser agent. And this is going to be the hoser agent. And this is going to be the server that I just connected to. So 30. server that I just connected to. So 30. server that I just connected to. So 30. And our token And our token And our token is that. is that. is that. And let's test the connection. And it And let's test the connection. And it And let's test the connection. And it looks like it worked. 14 containers. looks like it worked. 14 containers. looks like it worked. 14 containers. My golly. Uh let's go over here to My golly. Uh let's go over here to My golly. Uh let's go over here to updates. We're going to want to enable updates. We're going to want to enable updates. We're going to want to enable the checking and everything else is the checking and everything else is the checking and everything else is pretty good. So, let's go ahead and just pretty good. So, let's go ahead and just pretty good. So, let's go ahead and just add that for now. And there he is. We add that for now. And there he is. We add that for now. And there he is. We have our next cloud VM. So, if I go back have our next cloud VM. So, if I go back have our next cloud VM. So, if I go back to our dashboard here, there it is.
-
to our dashboard here, there it is. to our dashboard here, there it is. Nice. Easy peasy. So, if I open up this Nice. Easy peasy. So, if I open up this Nice. Easy peasy. So, if I open up this environment, we can see we got some environment, we can see we got some environment, we can see we got some containers going. And it is true. I'm containers going. And it is true. I'm containers going. And it is true. I'm not running these containers anymore. not running these containers anymore. not running these containers anymore. So, all that is fine. Looks like this So, all that is fine. Looks like this So, all that is fine. Looks like this one says it's unhealthy, which is great. one says it's unhealthy, which is great. one says it's unhealthy, which is great. If I look at the logs, I mean, it looks If I look at the logs, I mean, it looks If I look at the logs, I mean, it looks fine. Nice. I I'll I'll just take that fine. Nice. I I'll I'll just take that fine. Nice. I I'll I'll just take that take that as a W for now. Yeah, I'll take that as a W for now. Yeah, I'll take that as a W for now. Yeah, I'll I'll go and investigate that a little I'll go and investigate that a little I'll go and investigate that a little bit later. And I tried to find they bit later. And I tried to find they bit later. And I tried to find they don't have the hoser client already in don't have the hoser client already in don't have the hoser client already in unrade. So, I'm going to have to figure unrade. So, I'm going to have to figure unrade. So, I'm going to have to figure out something else for that. But, if I out something else for that. But, if I out something else for that. But, if I do recall, I have another one that I'd do recall, I have another one that I'd do recall, I have another one that I'd like to manage. This one, I do believe, like to manage. This one, I do believe, like to manage. This one, I do believe, yep, this is my image my image server. yep, this is my image my image server. yep, this is my image my image server. It's just another VM that I have Docker It's just another VM that I have Docker It's just another VM that I have Docker on. A lot of people ask kind of why I do on. A lot of people ask kind of why I do on. A lot of people ask kind of why I do that. For things that are really that. For things that are really that. For things that are really important like image, I have that in its important like image, I have that in its important like image, I have that in its own separate virtual machine that I run own separate virtual machine that I run own separate virtual machine that I run backups on. So then that entire VM has backups on. So then that entire VM has backups on. So then that entire VM has the ability to be rolled back in the ability to be rolled back in the ability to be rolled back in addition to all the actual library files addition to all the actual library files addition to all the actual library files being backed up to various cloud being backed up to various cloud being backed up to various cloud services and other devices. So just like services and other devices. So just like services and other devices. So just like last time, I'm going to run this. I will last time, I'm going to run this. I will last time, I'm going to run this. I will change that sock a little bit later. Not change that sock a little bit later. Not change that sock a little bit later. Not the sock, the token. So there we go.
-
the sock, the token. So there we go. the sock, the token. So there we go. Let's grab my token. And it should be as Let's grab my token. And it should be as Let's grab my token. And it should be as simple as just clicking this plus button simple as just clicking this plus button simple as just clicking this plus button here. This is going to be my image VM. here. This is going to be my image VM. here. This is going to be my image VM. Probably going to do direct connection Probably going to do direct connection Probably going to do direct connection with Unrade, but we're going to go with with Unrade, but we're going to go with with Unrade, but we're going to go with this agent. There we go. Drop in our this agent. There we go. Drop in our this agent. There we go. Drop in our token. Go to updates. We're going to token. Go to updates. We're going to token. Go to updates. We're going to enable this. Need to change my time zone enable this. Need to change my time zone enable this. Need to change my time zone on the other one, too, but it's fine for on the other one, too, but it's fine for on the other one, too, but it's fine for now. Test that connection. Good to go. now. Test that connection. Good to go. now. Test that connection. Good to go. Add that environment. And now we have Add that environment. And now we have Add that environment. And now we have multiples. Sweet deal. So, I can make multiples. Sweet deal. So, I can make multiples. Sweet deal. So, I can make this a bit bigger. Here we go. That is this a bit bigger. Here we go. That is this a bit bigger. Here we go. That is image or image server. So now this is image or image server. So now this is image or image server. So now this is probably incredibly out of date. If I probably incredibly out of date. If I probably incredibly out of date. If I checked for updates, you can see we got checked for updates, you can see we got checked for updates, you can see we got image server and learning available. image server and learning available. image server and learning available. Nice. And I will note for these ones Nice. And I will note for these ones Nice. And I will note for these ones when I go back and change those uh the when I go back and change those uh the when I go back and change those uh the tokens. I will need to uh add this so I tokens. I will need to uh add this so I tokens. I will need to uh add this so I can actually add those compos files and can actually add those compos files and can actually add those compos files and be able to edit them through here. So do be able to edit them through here. So do be able to edit them through here. So do note that. So yeah, just some really note that. So yeah, just some really note that. So yeah, just some really cool stuff. Getting that agent on cool stuff. Getting that agent on cool stuff. Getting that agent on Unrade. I'm going to have to play around Unrade. I'm going to have to play around Unrade. I'm going to have to play around with that for a little bit to get that with that for a little bit to get that with that for a little bit to get that to work. But overall, I'm really excited to work. But overall, I'm really excited to work. But overall, I'm really excited about this. I'm really excited to use about this. I'm really excited to use about this. I'm really excited to use it. It's going to be really easy to it. It's going to be really easy to it. It's going to be really easy to manage all the various services that I manage all the various services that I manage all the various services that I have now. And of course, if you want to have now. And of course, if you want to have now. And of course, if you want to go and try it out for yourself, I will go and try it out for yourself, I will go and try it out for yourself, I will leave a link down below to their leave a link down below to their leave a link down below to their website, the documentation, and all of website, the documentation, and all of website, the documentation, and all of that fun stuff. Seems like a cool that fun stuff. Seems like a cool that fun stuff. Seems like a cool project. I like it. It's It's again a project. I like it. It's It's again a project. I like it. It's It's again a newer project compared to something like newer project compared to something like newer project compared to something like Portainer. If you're looking for Portainer. If you're looking for Portainer. If you're looking for something a lot more mature, that is something a lot more mature, that is something a lot more mature, that is always a great option to go with. But always a great option to go with. But always a great option to go with. But this seems cool. As you can tell, I'm this seems cool. As you can tell, I'm this seems cool. As you can tell, I'm going to try it out in my actual home
-
going to try it out in my actual home going to try it out in my actual home lab environment for at least a couple lab environment for at least a couple lab environment for at least a couple months and see if I stick with it. So, months and see if I stick with it. So, months and see if I stick with it. So, with all that, please subscribe, like with all that, please subscribe, like with all that, please subscribe, like this video, all that fun stuff. And this video, all that fun stuff. And this video, all that fun stuff. And goodbye.
Summary
The main theme is an introduction to Dockhand, a free Docker platform for home labs and an alternative to Portainer, aiming to help manage Docker Compose stacks and systems more effectively than terminal-based methods. The video will demonstrate setting up Dockhand on an LLM server and explores its features, with a brief mention of the AI presentation tool Gamma.app as a sponsor. The practical takeaway is that Dockhand offers a more robust and visual approach to Docker management, addressing shortcomings of existing tools and manual methods.