Docker Gems: Tools That Actually Earn Their Keep

In this post, you find a list of Docker containers that I personally find to be very useful to always have running. In case you never heard of Docker, this content is probably not for you. I’m going to assume that you’re already somewhat familiar with Docker, and have it running on whatever OS you’re using. I also assume that you’re not afraid to use the command line or console to enter some commands, and that you know how to work with a Docker compose file to start an instance.

For most of the items on the list below, I included a basic method, that I copied from the official documentation, to run the particular instance. This can be a one-liner command that you only need to copy & paste, and in some cases I simply show a link to a docker-compose file example in the official documentation. Please keep in mind that these “getting started” methods are often the most basic, and perhaps limited way to run them, while many options that you can customize are there for you to change. I strongly advise you to check out the link that I included to the official pages so you can find out what options you can edit, and how to do so. Here’s a jump list to all the items in this post:

Uptime-Kuma

Think of this as your own personal IT watchdog. It sits quietly in the background, barking only when something goes wrong. Whether it’s your website, a home server, or even your smart coffee machine, Uptime-Kuma gives you peace of mind without all the noise. Check out a live demo over here.

docker run -d --restart=unless-stopped -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1

ConvertX

Ever had a file that just won’t cooperate? ConvertX is that friend who speaks every format’s language. It’s fast, reliable, and saves you from hours of β€œwhy won’t this open?” frustration. Supports 1000+ formats.

docker run -p 3000:3000 -v ./data:/app/data ghcr.io/c4illin/convertx

UpSnap

Self-hosted Wake-on-LAN has never looked so clean. UpSnap lets you power up your machines from anywhere, whether you’re on the couch or halfway across the world. It’s like having a remote control for your entire network.

https://github.com/seriousm4x/UpSnap/blob/master/docker-compose.yml

Gotify

Push notifications without the big tech middleman. Gotify keeps you instantly updated, whether it’s your server screaming for attention or your scripts giving a thumbs up. Minimal fuss, maximum awareness.

docker run -p 80:80 -v /var/gotify/data:/app/data gotify/server

Web-Shot

Need a quick snapshot of a webpage? Web-Shot makes it effortless. Perfect for archiving, sharing, or just proving that something really did look that ugly before the redesign.

docker run -it -d -p 3000:3000 -e PASSWORD_PROTECT=1 -e PASSWORD=YOURPASSWORD flowko1/website-shot

ArchiveBox

The internet forgets, but you don’t have to. ArchiveBox is your digital time capsule, letting you save entire pages, videos, and content for when they inevitably disappear. Basically, you can run your own internet archive with this tool. It’s the librarian of your self-hosted world. Take a look at a live demo here.

To run it, the best way would be to use docker compose. Here’s a link to the official example docker-compose.yml file, that includes many extras: https://github.com/ArchiveBox/ArchiveBox/blob/dev/docker-compose.yml

https://github.com/ArchiveBox/ArchiveBox/blob/dev/docker-compose.yml

YoutubeDL-Material

Sometimes you just need that video from YouTube offline. Or maybe you just want to extract the audio from a YouTube video? YoutubeDL-Material wraps the powerful youtube-dl tool in a slick, easy interface, turning β€œI wish I saved that” into β€œI already did.” This is probably the easiest tool to download content from YouTube.

Below is what I used for my docker-compose.yml file. And here is a link to the official template for a docker-compose.yml file.

services:
    ytdl_material:
        environment: 
            ytdl_use_local_db: 'true'
            write_ytdl_config: 'true'
        restart: unless-stopped
        volumes:
            - youtubedl-material/appdata:/app/appdata
            - youtubedl-material/audio:/app/audio
            - youtubedl-material/video:/app/video
            - youtubedl-material/subscriptions:/app/subscriptions
            - youtubedl-material/users:/app/users
        ports:
            - "17442:17442"
        image: tzahi12345/youtubedl-material:latest

n8n

Automation without the cloud tax. n8n is like having a personal assistant that connects all your apps and services, building clever workflows without handing your data to someone else. This tool is very powerful, if you know how to use it. It’s easy to learn, and many things are very intuitive. When combined with a local running AI, like Ollama, it can be greatly enhanced to automatically take care of a wide variety of tasks for you. Build your own workflows, or use any of the pre-built, importable workflows, that can be found here. n8n has built in connectivity for many platforms, like Discord, Telegram, WhatsApp, Most Google services, OpenAI or any other AI, Slack, WordPress, and many more. This very website is actually maintained by n8n for all its updates and some other things. I’m a huge fan of n8n! It’s truly an awesome tool.

docker volume create n8n_data
docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n

Open-WebUI

AI shouldn’t feel like a black box. Open-WebUI gives your models a friendly face, making them accessible and easy to interact with, whether you’re experimenting or building something big.
Open-WebUI is an extensible, feature-rich, and user-friendly self-hosted AI platform designed to operate entirely offline. It supports various LLM runners like Ollama and OpenAI-compatible APIs, with built-in inference engine for RAG, making it a powerful AI deployment solution.

docker run -d -p 8080:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main

Watchtower

With Watchtower you can update the running version of your containerized app simply by pushing a new image to the Docker Hub or your own image registry. Watchtower will pull down your new image, gracefully shut down your existing container and restart it with the same options that were used when it was deployed initially. Run the watchtower container with the following command:

 docker run --detach \
    --name watchtower \
    --volume /var/run/docker.sock:/var/run/docker.sock \
    containrrr/watchtower

That concludes my random list of favorite Docker apps. I’ll probably add some more later. I hope some of you found it useful. Till next time!

Fun Fact

The idea behind this post was to have an AI write some content, based on a list of my favorite Docker that I provided. But instead of writing a prompt, I started to write the introduction below, to give the AI something to start from. Unexpectedly I entered hyper-focus mode, continued writing while in the flow, and before I knew it, I had written the entire thing myself. I suppose this was my 100% the greenest way of using an AI, ever. πŸ™‚