Mirror packages on any disk; both CAPsMANs on one controller (v0.38.0)
Discussion #85 (Stanley): many routers have 16 MB of flash, too little
for one version, but take a microSD card or USB stick. A mirror can now
keep its packages on any mounted, writable disk.
- Setup lists the server's disks (/disk/print) with free space and
preselects the one with the most room. RAM disks are listed with a
reboot warning and never preselected. - Packages go in / (sd1/mtm-packages); the free-space check,
pruning and removal follow the disk. A disk that disappears stops the
sync with its name instead of filling internal storage. - The disk can be changed later in the mirror's settings: the old files
are removed and the next sync stocks the new disk.
#250: a controller running the newer and the legacy CAPsMAN together is
read for both (capsman_flavor 'both'). Stale radios, configurations and
rules are removed once, against what both reported, and not at all if a
read failed; each CAPsMAN's own pass used to delete the other's.
Legacy provisioning ids are prefixed (both trees number from *1).
Tested end to end with a CCR2216 as package server on a 512 MB RAM disk
and a wAP ax as client: setup form sends the disk; moving from internal
storage removed the old files; sync put every package in
mtmdisk/mtm-packages (none in the top level, flash untouched); the wAP
ax listed 7.24.5 and 7.24.4 from the disk and downloaded a 7.24.4
package complete (then deleted, nothing scheduled); removing the mirror
cleared files, login and group. Both devices restored to baseline.
CAPsMAN: unit tests and the real collector against the database with
both trees enabled.
Docs: firmware.md (Keeping packages on a disk), capsman.md.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com
Container images (published once CI passes):
ghcr.io/2gt-media-group-llc/mikrotik-manager-backend:0.38.0-betaghcr.io/2gt-media-group-llc/mikrotik-manager-nginx:0.38.0-beta
Documentation: https://2gt-media-group-llc.github.io/mikrotik-manager/