vm-reactor (0.38) trixie; urgency=medium

  * The command `vm-reactor report` is gone: the diagnostic report of
    stratum-support no longer asks for the VM Reactor part, so the program has
    nothing to print for it. stratum-support 0.08 dropped the call in the same
    round.

 -- Stratum Project <stratum@skraba.net>  Mon, 09 Nov 2026 20:15:00 +0100

vm-reactor (0.37) trixie; urgency=medium

  * Remote support is no longer part of the web interface: the Settings tab
    Support (sessions, reports) and the License tab are gone, together with
    the calls to stratum-support and stratum-license and the two dependencies.
    Support is used from the Stratum command line and the Control Desk, where
    the license is managed as well. The command `vm-reactor report` stays -
    stratum-support asks for it when it writes a diagnostic report.
  * The Overview no longer repeats the three memory indicators (deduplication,
    compression, ballooning) in the Host card and in the memory panel; the
    panel keeps the saved memory, the usage and the history, and the page
    Memory keeps everything.
  * "WireGuard mesh" is called "WireGuard" - in the Network page, its texts
    and the notification.

 -- Stratum Project <stratum@skraba.net>  Mon, 09 Nov 2026 19:10:00 +0100

vm-reactor (0.36) trixie; urgency=medium

  * The version in the web interface, in About and in `vm-reactor version` is
    the version of the installed package (dpkg-query), not only the one baked
    into the binary at build time. An update that did not restart the service,
    a build from a working tree or a host left on an older package was
    reported with the wrong number; now it is always what is installed, and
    About shows the built version next to it when the two differ.

 -- Stratum Project <stratum@skraba.net>  Mon, 09 Nov 2026 18:20:00 +0100

vm-reactor (0.35) trixie; urgency=medium

  * "End the session" on the Support page works again: stratum-support 0.07
    answers exit 3 for stopping a live session (it removes access), so the
    call now carries STRATUM_FORCE=1 - the administrator confirmed it in the
    browser. A module call that needs the confirmation has its own helper
    (runLogForce).

 -- Stratum Project <stratum@skraba.net>  Mon, 09 Nov 2026 17:40:00 +0100

vm-reactor (0.34) trixie; urgency=medium

  * A host whose stratum-security is older than 0.13 shows a clear line
    ("too old for this page - upgrade it") instead of a half-empty card with
    "- -"; the rest of the page keeps working.

 -- Stratum Project <stratum@skraba.net>  Mon, 09 Nov 2026 17:05:00 +0100

vm-reactor (0.33) trixie; urgency=medium

  * The features of Stratum are shown from what the modules answer, not from
    text VM Reactor used to cut apart:
    - memory (stratum-memory >= 0.29): `status --json` and `recommend --json`;
      the recommendation (percentage of RAM, zram size, swappiness,
      min_free_kbytes) is the module's, the pages only show it;
    - sign-in protection (stratum-security >= 0.13): `status --json` and
      `banned --json` replace the parsing of `toggles jails` and of
      fail2ban-client output;
    - remote support (stratum-support >= 0.07): `status --json` gives the
      session, the tunnel, the relay, the licence and the reports;
    - watchdog (stratum-watchdog >= 0.09): the page shows the checks of the
      host from `status --json` next to the checks of VM Reactor and the
      guests, with the events of the module.
  * New Settings tab "License" (stratum-license >= 0.08): state, holder,
    level, validity with the days left, features, the hardware ID, whether the
    support feature is in the licence, the request code to copy, the licence
    pasted and installed (checked by the module, kept as license.previous) and
    the licence removed.
  * Depends: stratum-memory (>= 0.29), stratum-license (>= 0.08),
    stratum-security (>= 0.13), stratum-support (>= 0.07),
    stratum-watchdog (>= 0.09), stratum-software (>= 0.25).

 -- Stratum Project <stratum@skraba.net>  Mon, 09 Nov 2026 16:20:00 +0100

