Public Beta

MFConsole Downloads

Two pieces: the console (the control plane you run once) and the node ISO (flashed onto every KVM host it manages).

Console Node ISO

Deploy the Console

MFCloud Console is the control plane for the MFCloud platform — an enterprise KVM hypervisor manager. One image runs the web console, Celery worker, and beat scheduler (selected by command: in the shipped compose files). It manages VM lifecycle and live migration, Ceph/LINSTOR/ZFS storage, OVN networking, Kubernetes clusters, and multi-tenant RBAC, with optional HA via Patroni/TimescaleDB.

1.0 release candidate. Runs on the Free edition out of the box (2 nodes / 10 VMs, no license key needed) — paste a license key in Settings → Edition & License later to unlock higher caps and paid features (HA, S3 backup, multi-tenant, LDAP, and more). KVM hosts are added from its UI afterward — see the Node ISO below.

MFConsole 1.3.0-rc12

Released 2026-10-07

Quick Start

Pull the image, extract the deploy files with cp (no login, no separate download needed), and run the installer — works with Docker or Podman:

docker pull mfconsole/kvm-manager:latest id=$(docker create mfconsole/kvm-manager:latest) docker cp "$id":/app/deploy-files ./mfconsole docker rm "$id" cd mfconsole ./install.sh

install.sh auto-detects Docker or Podman on the host (pass --engine docker or --engine podman to force one) — handles .env setup, secret generation, and bringing the stack up, then prints the console URL and login when it's done. Requires Docker (Compose v2.24+) or Podman (podman compose or podman-compose).

Software bill of materials (SPDX) for this image and every earlier one on Docker Hub: mfcloud.io/sbom.

