Published Nov 3, 2026, 10:30 AM EST Dibakar Ghosh is a tech journalist at How-To Geek with over a decade of experience using and writing about open-source software, Linux, Android, AI, and personal productivity. He writes about software, operating systems, and tools that help people get more from the technology they already use. Docker has empowered millions of users to build their own homelabs and ditch many of their pricey subscription services. But just because it's one of the easiest ways to deploy self-hosted apps doesn't mean it's equally efficient at managing them. By default, Docker won't automatically back up your app data, keep your containers updated, or alert you when a service goes down. That's why I make it a point to install these five apps alongside Docker to address these glaring shortcomings and get the most out of my self-hosting setup. Backrest Docker won’t save your data, but something has to By default, Docker doesn't provide a convenient way to automatically back up your data. This means all your app settings, databases, and files sitting on your server can be wiped out by a failing drive or a single wrong command. Granted, you can create manual backups, but the process is unnecessarily complicated. This is why I use Backrest. It’s available as a Docker container that lets you manage and schedule backups for all your other containers through a clean, intuitive web interface. You can specify what you want to back up, how often to do it, how many copies to keep, and where everything should be saved. This includes backing up to a different drive, another computer, or even a cloud storage provider. Backrest can also pause an app during the backup process to ensure its databases are backed up cleanly. Restoring data is just as easy. You can access all your backups from the Backrest web app, browse through them as if they were regular folders, select the file or files you want to restore, and you're done. What’s Up Docker (WUD) Because Docker will happily run outdated apps without saying a word By default, all the apps you have running inside Docker stay on their current versions until you manually update them. And it's not just that Docker doesn't support automatic updates — it won't even tell you when a new version is available. If you're not vigilant about updates, you could go months without realizing you're running outdated software. The popular solution to this problem www.howtogeek.com/optimize-your-docker-updates-with-this-trick/, but the original project was archived in December 2025 and no longer receives updates. A community fork, nicholas-fedor/watchtower, is actively maintained. As such, right now, I use WUD, or What's Up Docker to keep everything up to date. It gives you a web interface where you can see all your currently installed Docker apps, their respective version numbers, whether a new version is available, and even whether it's a minor or major update. By default, WUD only shows you available updates — unlike Watchtower, it doesn't automatically install them. I prefer to keep it that way because I like to check the update logs and see what other users are experiencing before installing anything. That said, if you want to configure WUD to automatically update your containers, you can do that, too. Tailscale Turn your home server into a personal server By default, all your Docker apps are designed to work inside your home, on your local network. If you want to access these apps from outside your home, you'd typically need to open the associated ports on your router. However, this would make the apps accessible not just to you, but potentially to anyone on the internet, which creates a serious security risk. This is where Tailscale comes in. It's a VPN (virtual private network) that helps you build a private, peer-to-peer mesh network connecting all your devices. You install it on your server (the system where you've got Docker installed) and on your phone, then sign in to both using the same account. Once done, you can access all your Docker apps from your phone using mobile data, regardless of where you are — all the while keeping your home server off the public internet. It’s that simple and barely takes a few minutes to set up. When using Tailscale, your devices rely on Tailscale's coordination servers, which are closed-source. If you'd rather use an open-source alternative, you can use Headscale instead. However, this means hosting and managing the Headscale server yourself, which introduces a fair bit of technical overhead. For reference, I personally stick with Tailscale because it offers end-to-end encrypted connections powered by WireGuard. Nginx Proxy Manager Your Docker apps deserve a name, not just a number Each Docker app typically runs on its own port. For example, Pi-hole might be assigned port 8081 and Jellyfin port 8096. To access each app, you open your browser and type localhost:8081 or localhost:8096. This system works if you're only running a couple of Docker apps, but if you're like me and have a dozen containers running, remembering all those port numbers quickly becomes impractical. Fortunately, Nginx Proxy Manager (NPM) solves this problem. It lets you map each port to a proper domain name. So instead of remembering localhost:8096, you can access Jellyfin by simply typing jellyfin.your_name.com into your browser. Setting up a new proxy host takes barely a couple of minutes, and you can also use NPM to configure free HTTPS certificates through Let's Encrypt. This is particularly important if you're running Docker apps like Vaultwarden, which require a secure HTTPS connection to work properly. Uptime Kuma A 24/7 monitor for your 24/7 apps Docker can only checks whether the container's main process is running. If it is, the container shows up as "up." However, an app can still be running without actually working. For example, let's say Nextcloud is experiencing a database issue. In that case, the app might remain running while throwing error messages. As long as its main process is still running, Docker will consider the container operational, even though the app is effectively broken. This is where Uptime Kuma comes in. Every couple of minutes, it sends a request to each app and waits for the server to respond with a status code. An HTTP 200 status code generally means the request was successful, while codes like HTTP 500 or 502 indicate a server-side error or a problem with the upstream service. And it's not just limited to web pages. You can use Uptime Kuma to check whether a port is open, DNS is working, or a server is responding to pings. If Uptime Kuma receives an error response or gets no response within the configured time limit, it marks the service as down. What's more, you can configure it to send you notifications through Discord, Telegram, email, or other supported notification services. This way, you'll know as soon as something goes wrong with your homelab. There’s more where that came from This wasn't an exhaustive list of the best Docker companion tools. There are plenty of other apps out there that can improve your homelabbing experience. These five are just the ones I consider absolute must-haves. That said, if you think I overlooked some great companion apps for Docker that deserve a spot on this list more than the ones I've mentioned, let me know in the comments below. Your suggestions will also give fellow readers a few more options to explore.
I never use Docker without these 5 companion tools, and you shouldn’t either
Full Article
Original Source
Read the full article at Howtogeek →KhanList aggregates and links to publicly available news content. We do not host full articles from third-party sources. Always verify important information with original sources.