vm-reactor (0.32) trixie; urgency=medium

  * Firewall of a guest is stratum-firewall's work now. The module owns the
    rules (/etc/stratum/firewall/guests/<id>.json) and the nftables table
    bridge vmreactor; VM Reactor validates what the user sets, sends the guest
    (its interface, MAC address, NAT address and the rules) to the module and
    reads the state and the counters back (guest-set, guest-get,
    guest-remove, guest-apply, guest-counters). The rules of 0.31 and older
    are moved to the module once at the start and kept as <id>.json.migrated.
  * The interface, MAC address and NAT address stored with the rules are
    refreshed on every apply, so anti-spoofing follows a change of the network.
  * mdadm is no longer a dependency of vm-reactor: it belongs to
    stratum-storage (>= 0.08), which makes and manages the arrays; VM Reactor
    reads the state of an array through it.
  * Depends on stratum-firewall (>= 0.12).

 -- Stratum Project <stratum@skraba.net>  Mon, 09 Nov 2026 13:15:00 +0100

vm-reactor (0.31) trixie; urgency=medium

  * Storage - Disks: when a new disk gives the volume group no free space (a
    replacement of a failed member, a RAID 1 mirror), the pool is left alone
    instead of failing on lvextend.

 -- Stratum Project <stratum@skraba.net>  Mon, 09 Nov 2026 11:35:00 +0100

vm-reactor (0.30) trixie; urgency=medium

  * Storage - Disks of an md array: a new disk that replaces a failed member
    is only added (the array becomes whole again); the array is grown only
    when the disk is a real spare, so a replacement no longer fails.

 -- Stratum Project <stratum@skraba.net>  Mon, 09 Nov 2026 11:20:00 +0100

vm-reactor (0.29) trixie; urgency=medium

  * Storage - Disks of an md array: a member can be taken out while the array
    rebuilds (the old check refused as soon as the state was not clean); it is
    refused while a disk is failed or the array is not complete, and the
    message says how many members are active.
  * The task log after a removal says the array is degraded and takes a
    replacement disk.

 -- Stratum Project <stratum@skraba.net>  Mon, 09 Nov 2026 11:05:00 +0100

vm-reactor (0.28) trixie; urgency=medium

  * storage disk list prints the md array under a thin pool (level, state,
    spare) and the members without a meaningless "used" column.
  * A disk added to a RAID 1 array is another copy, not more space: the disk
    modal and the wizard say so (RAID 0, 5, 6 and 10 gain space).
  * STRATUM_STORAGE_ALLOW_LOOP is passed on to stratum-storage, so the storage
    actions can be exercised on loop devices on a test machine.

 -- Stratum Project <stratum@skraba.net>  Mon, 09 Nov 2026 10:45:00 +0100

vm-reactor (0.27) trixie; urgency=medium

  * Depends on stratum-storage (>= 0.06): 0.26 needs the array grow, the pool
    resize and the pool remove of that version.

 -- Stratum Project <stratum@skraba.net>  Mon, 09 Nov 2026 09:55:00 +0100

vm-reactor (0.26) trixie; urgency=medium

  * Storage - Add storage: the order is Directory, NFS share, LVM thin pool
    (the pool comes last).
  * Storage - LVM thin pool: a new pool can be built on an md RAID array. The
    wizard offers the base of the pool - no RAID (linear), RAID 0, RAID 1,
    RAID 5, RAID 6 or RAID 10 - and shows which levels the chosen disks allow;
    the array is made by stratum-storage (array create), the volume group and
    the thin pool on top of it. The storage remembers its array (md=md0 in
    storage.conf), also when the group already sits on one.
  * Storage - LVM thin pool - Disks: the modal shows the array (level, state,
    spare, members) when the group sits on one. A disk can be added (it joins
    the array as a spare, the array grows and the pool takes the new space) or
    taken out (it leaves the array; the array keeps its size and a replacement
    disk can join later). Both go through stratum-storage (array add/grow/
    remove, pool resize), as does removing a disk from a plain group
    (pool remove with pvmove).
  * New dependency: mdadm (and stratum-storage 0.06).
  * Container disks grow through stratum-storage alone (volume resize with
    --fs ext4) - the second resize2fs is gone.

 -- Stratum Project <stratum@skraba.net>  Mon, 09 Nov 2026 11:20:00 +0100

