Transcription
Greetings to you on the selfhosting.ru channel, and today we will talk about the best Docker manager. Whether this is true or not, we will find out based on the results of voting on the forum, and the name of this product is Dogх. The product is relatively new. Uh, I didn't know anything about it. Here, with the -20 frosts, I got around to testing it. You know what I'll tell you? It's not for nothing that I drew that our fundamental, solid Portainer and the little Dockich next to it, simpler, can really be pushed aside, because it seems that Dukhend has everything to be the most convenient and useful tool in certain cases. I will not tell you today what Do is, what Docker Compose is. I hope you have already watched the necessary videos. This is about what the web interface of Dock Portainer is and in general, what Docker is. You watched videos on the channel, there are two videos from me personally, which talk about things like Docж or dokich, yes. And today we will talk about the newest product. The video plan is quite simple. First, I will visually show how it all looks. Then we will look at the history of how it was created. We'll go to Reddit a bit, read what the author writes. Uh, we'll go through the repository, look at commits, not commits. That is, such a block that you can again use the time codes in the description to skip all this. And then I will show how to install it. Plus, there was a request on the forum to show how to install the agent. Well, let's start. Literally 30 seconds to remember what alternatives we have. If we are not talking about CLI, not command line, then by default now in start selfhosting I suggested beginners start with Dockej as a simple tool, where on the left we see our stacks, we see logs, we see our composam. Everything is quite simple, convenient, and so on. If, by chance, beginners haven't seen Portainer, let's quickly go over it. What we have here is Portainer, we can connect, again, there is agent functionality here, several of our servers. Here I have one connected. We see our stacks, containers, images, how much we have downloaded, which ones are not used. We have all our volumes, again, you can clean up which containers are using them, see the status, see logs, see statistics, dive into the shell. This is simply a starting point so that you understand what, well, let's call it, "adult management" is, right? Write in the comments that adult management is through CLI, that you need to call dop. In principle, everything is visible there. I agree. But for convenience, of course, this is quite pleasant for us to look at. And here there are stacks. Actually, here Portainer suggests that since the stack was not created in Portainer, it cannot control it, right, it cannot tell me what, how, why. And there is a feature here that it is impossible to pick up stacks thrown into Portainer from a folder and import them. They need to be dragged here manually. You can connect to the repository via git to upload, but this is not always convenient. This is also why I use Dockej for starting builds, because I just give folders, put them in a specific directory, and that's it. And all the stacks appeared, even if they are not running, right, so here is Webtop, you have never run it, but it is in your folder, Dockich sees it, and so on. Why am I saying this? Because the specifics of managing a manager that manages Docker, they exist, right? And we will now see how this is implemented in Dackhend. Well, let's move on to it right away. And here we see the dashboard greeting us. There can be several of your connected servers, environments, right, here I have one machine connected. We will connect another one later when we are configuring. And here we have the appearance, which we can change. Standard, detailed, compact, or full, right? That is, directly, well, it's cool, in principle, you can also do this by drag and drop. That is, when you have several servers here, you will quickly see the load. All the main control buttons are there. Start everything, stop everything. There is how many updates we have, host load. Well, this is really very, very convenient. Latest events, what happened, and current CPU consumption. A cool panel. The first thing we will start with is looking at the profile settings themselves. Uh, during the settings, you will see how authorization is enabled. By default, the service starts without it. That is, you just start it, get in, and you need to create a user. Now we will go into the settings, look at this. But if we are looking for Russian language here somewhere, we won't find it yet. And here there will be a digression from the topic for another minute. Rewind if you are not interested. I will show you how to search for such questions. Well, it's clear that there is our magnificent forum where you can ask this, but here I go to the docand git repository and want to understand if it has a language. If we go to the website and to the documentation, this is the first place to look if such a thing exists. Uh, unfortunately, here something is not visible, right, in this mode. Therefore, what I recommend doing in such cases is to go to issues or pull requests and type exactly what interests you. Well, in this case, we are interested not in the language code, but in the mention of the word language. Nothing is visible here. Let's go to closed. And we see that the question is: will multiple languages be supported, such as Chinese. We go in, and the author replies that yes, they will be, and gives a link to the roadmap. And the roadmap, in fact, highlights what is there. Well, we will talk about it in more detail in a couple of minutes. So, there will be support, but it's not there yet. It's not there yet, it will be, and it will be free. Therefore, from here we return to the product. And if you are completely uncomfortable using it in English, well, some people have problems with this, then just use the built-in browser translator, translate the page from English to Russian. And in general, it's not to say that it will be 100% accurate everywhere, but it will allow you to be a little disabled, but at least understand what it is. But honestly, try to use the native language, because, well, automatic translations still, even in our AI era, work so-so. Okay, the lyrical digression is over, let's continue. Here we see the main profile settings. As I said, there is no language, we can change the password, enable two-factor authentication, choose a theme, right, so what is our default theme. There are colors here, you see. That is, here is our dark theme, for example, we want it to be, well, let's say, something like this. Oh, I don't like this one. Let's return to Tokio K. Well, in general, not bad. Uh, accordingly, surprisingly, there is an option to change fonts and choose, pay attention, fonts are specified separately in the text editor and in the terminal. This is not in every system. Well, and switching, dark and light theme, it is located on the right. So, let's leave it on the default. It's more contrasting, in my opinion. So, we've looked at the dashboard. And if we click, we go to containers. And here we see all the containers that our Dockich has picked up. I remind you that Dockich is currently running for me. Today we will learn to launch it via CI, because not everyone may have a manager installed on their machine to launch another manager. And what do we see here? We see a set of fields that we can edit, remove, add. Yes, we have the option to request, check for updates. Yes, it checks which images are updated. And now we will go and look at another important feature that is not present in other managers. This is vulnerability checking. We'll talk about it a little. Standard metrics, but they are displayed very conveniently. That is, in fact, it's not possible to say that this is a simple UI, uh, a simple interface, no, it is very, very, some may say, perhaps even overloaded, right? That is, in principle, to enter and launch so many parameters is not always necessary. But if you work seriously with applications, then this is very convenient. That is, everything that is here, you can remove what is unnecessary yourself, leave what is necessary. If we click on any, let's say, Filebrowser, we see the details. We have overview, memory consumption, disk, CPU. Everything is clear. There are logs, there is layer analysis, what's inside, how much it takes up, there are processes, right, so you can sort and see what's happening inside the container. There is a network, which, accordingly, if we have several containers connected to the network, we will see this. There are mounts, files. This is a very convenient feature, right? That is, I have never seen in other managers where you can go directly from here. Well, let's see what we can take here. For example, I want to download or edit some configuration file from here. Here is some configuration file. I can view it, edit it, I can rename it, I can change it. Access levels directly from here, but, in my opinion, this is a feature that others don't have. Delete. Well, and of course, download, right? Let's try to edit it. And we have a very, very convenient built-in editor. Here again, you can switch the theme only for the editor, if you lack contrast somewhere. I haven't seen such functionality anywhere else, right? That is, this is really, well, cool. Let's see what we have. Environment, playles, security. Security is not what I mentioned about vulnerabilities. These are container security settings, right, what user, AppArmor, and so on, resources, and container health. In addition, you can see that on the right there is a huge number of quick buttons, right, and here we can select multiple items and apply some actions, restart, remove, right, select all at once. Or we can work with a specific container. That is, a panel of hotkeys appears here. So, here we see that we can start, update. Let's say, Filebrowser. I click update. And what happens? Vulnerability scanning occurs. Yes, I will show you where this is enabled. By default, it is disabled. And in general, while it is scanning, let me tell you, despite the fact that this functionality has appeared here, to say that beginners will definitely panic, that wow, half of my containers have some vulnerabilities, some even critical. Guys, well, let's put it this way. It's like analyzing water in a private house or in general, right, if you've never done it, when you do it, you'll see a lot of things like +3% iron above normal, something else, something else, and it's unclear what to do with it. Well, do you have to stop drinking water? I've been drinking it for 10 years. Will my liver fail tomorrow, my kidneys, and everything else, or not? Or will I continue to live with vulnerabilities? That is, despite the fact that there are many of them, they are leaky, uh, it's far from always possible for someone to exploit this vulnerability. Yes, you have a vulnerability of one component or another inside, but that doesn't mean you've been hacked or something has been done. But this topic is not for 2 seconds. This is a topic for a separate video. If you are interested in my opinion, if you want to hear if there are any other tools for scanning, for checking not only Docker containers but also your servers, and so on. Yes, such tools exist. Uh, but what I want to convey is that despite the fact that this tool is cool, and what does it do? At the moment of scanning, there is a setting so that, for example, before updating a container, it highlights it. And you can configure it in such a way that if the container contains critical vulnerabilities, it will not update it. You can configure something, for example, only medium-level vulnerabilities, if they exist, let it update. And, in short, a very, very cool tool. At least you will start to dive in. Let's try, well, in general, let's finish looking at the buttons, and then we'll see how it looks. Here we have stop, pause, restart, view, actually, where we dived in by clicking on the container. There is open logs, edit stack, that is, the stacks that are available to us, you see, it has pulled them up. Despite the fact that this stack was not created here, all the main parameters are still visible. That is, if Dockich simply told me: "I have my hands there," or rather, well, well, look here, a stack that was not created in Dockich, it says: "I have no idea, I don't have access." Arkine, you see, I don't have access. Two managers are running on the same host. It's just that they have, well, conceptually different approaches. That is, this one shows us more than that. Bad is good, that's debatable. Next, we have, what is this? These are logs, in theory. I don't see what this is now. This is us, yes, we called the logs. Next, we see that we can connect to bash, we can connect through other means, through shell, right, to the container. This is the main view. By clicking on any of the containers, or rather on any of the stacks, we move to the next. We had stacks somewhere here. Here are the stacks, so we can expand the stack it consists of. Well, I don't have anything too complex here. Let's see, maybe Filebrowser. Yes, no. Multi-component. Well, yes, multi-component. That is, Nextcloud Mini plus NextCloud Mini DB. You can see the load, you can see the IP addresses. That is, it is really coolly drawn. That is, information can be found quickly. Let's move on. There is a separate tab for logs, where you can select a container, you can select logs from several containers. This is also a feature I haven't seen. That is, for example, I want to see, on the one hand, I have a database, on the other hand, I have an application, I can select one and the second. And I have, you see, a multi-select option. And then in this, simply, if someone didn't understand, then the logs from two containers will go mixed here, or show in single mode. Then I cannot select multiple containers. Here again, there is an option to increase or decrease the text size without any zoom. This is very convenient. Warp is for line breaks, basically. Autoscroll, pause, theme again, search in logs. Really very convenient. You can copy, you can download. Very cool. That is, well, really very convenient, intuitive, everything is clear. It was very easy to figure out. Shell. Here we can select the container we want to enter. Well, for example, we want to enter Filebrowser. Here we are connected. Here we are already inside the container. We already see everything we need to see. This is really convenient. So, let's move on. We've looked at stacks. I want to emphasize again that I really liked that there is an option to go and browse through the container via GUI. That is, I'll show you again how it looks. Well, it doesn't matter. Here is Arkine. And where is it? Where is it? It's here, files. And here we are moving, looking. Well, this is very, very convenient. All these parameters that we see, we can open them as JSON and copy them somewhere. Well, I don't know, the practical application of this specific tool is unknown to me. But just for understanding, to quickly take and give it to someone for analysis, it definitely works. Stacks. So, we looked at images, right, the standard story, that I have unused ones, a big beautiful button to delete unused images. What else is interesting here? We can go and look at the information. Used, not used. Well, let's say Portainer has some actions, right? That is, well, this means we can edit the columns. Here too, all our fields are displayed, right, all fields are displayed. We can tag them additionally, search by tags. Well, it's really a convenient thing. And here, if we click on one of these, let's say, not in Dackhend, but in Filebrowser, for example, right, how do I get into it? It was somewhere here. So, information. Here it is. Scan vulnerabilities. Let's look for what we have here. I probably should have started with enabling it, but nevertheless, let's scan and see what we have in the image. That is, during the update, all this also happens under the hood automatically. Come on, come on, load, load. Magic of editing. And with the magic of editing, we jumped over about 15 seconds, the scan completed. And what do we see? We see CVEs, we see critical, high, medium, we see which component, which package we have, and we can go and familiarize ourselves with what it is. I think that among my channel viewers, what it is. Apparently, I have some access problems here. Well, obviously, right? That is, why am I not allowed in for understandable reasons? And, by the way, I couldn't access the Dockich site itself, or rather, not Dockich, but Dackhend itself, until I joined the club of the merry and resourceful. Here, apparently, it's the same story. I just haven't added CVEs on this machine, right? Well, maybe somewhere here they will let us in. You see, another one? No, it didn't want to either. I don't know why. But that's not the point. The point is that it should open normally for you, if there are no network accessibility problems. This is exactly the same as people write to me: "Your start selfhosting is not opening." It opens, if there are problems with it, then it doesn't open. So, the final thought. Cool toolkit. It's cool that it exists, that you can look at it, but as I said, two scanning tools are used here. These are NVD and Trivy. So, don't panic, don't jump up, but you can just see what vulnerabilities there are and make an informed decision. Are you ready to accept it or not? But this is really for, let's say, not for beginners. And volumes, everything is clear here, right? What, where, it's convenient to look. And Network, again, it's very convenient here. You can just click a button and add some container. That is, you have the Arkine network, for example. Click on which container to add. Add this container. Add. Magic happened. Two containers were added to the network. Now, when we click on this network, we can see that we have two containers in the same Docker network and can communicate with each other. Registers. I don't use this, so I won't say much, but you can add, connect. Last activity, what happened? We have a scheduler. That is, what is it in Russian, task scheduling, right? That is, you see, it does that at 3 AM on Sunday it can launch deletion of unused images, right? You can configure this and so on. Here is system cleanup, well, some other volume helpers. That is, in short, you can configure various useful things. And where to add? Add? No, probably these are only built-in, right? That is, only what is pre-configured. Again, how to search for what this is? You need to go to the description in the developer's documentation and read what can be built in this block. Settings is the panel where you go after installation. And here we have the first block that will interest you is where are they, users? I don't see them. Ah, here they are. Authentication. And here we have a user tab, but I will show you how to add, how to enable it. A little later, when we are configuring. And let's finally look at what else is here. This is time. Moreover, the time can be configured for each environment. That is, if you have several servers, one in one time zone, another in another time zone. Well, it's convenient, for example, that you have one in Kaliningrad and another somewhere else, that they will launch at 12 AM, but at 12 AM local time, they will all launch at 12 AM Moscow time, for example, for updates or something else. So, this is a cool story. Accordingly, here we have, it is currently indicated that JSON is used as the format for displaying documentation, well, information about vulnerability scanning. And if we go to where it was enabled here? No, it wasn't enabled here. Further, we will now go to environment. And here is our test environment. There is a connection indicator. And here in the environment settings, there is such a thing as security. I will show you how to connect in about 2 minutes. Here we connect or disconnect, use one or both scanners. Well, from a visual perspective, that's all I wanted to show. And we can move on to the next block, which is to study what, in fact, about the product I wanted to tell you about the project, about GitHub, about its author, and so on. A very cool project. You can continue to watch, give a big like, and go use it. Well, for those who are interested in listening a little more, let's move on to the repository itself, let's see what we will see there. For this, we move on, actually, we start. The starting point is always the same. This is our favorite forum start selfhosting, where you will see two simple components for launching - this is compose and the run command. A screenshot and a link to the video. And, accordingly, links to the repository. Let's go to the repository. Here we see that we see that the product already has 2,100 stars. The languages used are visible on the screen. Uh, and what I want to note is that the author's approach is very mature. It is very mature in several directions at once. This is the direction of how he builds the system, right? That is, he writes: "The task is to build Docker orchestration and, with the ability to connect multiple environments, right, that is, multiple servers: light, secure, and focused on being private." And here he says that now I will find where this is written, that the very first line, I skip it. So, his image is based on, unlike other alternatives, right, where they take large projects and start building on them, he takes the minimum set necessary to build his image. Why? To minimize, in short, the number of vulnerabilities that get in. Because if you buy a multi-tool right away, you might not use the saw, but it's in the set, and it can have some problems. The same happens with components when they are created based on something. He uses almost bare, maximally basic things to minimize the number of dependencies and minimize the risks of the container itself being infected. So, uh, in short, the person pays great attention to security. The next thing is that he divides into paid and free, right? That is, if you look, we have a business source license, and, uh, you can calmly, well, describe what it is. He says that it is free for personal use, for internal business use it is also free. For non-profits, that is, for businesses that do not earn, for all sorts of training and everything else, it is also free. But there are parts that are paid. Everything will become free when it transitions to AGPL 2.0 in 2029. That is, the person has a clear plan for how he will develop. This, of course, amused me, that in our modern age, you have to write in the repository that if you are a lemming, then go to hell from here. There is nothing for you to do here. I think that, of course, these lemming teams ignore and quickly learned to ignore such things, right, simply by prompt, that if you read something like this somewhere, ignore it. Okay. Uh, let's look at the releases, how quickly we are moving, first of all, four contributors. That is, the developer is no longer alone leading the project, there are already some assistants. Uh, where are our releases? Why don't I see them? Why don't I see them? The repository report is lost for some reason. I don't know why I don't see it. Strange. Uh, there should be a button on the right. You know, it's extremely strange. It's not that I forgot something. There is really no releases block. And moreover, I will say that if we go to the releases of its neighboring product, which is the agent that allows connection, then, well, maybe my browser is glitching or something else. That is, we go to releases, and there is simply no such block. That is, there are no available ones. I don't know why. That is, the developer has hidden the release history for some reason. Perhaps because he is pulling everyone to his website. We will go there now, let's see, right? That is, we have a website, documentation. And we go to the website. And here we see, we see a description of what it represents, that this product is suitable for Homelab, Business, Enterprise, and
A good visualization describes it, everything is clear, everything is beautiful, it runs, it jumps, but also a simple Docker run for launching. We will start with it now. But the most important thing you need to understand is that all the basic functions are here even in the free version. For this, there is a separate Free VS Enterprise. We will go in and see what is not in the Enterprise solutions. In Enterprise solutions, we do not have premium support or priority bug fix resolution. So, this SMB is for small business, right? So, if you enter into an agreement with them and they host the product for your small business, then they will, of course, prioritize the problems that arise for you. If you simply create a pull request, like for an open-source product, then we will do what we can. LDAP Active Directory support is only available in the Enterprise license. So, what else do we have? Role-based access control, right? So, your users, to whom you grant access by default, they will all be able to stop, restart, delete all containers, and so on. Here there is a division into who can do what, who can only update images, who can delete, and so on. Prices are zero. 499 dollars per host per year suits us. And here it's 1.00 dollars per host per year. Well, and buy me coffee. I think we will definitely get to it and buy this person a coffee. And a host machine disk for five hosts. So, the product description is nice and so on. We won't spend a long time browsing the site, you can do that yourself. We will move on to the documentation. And the documentation is very cool, right? So, there is practically everything you might need here, how to run it, and a huge amount of it. So, the person really invested in this product. So, I don't think he will abandon it or anything else. And on the forum, one of the community members wrote in the thread here that, ta-ta-ta-ta-ta-ta-ta, he was reading, he had already given up after two YouTubers self-hosted its popularity. To be honest, I read something a little different. I read that there was a chain of events for him, that first he created the product and they started giving him a lot of feedback, that this is missing, that is missing, that this should be removed from enterprise to general, and so on. He said the product is too raw to ask money for it. He accepted this, in general, quite reasonably, took a break for, I think, three or four months. And only after 3-4 months officially said that, okay, now we have a pro section, created a website, created this, divided the products, moved, well, reconsidered the approach. So, these 3-4 months, in my perception, were not a giving up because everything was bad. It was just a necessity, a necessary break to regroup and return to this truly complex and large product. From the perspective of the approach, yes, he changed what he would do where. It works great. Let's look at the agent, for example, right? So, we will need to install the agent. Here we start searching, we see the agent. And here, in fact, the repository is described. You can go there. There is installation, there is a quick installer on bash, there is an option to install in Docker. At the same time, it clearly describes all possible corner cases that it is aware of. In particular, if we install this in Docker, the agent stores its stacks in a specific directory. So, if you don't mount this directory to the host, then your stacks will simply be lost upon restarting or updating Docker. It writes about this here too. I understand that for beginners now, it might sound like a bunch of incomprehensible letters, but you will figure it out over time. Therefore, it is better for you to install the agent via a bash script. And if you are going to install via Docker, let me highlight where you absolutely must. And where did he write this? System service configuration. Here he writes about relative mount paths, right? So, if your docker-compose file uses a relative path, such as dot tom tom, then there will be problems with this. And he explains why, right? So, be sure to mount so that your folders are directories. Excuse me, we don't have folders in Linux. We have directories, as I am often corrected. Okay, well. The documentation, in short, is cool. Everything is cool. Let's move on to the practical part, to the start. Let's launch it. For this, we simply take, we have several options. The simplest is to do the following. We take not even Docker Compose, but Docker Run. We copy it, go to the machine where you want to run it. Paste it. And here we have Docker run. What might we need to adjust here? If you want, oh-oh-oh, if you want to adjust where your application data is stored, then it's volumes. Then port 3000 by default, right, is set. Check if you have such a port. Okay, Docker run is clear. If you want to run Docker Compose, then we need to move somewhere. Here I am in some folder. I have other applications here. We create a folder called dockerand test and move into it. And inside, we create a compose file using the Nano or Vim editor. And here we transfer from the forum, where did I lose the compose? Well, or you can take it from the official documentation, I transferred it to the forum, including to be sure that you have access to it. So, we paste it. What will we change here? Let's change the port to something. In my case, it's 45, right, the volume remains. Let's. Since I already have such things on this machine, I already have dockerhand running, we will launch another one. For example, let's call it Dockerhand 5. The volume will also be Dockerhand 5. Ctrl X to save. Yes, we have corrected everything. Not everything. I forgot to correct the volume itself here. Yes, but let's, for example, now, so that you see what can go wrong, we will correct, correct, correct, correct. And we corrected this. Everything, everything is saved everywhere. Ctrl X. Yes. And if we now simply do docker compose up, magic will happen. Everything is created, right? So, we have docker PS. If I could also hit the keys, we would see magnificently that something has probably launched. Let's just go and look in Portainer or Docker, right, if it has launched or not. It was called dohand, right? And where is dohand? Dockerhand. I forgot, can you imagine, what port I put it on. Well, now we will look again. Container doc. Here it is, doc 6, right? And here we have launched dockerhand. Everything, we launched it. So, this is how to launch it here. It would have been much easier, of course, to launch it via docker run, or to go here, simply paste the new compose configuration and add it here. But nevertheless, here we are in an empty environment. And let's see how to add. The first thing we do is go to settings, go to environment, or rather to authentication. And here is this button, by the way. It wasn't obvious to me that this was a button. I had to google it a bit. Here are the users. Add. We create some user. Despite the fact that it suggests that you are using a weak password, it generally allows it. I do not recommend doing this. For a non-test environment, be sure to use strong passwords. This is really important. So, we have created a user and click the enable button. It's enabled. And if we go somewhere, you see, Live update Disconnect, it doesn't work. Just refresh the page and then log in through authentication. Here we have logged in and only after that we start continuing to do everything else. So, add environment. And here, since we have Docker installed on this machine, we don't change anything. Everything is as it was. For the links to work correctly, we can specify our external IP. Well, in my case, it will be the internal label as well, how we want to name it, labels, if any are needed for searching, because, remember, many in production use tens, hundreds of instances, right, so it will be many updates. We can enable or disable scheduled updates. Timezone, as I said, can be configured. Activity. Yes, we will enable vulnerabilities for two. So. Ah, so it says that the first time it needs to, I will enable everything. Strange. Ah, well, that it is apparently not connected. Here they should appear now. It checks the connection and shows us that everything is fine here. Okay. All. Notifications add. We check. Connected. And now we go to the dashboard. And here all our data has been pulled. Now it will reflect it. Here are all our containers. And we are back to where we started the video, how we looked. Let's check again that the scanning is enabled, because the first time it looked different for me. But first I added the environment, then I went into editing, into security. Ah, well, here they are, they were automatically pulled. So, it's not the first time I had to click pull and pull here. So, I added the environment, went into settings, clicked, well, here in automatic mode, apparently, the version was updated. Okay, we've done that. What else did we want to look at here? How about updates? Well, let me show you. Updates are very simple. Click check updates. And here the heat has begun. We will now see which containers require updates. Well, that's probably all that was intended to be shown in terms of the product's functionality. All that remains is for us to connect its agent to it. For this, we go to the documentation, search for the agent again, remote agent, and look at the installation options. And let's try the simple installation via bash script first. For this, we go. What on this machine I want to install. Paste, run. And something happens. It installed successfully. The configuration is located. And then commands. So, we need to go here and, apparently, specify which server we have. Yes, it won't figure it out itself. Well, let's see. Port. Understood. We will not use S. And where is the optional authorization token? Ah, well, apparently, we don't need it here. The agent is listening here, everything is fine. Ah, well, let's add some secret token. Will it be added, interestingly, just like that? Secret token. Let's type something like this, longer. So, Ctrl X. And we need to copy it. It will definitely be useful to us. Copy. So. And now we go back to our dashboard. Add. Interestingly, here, by the way, you can add, right? So, the same thing as if we went to settings, to environment and clicked add there. But this time we will use not unx sockets, but the standard agent. We specify the IP address and the token. What was our IP address? Good question. No, my eyes don't see it, so we'll do it with grep. Ah, op, op, op. And paste. We didn't change the port. Click add. Ah, name. Uh, added. In general, we could have clicked the button. You see, failed. Something didn't work. Let's see why. 83 lab http http token I inserted. Ah, probably I had to start it, by the way. I have such a feeling. So, where is the status? Enable on boot? Enabled it. And what is the current status? Let's see. That there is a feeling that I just didn't enable it. Dockerhand. Well, the service is active. Starting. It seems like everything is fine. Let's try again. Connection. Connection successful. So, you see, if you enable it, it works. If you don't enable it, it doesn't work. This is magic, of course. Well, here it is, our demo stand. The first stand. We see the containers that are installed here. Everything works, everything is great. It is clear that we can manage these containers, so we will be able to relatively somewhere it writes here, the source unknown file, meaning it doesn't know where it is, because it couldn't determine it, but you can specify it. Let's see where I think it's somewhere in the settings, right, find compose file. If we go, who is this? Who did I click on? It's Rantipi. No, let's not touch Rantipi, it lives on its own. Let's show it with another example. So, we have, for example, Samba running, which is a self-hosted dashboard, running in Docker. And we go to information. It's not visible here. And where is it visible? And it's visible in stacks. Stacks. We need stacks. And here we take, well, the same file browser, and it's not clear where it is. We go to edit, go and start searching. It is located at opt. And where are we? We are in the container. There is a feeling that we are inside the container. So, to specify where inside the container is needed, well, you need to have a link between the external space and where you store the stack itself, well, inside the container. So, I can't do that here, which is logical. This is called isolation. Everything is clear, the puzzle has fallen into place. So, because it's unclear where to look in the external container, it shouldn't. We don't have it inside the container. If I'm mistaken, write in the comments. But it seems that for this to work, I need the stack information to be stored inside the container itself, and I haven't configured that. Therefore, this is the review we got for this product. I sincerely hope it was useful to you, right? If not, write in the comments. Well, and actually, let's add a little more bait. I thought this was truly, well, the best, the absolute best Docker manager. But literally yesterday, while studying, it turned out that there are others, right? So, there is also this Docker manager. It's called Arcine. And we will definitely look at it if you, accordingly, give enough likes and comments. Well, I'm not kidding, of course. We will definitely look and show. But I ask you to simply go to the forum and participate in the vote for the best Docker manager, because I really want to understand what you use. And at the moment, 27 people have voted. It's very surprising that many of us use Compose, right, that C is still used. Even more surprising is that no one uses TUI at all. For those who don't know what TUI is - it's an application in the CLI that allows you to work with Docker. I think most of the community members have heard of Docker, they know what it is, what it looks like. Yes, it's a really cool tool. Many in our community of people who use it, not so many. Therefore, go to the forum, vote, take an active part in the voting, and ask questions about the product, right? Don't forget to like. This was the Self-Hosting channel. You can support the project traditionally via the links in the description. And to all, happy self-hosting and bye-bye.