Hi everyone,
I’ve been working on several new third-party modules for virtualmin, this one i’m sharing today called Virtualmin Docker and wanted to share it with the open source community.
The main reason I built this instead of just using a standalone UI like Portainer is that I wanted something that lives natively inside the Virtualmin ecosystem. I also wanted it to be absolutely bulletproof regarding security. A panel running as root shouldn’t be pasting user input into a shell, so I built this from the ground up to be injection-proof (every Docker command uses constant flags and individually escaped values).
What makes it special for Virtualmin users:
It actually reads your Virtualmin domain definitions. If you have a virtual server with proxy settings pointing to a local port (e.g., localhost:3000), this module matches that port to the active container and shows the proxied domain right in the container list.
Main Features:
- Full Lifecycle Management: Start, stop, restart, kill, pause, and bulk actions for containers.
- Live Dashboard: Home-screen widget for Webmin, showing running/stopped counts and disk usage.
- Compose & Images: Manage Compose projects (v2), build from inline Dockerfiles, pull/push, and search Docker Hub.
- Security & Scanning: Integration with Docker Scout or Trivy for image vulnerability scanning.
- Backups: Export container filesystems, save images to host tars, and backup/restore local volumes.
- Granular ACL: Grant or deny specific capabilities (like view, manage, exec, prune) per Webmin user.
- Rootless Docker: Fully supported via Docker contexts.
Requirements:
- A host running Webmin or Virtualmin (tested on Webmin 2.621 / Virtualmin 8.0.0 GPL only)
- The Docker engine + CLI (
docker) - Perl
JSON::PP(ships with Perl 5.14+)
How to Install:
You can review the source code and download the latest release from my GitHub here:
https://github.com/MrZaKaRiA/Virtualmin-Docker
- Download the
docker.wbm.gzfile from the Releases page. - Log into your panel and go to Webmin > Webmin Configuration > Webmin Modules.
- Select “From uploaded file”, upload the package, and hit Install.
- You’ll find it under Servers > Docker.
The project is completely open-source (GPLv2). If you decide to spin it up on your servers, I would love to hear your feedback. Feel free to open an issue on GitHub if you run into any bugs or have feature requests!