vm-reactor (0.25) trixie; urgency=medium

  * Storage - Add storage: the Btrfs pool is gone. A storage is a Directory,
    an LVM thin pool or an NFS share. A btrfs pool of 0.24 and older is read
    as a directory on btrfs, so its guests, subvolumes and snapshots keep
    working and its disks stay as they are - VM Reactor no longer adds,
    removes, replaces or converts them.
  * btrfs-progs is not a dependency any more. Without it a directory on btrfs
    is a plain directory: no subvolumes and no snapshots (and machines keep
    their qcow2 disks), so nothing fails silently.
  * Storage - LVM thin pool: the volume group, the thin pool and the volumes
    of the guests are made by stratum-storage (new dependency, 0.05). The
    module checks the machine first, prints the plan, applies it and reads the
    result back; what it reports is the log of the task. A disk that carries
    an old file system is erased with wipefs, mounted devices are refused.
    VM Reactor keeps the file systems of the guests (ext4, mount) and reads
    the state (lvs).
  * Storage - LVM thin pool - Disks: more disks join the volume group through
    stratum-storage (pool add); moving the data of a disk out (pvmove) and
    growing the pool stay in VM Reactor.
  * New disks of a machine are thin volumes through stratum-storage; a
    container disk is grown through it (volume resize, with resize2fs).
  * The command line loses storage add <name> btrfs, storage profile, scrub,
    balance, mount-degraded and storage disk replace; storage disk covers the
    disks of an LVM thin storage only.
  * Settings: BTRFS_SCRUB_DAYS is gone (with the pools).

 -- Stratum Project <stratum@skraba.net>  Mon, 09 Nov 2026 05:20:00 +0100

vm-reactor (0.24) trixie; urgency=medium

  * Depends on stratum-core (>= 0.49), the Stratum core that replaces
    stratum-init, and on stratum-memory (>= 0.28); tested with the Stratum
    core and modules written in Go.
  * Settings - About and the diagnostic report show the version of
    stratum-core.

 -- Stratum Project <stratum@skraba.net>  Sat, 07 Nov 2026 19:00:00 +0000

vm-reactor (0.23) trixie; urgency=medium

  * Storage - Btrfs pool (new, second in Add storage): a btrfs file system
    on one or more empty disks or partitions with the data profile single,
    RAID 0, RAID 1, RAID 1C3 or RAID 10 (RAID 5/6 are not offered: their
    write hole can lose data); the metadata always have two copies at least
    (DUP on one disk, RAID 1, RAID 1C3 with RAID 1C3); compression zstd:1
    (zstd:3 or off); optionally disks of machines without copy-on-write.
    Mounted through /etc/fstab by its UUID; guests, ISO images, LXC
    templates and backups.
  * Btrfs pool - Disks: add disks (with a balance that spreads the data),
    remove disks (their data move to the others; checks for the space and
    the least number of disks of the profile; half-empty chunks are
    compacted when the move runs out of space), replace a disk - also a
    failed or missing one - by a new one, convert the profile, scrub and
    balance (with cancel), mount a pool with a missing disk degraded; data
    written while a disk was missing are converted back after the replace.
    A conversion is refused at once when the disks have too little
    unallocated space (btrfs would turn the pool read-only).
  * Btrfs: every guest gets its own subvolume; snapshots of machines,
    containers and applications are btrfs snapshots (instant, also while
    running; machines with the guest agent are frozen for the moment);
    clones are reflinks; new disks of machines are raw files (clones and
    restores convert qcow2 to raw and back as the target storage needs).
  * Btrfs pools are watched every 10 minutes: missing disks, device errors,
    errors of the last scrub, data with another profile, read-only, almost
    full metadata - on the card of the storage and in the bell. A scrub
    runs every BTRFS_SCRUB_DAYS days (default 30, 0: off; set in Disks).
  * Storage - Directory: the file system under it is recognised - on btrfs
    the guests get subvolumes and snapshots; on an NFS share the host
    mounts, the storage is offline without the share. NFS shares that 0.22
    added as "mounted share" become such directories.
  * Storage - NFS share: only exports that VM Reactor mounts (server:/path).
  * Storage - LVM thin pool: "New on empty disks" first; an existing thin
    pool through the link below it.
  * Disks and partitions of a btrfs file system on several disks (also of
    one that is not mounted) are shown as in use.
  * New commands: vm-reactor storage add <name> btrfs ..., storage disk
    replace, storage profile, storage scrub, storage balance, storage
    mount-degraded (see vm-reactor help).
  * Depends on btrfs-progs.

 -- Stratum Project <stratum@skraba.net>  Mon, 02 Nov 2026 14:40:00 +0000

