Yacht - a WebUI for Docker Management
If you're already into self-hosting, and home-labbing (yes, I just made that word up I think), then you have probably used docker at some point. If you have, and you haven't heard of the great tools out there for Graphical User interface based management of your docker applications, then you are in luck. This article and video show you a really amazing, open source, self hosted tool called Yacht. It's whole purpose is to help you install and manage docker applications through a clean, beautiful, intuitive graphical user interface.
If you've ever heard of or used Portainer, then you'll have some idea about what Yacht does. Yacht is similar to portainer in many ways, but it differs in that it really wants to put a focus on being a GUI tool that works on top of the amazingly good CLI (command line interface) tools that are already out there for docker (e.g. docker-compose).
What You'll Need
- Docker installed on the machine or server you want to use.
- Docker-compose installed on the machine or server you want to use.
- About 10 minutes of your time
Install Docker, Docker-CE the easy way
You can easily install Docker-CE, Docker-Compose, Portainer-CE, and NGinX Proxy manager by using this quick install script I created and maintain on Gitlab. Just use the command:
To download the script to your desired host machine.
Change the permissions to make the script executable:
chmod +x ./install_docker_nproxyman.sh
and then run the script with the command:
When run, the script will prompt you to select your host operating system, then will ask you which bits of software you want to install.
Simply enter 'y' for each thing you want to install.
At some point, you'll be asked for your super user (sudo) password as well.
Allow the script to complete installation.
At this point, you might want to log out and back in, as this will allow you to use the
docker-compose commands without the need of
sudo in front of them.
Docker Compose for Yacht
SSH or open a terminal (CLI) window on yoru host machine. If you don't already have one, create a new "docker" folder. I put mine right in my home directory on my server.
Now, cd into that folder, and create a folder for our Yacht install.
Now cd into the Yacht folder we just created, and create a new file with the nano text editor (or any text editor you like) called "docker-compose.yml".
Next, copy the docker-compose code below, and paste it into the text editor. You can copy and paste in the Linux CLI with CTRL+Shift +C, and CTRL + Shift + V respectively.
version: "3" services: yacht: container_name: yacht restart: unless-stopped ports: - 8000:8000 volumes: - ./yacht:/config - /var/run/docker.sock:/var/run/docker.sock image: selfhostedpro/yacht
The only change you might wnat to make in the file above, is the port mapping. You can change the port number on the left side of the colon ":" to another number if your system is already using port 8000 for a different application. Just remember what port number you choose. I set mine to 8016 in the video.
Now, save the file with CTRL + O, then press Enter to confirm, and use CTRL + X to exit the nano editor.
FInally, we can run our Yacht install with the command:
docker-compose up -d
You can see if the download and install went well, after you get the "done" message in the terminal window. Use the command
docker-compose logs -f
to view the logs for the yacht container.
If you don't see any errors, then you should be able to open a browser window and start going to the address of you host machine, and the port you set in the docker-compose file.
In my case my host ip is 192.168.10.141 and I changed the port from 8000 to 8016. So, I went to
You, should of course visit your own host IP and port.
You should see the Yacht login screen. The default login credentials are:
You should login, then change these by clicking the little down arrow to the right of the user in the upper right of the window, and select user profile, then Change Password.
Once you've changed the user email and password, you should logout, and log back in to make sure your new credentials are working.
Now, you can begin to explore all of the features of Yacht. Check out my video to see all of the great things you can do with Yacht.
Support My Channel
Support my Channel and ongoing efforts through Patreon: https://www.patreon.com/bePatron?u=234177
Docker management Web User Interface
Installing Portainer-CE and / or Portainer Agent
I'm making this as an update to my Portainer video that is now easily more than a year and a half old. The good news is that the old video for Portainer install is really the same as this one will be, except that since the original video the Portainer team split the project into Portainer (a more advanced version of the software available to those who license it), and Portainer-CE (Community Edition) the fully open source version that eventually gets some of those more advanced features.
For my uses and needs as a homelab user, Portainer-CE works just fine, and is a tremendous tool for managing my docker containers.
The second part of this tutorial is about installing Portainer Agent. An agent software that allows the fully installed Portainer-CE to act as a frontend for your Docker containers on other host machines. I also did an older video on how to use Portainer in this way, in particular with a Raspberry Pi as the secondary host, but it was, at best, clunky to get setup and working. Portainer Agent, however, is a much simpler, and more straight-forward install.
Additionally, I took the time to provide a good overview of the features in Portainer-CE / Portainer Agent, and it has gotten so much better since my original video. I hope you'll enjoy this, and follow along in the video to get everything running.
For those who prefer text instructions, keep reading.
Installing Portainer CE on your Host Machine
The commands I'm about to provide, are available on the Portainer Documentation site as well.
NOTE: You must have Docker installed already. Docker does not get installed with Portainer, but instead Portainer-CE runs in Docker.
Now that you're ready, you'll want to run the following commands in the terminal of your selected Linux distro that's already got Docker (I prefer Docker-CE) installed.
- Setup a Portainer data volume.
docker volume create portainer_data
2. Install Portainer CE
docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
Note - You can change the ports for both 8000, and 9000 on your host, by changing the port number on the left side of the colon in the command above. If you already have something using either port 8000 and / or port 9000 on your host, then you should change these port numbers. I only recommend that you do not use port 9001, as this is the port used for Portainer Agent.
Once you run the command above, you can now navigate to your host machine's IP address and port 9000 to go through the admin first-time login process.
for me it was
You should use the IP of your host machine, of course.
Install Portainer Agent on a Secondary Host
If you'd like to control more than one host running Docker containers, then Portainer Agent to the rescure. You install Portainer Agent on any secondary host machines, then add them to your main Portainer machine via the Portainer-CE UI. Nice, right?
NOTE: Again, you should have Docker already installed and running on these hosts, as Portainer, Portainer-CE, and Portainer Agent do not install docker, but instead run inside docker as their own containers.
To install Portainer Agent, run the following command on the terminal of your secondary host machine's.
docker run -d -p 9001:9001 --name portainer_agent --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker/volumes:/var/lib/docker/volumes portainer/agent
Again, you can change the port if need be, by changing the port number on the left side of the colon in the command above.
Allow the container to install and start running, then from your main Portainer-CE install, navigate in the left pane to "Endpoints".
Click the "+ Add New Endpoint" button at the top of the screen, then enter the Name for the endpoint that makes the machine easy to identify, the local IP address and port 9001 (like
192.168.7.51:9001 ) in the Endpoint URL and Public IP address fields, add the host to any groups you have setup, and add any tags to the host you desire, then click the "+ Add Endpoint" button at the bottom of the form.
If you entered everything correctly, you'll see a list of hosts show up on the Endpoints screen.
You can now access your local Portainer-CE install, as well as any Portainer Ageny machines you've added right from the UI on the Portainer-CE host.
Just click the 'Home' option in the left pane to switch between hosts, as well as see an overview of their statuses (up / down).
Support my Channel and Content
Support my Channel and ongoing efforts through Patreon: