Welcome the new Virtualmin Podman Plugin

Thank you sir.

I’m late to the game but I’ve arrived and will offer up feedback soon, as I’m pulling this into a lab environment shortly.

Actually, there’s a question already I just realized I need answered. I have a single Virtualmin Pro license, am I correct in thinking that I cannot spin up a lab instance and test this Podman plugin and test it there, isolated in the lab instead of having to install it on a live production system? The lab would be the obviously preferred method, but I will understand if it cannot be done this way, for the commercial interests involved in keeping keys from being misused in multiple locations.

But, if it is possible to create a separate installation in my lab without the need for a second key or for shutting down my production Virtualmin installation, please enlighten me, and I’ll get that podman plugin tested and feedback submitted ASAP :slight_smile:

It can be done, but the test lab server should be taken down in a little over two weeks to ensure the license won’t be locked as being used on multiple servers.

Righto, thank you for the info!

First bug found:


help file for the module is missing?

Thanks, fixed now!

1 Like

I’ve finished and wrapped up CLI and remote API support for the Virtualmin Podman plugin.

@Jamie, the complete CLI documentation is available here:

@Joe, I’ve also updated the examples with a more useful real-world app deployment: WordPress and MariaDB running together in a pod.

1 Like

Excellent thanks! I’ll check it out … which distros do you recommend I try it on?

I used Rocky 9 for running all-round tests. Yet any Virtualmin-supported system should work just fine.

Nice! Is there a documented install process for the new plugin?

Yes, it’s also in the same Virtualmin Podman docs:

And when the new Virtualmin 8.2.0 is out, I will update the instructions.

Virtualmin Pro 8.2.0 will include a new release of Virtualmin Podman 1.2.0, which introduces Application Recipes. These recipes provide an easy way to deploy popular containerized applications with just a few clicks.

The new web interface is shown in the screenshots below, and full CLI support will also be included.






For now, we will support 65 installable Docker/Podman applications:

  • Actual Budget
  • Audiobookshelf
  • BookStack
  • Caddy Static Site
  • Calibre-Web
  • changedetection.io
  • code-server
  • Directus
  • Discourse
  • Docmost
  • Dolibarr
  • Etherpad
  • Excalidraw
  • Firefly III
  • FreshRSS
  • Ghost
  • Gitea
  • Gotify
  • Grafana
  • Grocy
  • HedgeDoc
  • Homebox
  • IT-Tools
  • Jellyfin
  • Joplin Server
  • Kavita
  • Keycloak
  • Kimai
  • Leantime
  • linkding
  • Listmonk
  • Matomo
  • Mealie
  • Memos
  • Metabase
  • Miniflux
  • MongoDB with mongo-express
  • n8n
  • Navidrome
  • Nextcloud
  • NGINX Static Site
  • NocoDB
  • ntfy
  • Odoo Community
  • Open WebUI
  • PairDrop
  • Paperless-ngx
  • pgAdmin
  • PhotoPrism
  • phpMyAdmin
  • PLANKA
  • PrestaShop
  • PrivateBin
  • SearXNG
  • Snipe-IT
  • Stirling PDF
  • TriliumNext Notes
  • Umami
  • Uptime Kuma
  • Vaultwarden
  • Vikunja
  • Wallos
  • Wiki.js
  • WordPress
  • YOURLS

Everyone is welcome to give it a shot with the latest development builds!

5 Likes

Wow, nice job.

1 Like

Superb work @Ilia - this is such a useful feature!!

1 Like

Out of interest, how are the ‘recipes’ created?

It’s just a bunch of .json files in the module’s recipes/ directory that can be overridden, or new custom recipes can be added via drop-ins to /etc/webmin/virtualmin-podman/recipes if needed.

Example of a recipe:

{
   "app_port" : 80,
   "categories" : [
      "security",
      "passwords"
   ],
   "default_variant" : "default",
   "description" : "A lightweight Bitwarden-compatible password vault with persistent encrypted data.",
   "id" : "vaultwarden",
   "name" : "Vaultwarden",
   "required_runtime" : "uid",
   "secrets" : [],
   "variants" : [
      {
         "components" : [
            {
               "envs" : [
                  "DOMAIN={{url_no_trailing}}"
               ],
               "image" : "docker.io/vaultwarden/server:latest",
               "role" : "application",
               "volumes" : [
                  [
                     "data",
                     "/data"
                  ]
               ]
            }
         ],
         "id" : "default"
      }
   ]
}
1 Like