vm-reactor (0.22) trixie; urgency=medium

  * Storage - LVM thin pool: a new pool can be created on several disks and
    partitions at once (one volume group, linear). The choice of the disks
    is shown below the choice "New on empty disks"; a disk with an old file
    system that is not mounted can be chosen (it is erased).
  * Storage - Disks (on the card of an LVM thin storage that VM Reactor
    created): add disks - the pool grows online, or the space stays a
    reserve - and remove disks: their data move to the other disks (pvmove,
    online), then the disk leaves the volume group. A thin pool cannot
    shrink, so a disk can only be removed when the other disks have room
    for its data; the dialog says why a disk cannot be removed.
  * Storage - NFS share: the directory of an NFS share that the host mounts
    already (e.g. /mnt/share by its own /etc/fstab) can be used as it is; it
    stays the host's mount. An export (server:/path) is checked first (the
    server must answer on port 2049) and the mount ends after 60 seconds at
    most instead of hanging.
  * Storage - Add storage: the dialog checks the entries at once and stays
    open with the error, instead of closing and failing in Tasks.
  * New commands: vm-reactor storage list | add | remove and
    vm-reactor storage disk list | add | remove (see vm-reactor help); the
    running web interface reads the storage again after a change.

 -- Stratum Project <stratum@skraba.net>  Mon, 02 Nov 2026 10:52:00 +0000

vm-reactor (0.21) trixie; urgency=medium

  * Settings - Packages: a package that is only half installed (e.g. its
    installation script failed) is not shown as installed; installing it
    again finishes the earlier attempt first (dpkg --configure -a).

 -- Stratum Project <stratum@skraba.net>  Mon, 02 Nov 2026 08:29:07 +0000

vm-reactor (0.20) trixie; urgency=medium

  * The reader of the ballooning events ends before VM Reactor itself
    (stop, restart, new port or certificate) - no more "left-over process"
    messages of systemd at the next start.

 -- Stratum Project <stratum@skraba.net>  Mon, 02 Nov 2026 07:08:54 +0000

vm-reactor (0.19) trixie; urgency=medium

  * Lock-out protection for the network: a change of the NAT network and of
    the access to the web interface (port, address, allowed networks) must
    be kept within 60 seconds - from the browser, over the new
    configuration - otherwise the previous configuration comes back by
    itself (a systemd timer, "vm-reactor settings-rollback"). Bridges on
    network cards: 60 seconds as well (before: 2 minutes). A banner with
    the countdown and "Keep the change" on every page.
  * Settings - Packages: vm-reactor-virtio-win (VirtIO drivers for Windows
    machines, ISO image in the storage local) and vm-reactor-handbook.
  * Settings - About: VM Reactor is written in Go (with the version of Go).

 -- Stratum Project <stratum@skraba.net>  Mon, 02 Nov 2026 07:00:16 +0000

vm-reactor (0.18) trixie; urgency=medium

  * Side bar: the lines under Guests are gone again; the headings Machines,
    Containers and Applications of the guest tree show how many guests of
    the type are running and how many there are (running/all).

 -- Stratum Project <stratum@skraba.net>  Mon, 02 Nov 2026 07:35:00 +0100

vm-reactor (0.17) trixie; urgency=medium

  * Side bar: under Guests one line each for the running machines,
    containers and applications (running / all); a line opens the list of
    guests with that type.
  * The segmented choices (e.g. the filter of the guest list, the console,
    the time range of the charts) are one row again - the offline / live
    choice of the migrations has its own style.

 -- Stratum Project <stratum@skraba.net>  Mon, 02 Nov 2026 05:15:00 +0100

vm-reactor (0.16) trixie; urgency=medium

  * Command line: changes of the users (vm-reactor user add, del, passwd,
    role, guests, disable, enable, 2fa-off) apply at once in the running
    web interface (before: only after a restart of the service).
  * The reader of the ballooning events ends with VM Reactor (no
    journalctl processes left over after a restart).

 -- Stratum Project <stratum@skraba.net>  Mon, 02 Nov 2026 03:30:00 +0100

vm-reactor (0.15) trixie; urgency=medium

  * Memory: the recompression of idle pages in zram is a setting of
    stratum-memory (recompress) - VM Reactor shows and changes it as
    before; an interval set before is taken over at the update.

 -- Stratum Project <stratum@skraba.net>  Mon, 02 Nov 2026 03:00:00 +0100

vm-reactor (0.14) trixie; urgency=medium

  * Memory: stratum-memory manages the memory of the host - compression
    (zram), deduplication (ksm, ksmtuned) and the automatic ballooning of
    the machines (stratum-memory-balloon). VM Reactor shows it and changes
    its settings, as before; its type of computer "vm-reactor" holds the
    values tuned for a host of virtual machines. The minimum memory of a
    machine is part of its libvirt definition, the changes of the
    ballooning are events of the guests.
  * Dependencies: stratum-memory, stratum-firewall, stratum-watchdog,
    stratum-security, stratum-software, stratum-support, stratum-wireguard,
    NFS, LVM thin, bridges, rsync and the SSH server are required (no
    recommended or suggested packages any more).
  * Docker setup: the automatic upgrades of stratum-software include
    Docker's repository.
  * Command line: "vm-reactor telemetry" removed.

 -- Stratum Project <stratum@skraba.net>  Mon, 02 Nov 2026 02:30:00 +0100

vm-reactor (0.13) trixie; urgency=medium

  * Migrations (main menu, Operations): hosts are paired with a one-time
    code - over the LAN, the WireGuard mesh or any route; the certificate of
    the other host is pinned, SSH as root only from its address. A guest
    moves to a paired host offline (every type: shut down, copied, started
    there) or live (a running machine: memory and disks are copied while it
    runs). The guest keeps its ID when it is free there; MAC address,
    published ports and firewall go along, a guest in the NAT network gets
    an address there. Checks before (storage, space, versions, processor,
    SSH); the guest is removed here only when it runs there. Command line:
    vm-reactor migrate, vm-reactor peers.
  * Backups to a paired host: a storage of the other host in Back up now
    and in schedules (peer:<host>:<storage>); retention runs there. Backups
    page: the backups of this host on each paired host (fetch here, delete)
    and the backups that other hosts keep here.
  * Applications in the NAT network: the front service of an application
    joins the NAT network (Docker network vmnat on the NAT bridge, part
    .64/27 - NAT_DOCKER) with a fixed address, a name
    <name>.vm-reactor.lan, published ports of VM Reactor and the firewall of
    the guest; new applications join it by themselves, existing ones under
    Network of the application.
  * The side bar is narrower and folds to icons (by itself on a narrow
    window).
  * Overview, Protection: Watchdog, Security, Firewall (stratum-firewall:
    active / not active / not installed) and Backup.
  * Overview, Memory: the lights without the module lines (they show on
    hover), each one leads to Memory; "Swapped out" says how much is in
    zram and how much RAM it uses; with very little data in zram the
    Compression card says that nothing can be saved yet.
  * Removed what was left of features that are gone: the MariaDB and
    telemetry parts of the former integrations page, the XFS storage type
    (an XFS storage of an older version is a mounted directory now), the
    takeover of the former Docker module.

 -- Stratum Project <stratum@skraba.net>  Sun, 01 Nov 2026 23:30:00 +0100

vm-reactor (0.12) trixie; urgency=medium

  * Overview, Protection: the Security light is one line, without the name
    of the module.

 -- Stratum Project <stratum@skraba.net>  Sun, 01 Nov 2026 22:30:00 +0100

vm-reactor (0.11) trixie; urgency=medium

  * Overview, Protection: the Security light says it in short - protected,
    sign-in not protected, not running or not installed; the state of
    stratum-security is shown on hover and in Settings - Security.

 -- Stratum Project <stratum@skraba.net>  Sun, 01 Nov 2026 22:00:00 +0100

