Skip to content

mt-migrate — Ubuntu 18.04 → 24.04 migration tool

mt-migrate captures a customer system running Ubuntu 18.04 (Canvus Server, Canvus Client, Showcase, Launcher, Cornerstone display configuration, and OS-level state) into an integrity-checked bundle, then applies that bundle to a freshly-installed 24.04 target.

It is a single static binary with no runtime dependencies on the customer's box. Built CGO-free, statically linked, linux/amd64.

Current release — 1.0.3

Released 2026-05-15

Licenses capture release. A new dedicated licenses module captures every documented Linux license storage path — Canvus Server runtime, Showcase 1.x app-side, and per-user activation directories. Before 1.0.3, only the canvus-server runtime path was captured; Showcase licenses and per-user activations were silently dropped, leaving migrated customers with "license expired" on first boot. Drop-in replacement for 1.0.2.

Download:

Quickstart

Verify, install, run. Replace /mnt/usb with wherever you want the bundle written (USB drive, mounted network folder, second internal drive).

# 1. Download + verify
curl -fLO https://apps.multitaction.com/download/s3/mt-migrate/v1.0.3/mt-migrate-1.0.3-linux-amd64
curl -fLO https://apps.multitaction.com/download/s3/mt-migrate/v1.0.3/mt-migrate-1.0.3-linux-amd64.sha256
sha256sum -c mt-migrate-1.0.3-linux-amd64.sha256

# 2. Install
chmod +x mt-migrate-1.0.3-linux-amd64
sudo mv mt-migrate-1.0.3-linux-amd64 /usr/local/bin/mt-migrate

# 3. On the 18.04 source host — capture
sudo mt-migrate --non-interactive export --dest /mnt/usb --passphrase "" --primary-user multi

# 4. Move the resulting MT_MIGRATION_* directory to the 24.04 target via the same USB/network folder

# 5. On the 24.04 target — apply
sudo mt-migrate --non-interactive import --src /mnt/usb/MT_MIGRATION_<hostname>_<timestamp>

The export step prints a pre-flight report showing every module's capture status. A green report with no [FAILED] or [UNRECOGNIZED] layers means the bundle is ready to ship.

For per-flag detail run mt-migrate export --help or mt-migrate import --help.

What 1.0.3 captures

Module What it covers
system.network netplan / interfaces files, hostname, hosts, ufw rules
system.locale timezone, keyboard, locale
system.scheduling crontabs (system + per-user)
system.identity SSH host keys, sshd_config, ca-additions, ssl-private
canvus.server /var/lib/mt-canvus-server/MultiTaction/{DataModel,backups,...} ; reassembled at /canvus-data/ on the 24.04 container deployment
canvus.client per-user ~/MultiTaction/canvus/
launcher /etc/MultiTaction/launcher/ + per-user ~/MultiTaction/launcher/
showcase production_users.yaml, assets, backups, pg_dump -F c of mt-showcase and mt-showcase-reporting databases
licenses every documented .cslicense location on Linux: /var/lib/mt-canvus-server/MultiTaction/Licenses/, /opt/mt-showcase/licenses/, per-user ~/MultiTaction/Licenses/, per-user ~/.config/MultiTaction/Licenses/
cornerstone xorg.conf, screen.xml, config.txt, per-user ~/.MultiTouch/ (display calibration)

The Showcase database translation step (1.x Postgres → 26.4 SQLite) is deferred to a future minor release; 1.0.3 captures the raw dumps so they survive in the bundle for that work.

Source

This tool is developed in swrd/ub18.04-to-ub24.04-migration. Release notes and source for every release are at the project's GitLab releases page.

For the design specification — including the bundle layout, the pre-flight contract, and the per-module capture/apply semantics — see dev/superpowers/specs/2026-05-01-migration-tool-design.md in the project repository.