What's New — 1.3.0-rc12 (2026-10-07)

  • Safer failback. Failback checks the protected site before it changes anything and stops, listing what would be lost, instead of overwriting it; to go ahead anyway you have to choose to discard it. It also refuses a VM that has started again at the source, and a replica host that can’t run KVM guests is flagged before a run, not during it.
  • Safer console restore. Any recovery plan change queues a control-plane backup, so a standby console has the latest plans. Restoring into a new database cluster creates missing roles and checks the TimescaleDB version before it starts. After you update, the console pushes the new compute-node code to every active node on its own.
  • AI Workers. Hand a job to AI agents, one per task, each on its own short-lived VM. Every worker clones the repo, runs Claude Code, runs your tests and sends back a patch for you to review; nothing is pushed. Workers never hold the API key, and the console stops each job at its budget. Off by default.
  • AI alarm triage and bulk VM actions. A read-only agent (beta, off by default) diagnoses alarms with a likely cause, evidence and next steps, and admins rate each one. The AI assistant can act on up to 200 VMs from one approval card.
  • NIC teaming and live backups. Bond idle NICs as Active / Standby or LACP and use the team as a bridge, OVN or VLAN uplink. Backups of running VMs no longer pause them, NIC bandwidth limits apply live, and live migrations can be capped. It rolls up 1.3.0-rc7 to rc11.4; after you update, the console pushes the new compute-node code to every active node on its own.
  • Container, Kubernetes and HA fixes. Enrolling one container-cluster member no longer locks the console out of the others (click Re-Enroll on affected members), dissolving a container cluster is safe, deleting a Kubernetes cluster no longer frees nodes it couldn’t reach, SNAT deletes reach OVN, and a control-plane reboot no longer leaves a host without its database.
  • Sign-in and update fixes. The MFA code prompt no longer opens behind the sign-in form, Settings → Node Updates works again, background tasks no longer fail for a minute after a worker start, and a Content Library publish no longer sticks at “Queued” or reports a copy it didn’t make. It rolls up 1.3.0-rc6.4 and rc6.5; after you update, the console pushes the new compute-node code to every active node on its own.
  • Recovery plans. Fail VMs over to a standby site in boot order and back again, rehearse it any time with a test failover that doesn't touch production, and see the measured RTO of every run. ZFS replication to the other site is relayed through the console, so the sites' hosts need no access to each other.
  • Standby console. Restore the console from its backup at the standby site with CONSOLE_STANDBY=true and it stays passive until you promote it. Also: Move to Datacenter…, the release channel at dl.mfcloud.io, loading placeholders and a Hardware page fix. It rolls up 1.3.0-rc5.6 to rc6.2; after you update, the console pushes the new compute-node code to every active node on its own.
  • Kubernetes and images with no internet. Signed content bundles carry k3s and RKE2 with their images, Helm, Ceph CSI and MetalLB, or cloud templates, ISOs and LXD images. Clusters install from them with no node reaching the internet, and the Content Library copies the images to the nodes you pick. Tested on an HA cluster whose nodes had no internet access.
  • Kubernetes node fixes. Node VMs now use the disk size you ask for (the template's /var was a fixed 5 GB), and MetalLB setup waits for its webhook. It rolls up 1.3.0-rc5 to rc5.4.
  • Update channel, online or offline. Signed release bundles you can import with no internet access, an online release channel that downloads them for you, and rolling node updates that patch a cluster one host at a time from the console's own repository, with a health check before each host takes its VMs back.
  • Migration fixes. A VM can no longer end up running on two hosts unnoticed, and a long migration no longer leaves its VM stuck at “migrating”. The deploy dialog now sends its placement rules and has a resource pool picker. It rolls up 1.3.0-rc2, rc3 and rc3.1.
  • Also in 1.3: costs and showback. Rate cards price vCPU, RAM, disk, GPU and per-VM use for a tenant, cluster, cost center or the whole fleet. A new Costs tab shows each month and downloads per-tenant statements as CSV or JSON.
  • Partner white-label. Your own name, colours, logo and favicon, stored by the console. Partner mode also hides version badges, release notes and vendor links.
  • Sovereign mode. Keep the console and its nodes to private addresses and an allowlist. Anything else fails at once with a clear error instead of timing out at a firewall.
  • Sites and AI sandboxes. Place datacenters at physical sites and spread affinity groups across them. AI sandboxes, off by default, give an AI agent short-lived VMs to run commands in. It rolls up 1.2.0-rc6, rc6.1 and 1.3.0-rc1; after you update, the console pushes the new compute-node code to every active node on its own.
  • Also in 1.2: security fixes. urllib3 2.8.0 (CVE-2026-97689, -97687, -97688), read-only API keys that can't fetch credentials, and VM consoles that need a password at the VNC port (run Repair Worker once per node when coming from 1.2.0-rc2 or earlier).
  • Scoped, expiring API keys. Make a key full, read-only or sandbox, with an expiry of up to 365 days. Existing keys keep working unchanged.
  • Also in 1.2. The first public 1.2 release, rc2, added everything below on top of 1.1. After you update, the console pushes the new compute-node code to every active node on its own.
  • Resource pools. Give a group of VMs in a cluster CPU shares, an optional CPU limit and a memory reservation. VMs keep their pool through migration, load balancing and HA restart.
  • 3-host HA fixes. LINSTOR stays reachable when the VIP moves (new LINSTOR_CONTROLLER_IP setting), and control-plane containers keep their logs and restart protection after a host reboot.
  • Also in 1.1: change hardware on a running VM. Add a disk, network adapter or SCSI controller, or grow a disk, and the guest sees it right away. VMs created before this release need one power off and start first.
  • Notifications and alarms. Alerts to webhooks, Discord/Slack, Teams, email and syslog/SIEM, each with its own events and severity. Alarms can be acknowledged or muted, with a 90-day history. Prometheus metrics export.
  • Safer backups and VMs. Immutable cloud backups with S3 Object Lock, weekly restore checks, delete protection for VMs and containers, and security keys and passkeys for sign-in.
  • More VM options. Linked clones, USB passthrough, device mappings, CPU type with a cluster baseline for live migration, nested virtualization, hugepages, guest NUMA, shared host folders and automation triggers.
  • Fixes. Node ISO installs are recognised by Add Host and get LINSTOR, the firewall and a storage pool; HA Manager rolling updates no longer leave hosts without a console; and the dashboard rides out dropped database connections.
  • Known issue (3-node HA only): losing a control-plane host can still freeze the surviving console replicas for a few minutes. The infrastructure layer fails over correctly every time — VIP, database promotion and workers all recover in seconds. Restarting the affected app container restores service in about 10 seconds. Single-node installs are unaffected.

Full per-release detail is on the changelog page.

First login

install.sh prints the exact URL and login at the end of the run. By default: open https://<your-master-ip>/ (self-signed TLS — accept the browser warning). Username admin, password mfpro — the console forces a password change before the dashboard loads.


Download MFConsole Node ISO

The all-in-one Rocky-based hypervisor installer. Flash it, boot a server, and enroll the node into your MFConsole control plane. Two builds — pick the one matching your hardware.

Standard Hypervisor el9

Rocky Linux 9.8 (el9) · x86-64 · UEFI · For regular KVM hosts (no GPU/SR-IOV passthrough) · Released 2026-07-21 · ~4.89 GB

Download ISO

SHA-256 checksum

c481f2be8e669c20ecb8b4300ec73db8e0cb2bf7bb1f1b5350b69e38b0606166

GPU & SR-IOV Hypervisor (el10, GPU)

Rocky Linux 10.2 (el10) · x86-64 · UEFI · For hosts with GPU passthrough / SR-IOV NICs · Released 2026-06-08 · ~2.94 GB

Download ISO

SHA-256 checksum

2f257bbd5ba3c65ede5b396cf9e4c2202d3dd328a4a4e77faaf467c8450e0d4d

Verify before you flash

Confirm the download wasn't corrupted or tampered with. Run the checksum check for whichever ISO you downloaded.

Checksum (integrity)

sha256sum mfcloud-min-el9.iso # standard hypervisor sha256sum mfcloud-v40-el10-gpu.iso # GPU / SR-IOV hypervisor # compare the output against the matching SHA-256 shown above

Quick start

  1. 1.Write the ISO to a USB stick on Windows with Rufus (see warning below), or on Linux/Mac with balenaEtcher or dd — or mount it directly via iDRAC/iLO virtual media.
  2. 2.Boot the target server (UEFI). The installer runs unattended and reboots into the node agent.
  3. 3.From the MFConsole UI, Add Host with the node's IP to enroll it into your cluster.
  4. 4.Full walkthrough in the Install a Node guide.

Using Rufus? Select "DD Image mode" — not "ISO Image mode"

Rufus defaults to "ISO Image mode (Recommended)" for this ISO, but that repartitions the drive and breaks the installer's boot layout. The symptom is silent: the installer boots and appears to run, then sits frozen on "Installing base system" indefinitely with no error. When Rufus prompts you to choose, pick "DD Image mode" instead. (balenaEtcher and dd always write raw/DD-style by default — this only applies to Rufus.)

Beta builds are lab-mode

This ISO ships with default lab credentials and is intended for trusted lab / LAN environments only — not internet-facing production. Change the default admin password on first login, and restrict node management ports to your control-plane network. See the beta known-issues notes for details.

Hit a problem? Join our Discord or open a thread on the forum — beta feedback goes straight to the team.