vm-reactor (0.10) trixie; urgency=medium

  * Memory: deduplication, compression and ballooning have clearly
    different colours - green, blue and orange (lighter in the dark theme) -
    in every chart, bar and legend; "Stored" is grey, the memory used by the
    host and the machines violet.
  * Overview, host card: the engines are named Virtualization; Protection
    shows Watchdog, Security (stratum-security and the protection of the
    sign-in) and Backup, each leading to its page.
  * My account in the user menu opens Users - My account; the tabs of the
    Users page are part of the address (#/security/account, users, access,
    audit).

 -- Stratum Project <stratum@skraba.net>  Sun, 01 Nov 2026 21:00:00 +0100

vm-reactor (0.09) trixie; urgency=medium

  * Docker is installed with VM Reactor: a question at the installation
    (vm-reactor/docker-setup, yes by default) and, as soon as dpkg and APT
    are finished, the same setup as Docker - Install (Docker's key and
    repository, docker-ce, compose, buildx) as a task; the Docker light is
    amber during the installation. Conflicting packages are never removed
    here: the setup stops and says why in the notifications. Later: vm-reactor
    docker setup, or Docker - Install.
  * Memory: three sections in one order everywhere - Deduplication (ksm),
    Compression (zram) and Ballooning - each with its light, its numbers and
    its own chart (saved by deduplication; saved, stored and RAM used by
    compression; returned by ballooning and used by the machines). The
    overview shows the memory management as separate curves in the colours
    of the bar; the host card has the lights Deduplication, Compression
    ("zstd active") and Ballooning. The zram profile is named "VM Reactor
    host".
  * Navigation in three sections: Infrastructure (Overview, Guests,
    Storage, Memory, Network), Operations (Backups, Tasks) and
    Administration (Docker, Users, Settings).
  * Search (Ctrl+K): guests by name, ID or address, pages and settings.
  * Notifications (the bell): checks of the watchdog that are not ok,
    failed backups of the last 24 hours, guests that are not defined or
    whose storage is offline, a Docker setup that stopped.
  * Settings: General, Watchdog, Security, Support, Packages, About. The
    integrations are gone: sign-in protection (stratum-security) is under
    Security, remote support under Support, the WireGuard mesh on the
    Network page. One bar "Unsaved changes - Save - Discard" instead of a
    Save button per card. The watchdog has a summary light. About shows
    short versions of the components, the full version on hover.
  * Backups: a summary at the top (state, last backup, next scheduled run,
    total size). Clean up now has its own rules (filled in with the
    configured rules) and a choice of backups (all, scheduled, manual and
    imported) with a live preview; every reason names the rule and its
    source, e.g. "last (schedule 02:30)"; the confirmation shows the number
    and the size. The newest backup of a guest and protected backups are
    never removed.
  * Guests: the header has Start/Shut down, Console and Back up now; Reboot,
    Pause, Stop (force), Clone and Delete are in the menu, Delete asks for
    the name of the guest. Tabs: Recovery (snapshots and backups) and
    Activity (the tasks and the log of the guest). Tables can be sorted, the
    header stays visible, guests can be filtered by tag.
  * Overview: the cards CPU, Memory, Storage and Guests lead to their pages;
    the Memory card shows what memory management saves; storage counts
    only online storage and names the offline ones. Guests on an offline
    storage are shown as "storage offline" (amber).
  * Network: a chart of the traffic of the host (In/Out) and the mesh.
  * Add storage: Directory, LVM thin pool, NFS share.
  * Uniform pages: the same header, relative times with the exact time on
    hover, the same lights and colours, empty lists with a hint and an
    action, charts with the same legend and time span.

 -- Stratum Project <stratum@skraba.net>  Sun, 01 Nov 2026 18:00:00 +0100

vm-reactor (0.08) trixie; urgency=medium

  * Memory is a page of the main menu (it was in Settings): compression
    (zram), deduplication (KSM) and the balloon of the machines.
  * The memory setup is on by default: stratum-memory and ksmtuned are
    dependencies, zram for a hypervisor and KSM with the recommended values
    are set up at the installation, the automatic balloon is on and every
    machine gets a minimum memory of half its memory (new machines and, at
    the update, machines without one). What was set up before stays as it
    is (vm-reactor memory-defaults).
  * Compression is named by its algorithm: zstd (better compression,
    recommended) or lz4 (fastest), together with stratum-memory 0.20.
  * Overview: the panel Memory management shows what the memory techniques
    save - the memory saved, the memory of the host by use (used, saved by
    KSM, saved by zram, returned by the balloon, free), the three
    techniques with their state and the swap of zram and disk. Host load
    shows CPU and network. The Host card shows the state of the engines
    (KVM, LXC, Docker), of the memory techniques and of the protection
    (watchdog, last backup) with status lights.
  * Guests are named Machines, Containers and Applications everywhere
    (overview, lists, labels, Create guest); KVM, LXC and Docker are named
    where the technology is meant.
  * Storage: new storage is a Directory, an NFS share or an LVM thin pool
    (existing XFS storage keeps working); the content is named Guests, ISO
    images, LXC templates and Backups; the tab Other templates is gone.
  * Settings - About: the versions of KVM (QEMU, libvirt, kernel module and
    acceleration), LXC and Docker (Engine, Compose, Buildx).

 -- Stratum Project <stratum@skraba.net>  Sun, 01 Nov 2026 12:00:00 +0100

vm-reactor (0.07) trixie; urgency=medium

  * New logo of VM Reactor: the reactor core with an orbit (web interface,
    sign-in, favicon, About).
  * Overview: four charts of the host load, always visible - CPU, memory
    (used, saved by KSM and zram, returned by the balloon), swap (zram and
    disk) and network; the Host card shows the processor, kernel, address
    and the installed engines (KVM, LXC, Docker).
  * Overview - Host shell opens again: the session no longer ends when
    login hangs up the terminal (vhangup).
  * Settings - Memory: compression (zram), deduplication (KSM) and the
    balloon of virtual machines in one place.
  * Virtio balloon: free page reporting (on by default) - freed guest pages
    return to the host; automatic balloon (off by default) shrinks running
    machines when the host is short of memory, never below their minimum
    memory (Hardware - Memory), and lets them grow again.
  * Backups: retention rules per schedule - keep the last N, daily, weekly,
    monthly and yearly backups, maximum age; preview before saving; rules
    for manual and imported backups (off by default); protected backups
    are never removed; Clean up now; every removal in the audit log;
    vm-reactor backup prune and vm-reactor backup protect. Schedules keep
    their former "keep" as "keep the last".
  * Storage: the ZFS storage type was removed (directories, XFS, NFS and
    LVM thin remain).
  * The menu Users & security is now Users.

 -- Stratum Project <stratum@skraba.net>  Sun, 01 Nov 2026 10:00:00 +0100

vm-reactor (0.06) trixie; urgency=medium

  * VM Reactor manages Docker completely - virtualisation and containers
    from one package:
    - installation of Docker from Docker's own repository (key with a
      checked fingerprint, /etc/apt/sources.list.d/docker.sources, suite of
      the release before while Docker has none), conflicting packages only
      after confirmation; switch of the suite (Docker - Package repository,
      vm-reactor docker repo switch);
    - daemon settings: log rotation, address pool (checked against the
      networks of the host), live restore, IPv6, no-new-privileges, data
      location (moved with rsync); checked by dockerd before Docker restarts;
    - Docker users (group docker), events of the containers (crashed, out
      of memory, unhealthy), cleanup by kind, all containers, volumes and
      networks of the host.
  * Docker applications:
    - automatic updates (daily or weekly at 04:30) with a mode per
      application: auto, notify or off; the images before an update are kept
      for a rollback; Update now, Check now, Roll back; update log;
    - CPU and memory limits for all containers of an application;
    - new applications from a pasted "docker run" command or with an image
      wizard; templates Nginx Proxy Manager and Portainer; templates with
      passwords generate them in .env;
    - import of existing compose projects (vm-reactor docker import, Docker -
      Import a compose project): the project name, data, named volumes and
      networks stay.
  * Applications, settings and the APT source of stratum-docker are taken
    over at the installation; the package replaces stratum-docker.
  * Command line: vm-reactor docker ... (all of it, see vm-reactor docker
    help); stratum vm-reactor docker ... in the Stratum module.

 -- Stratum Project <stratum@skraba.net>  Tue, 27 Oct 2026 23:30:00 +0100

vm-reactor (0.05) trixie; urgency=medium

  * Menu and guest list: "Applications" instead of "Docker" for the Docker
    applications (like "Machines" and "Containers").

 -- Stratum Project <stratum@skraba.net>  Tue, 27 Oct 2026 22:30:00 +0100

vm-reactor (0.04) trixie; urgency=medium

  * Settings: "Memory deduplication" (KSM) instead of "Same-page merging".
  * Settings - Integrations: the hint about the sign-in limits is exact.

 -- Stratum Project <stratum@skraba.net>  Tue, 27 Oct 2026 22:00:00 +0100

vm-reactor (0.03) trixie; urgency=medium

  * Settings - Integrations: VM Reactor with the Stratum modules:
    - stratum-security: fail2ban protects the sign-in (jail vm-reactor,
      filter /etc/fail2ban/filter.d/vm-reactor.conf);
    - stratum-wireguard: the NAT network is announced in the mesh, the
      other members reach the guests directly;
    - stratum-ansible: dynamic inventory of the guests
      (/usr/lib/vm-reactor/ansible-inventory, vm-reactor inventory);
    - stratum-support: support sessions and diagnostic reports (with the
      state of VM Reactor, vm-reactor report);
    - stratum-database: guests may use the MariaDB server of the host;
    - stratum-telemetry: numbers about the guests (vm-reactor telemetry).
  * Docker templates MariaDB and Adminer.
  * The NAT network can be changed while guests use it: they keep the host
    part of their address (10.10.10.5 -> 10.10.20.5) - needed when several
    hosts are in one mesh.
  * Menu: "Machines" instead of "Virtual machines"; Settings: "Same-page
    merging" instead of "KSM".

 -- Stratum Project <stratum@skraba.net>  Tue, 27 Oct 2026 21:00:00 +0100

vm-reactor (0.02) trixie; urgency=medium

  * Storage types xfs (reflink), nfs, zfs (zvols, data sets, quotas) and
    lvmthin (thin volumes); storage snapshots of guests on zfs / lvmthin;
    default storage for ISO images, templates and backups; LXC images
    cached in the template storage.
  * Firewall of each guest (nftables, bridge): policies, rules, anti-spoofing.
  * Bridges on network cards (ifupdown) with confirmation and rollback.
  * Load charts of guests (CPU, memory, network, disk; 1 hour and 24 hours).
  * Memory: compressed swap (stratum-memory) with a type tuned for VM hosts,
    KSM (ksmtuned) with recommended settings, free page reporting of VMs.
  * Watchdog of components and guests (restart, guest agent check).
  * Start with the host in order with delays, shutdown in reverse order
    (vm-reactor-guests.service); hardware watchdog of machines.
  * Docker: installation, registries, mirrors, images.
  * Settings in tabs: general, memory compression, KSM, watchdog,
    packages, about.
  * Reboot of a container is a shutdown and a new start (changed settings
    apply). Guests created with 0.01 get the firewall and the network
    charts after their next start.
  * Disk sizes from newer qemu-img (nested "virtual-size") are read right.

 -- Stratum Project <stratum@skraba.net>  Tue, 27 Oct 2026 18:00:00 +0100

vm-reactor (0.01) trixie; urgency=medium

  * First version of VM Reactor: KVM virtual machines, LXC system containers and Docker
    applications in one web interface (HTTPS, port 8443) - guests with IDs
    from 1 on (ID 0 is the host), one configuration and one directory per
    guest; storage, NAT network with published ports, bridges, consoles in
    the browser, snapshots, backups (export, import, schedules), users with
    roles and two-factor sign-in, audit log; command line "vm-reactor".

 -- Stratum Project <stratum@skraba.net>  Tue, 27 Oct 2026 12:00:00 +0100
