Philips CMND applications running on Ubuntu 24.04 x86_64, with Music City Telecom Linux deployment/update tooling. Releases include the original vendor applications; no separately obtained payload is required. Vendor ownership and notices are preserved; no Philips endorsement is implied.
Tooling version: 0.7.2 (evaluation). Check GitHub releases for publication status; the bootstrap installs only published releases, never a development checkout or draft. Target vendor bundle: CMND installer labeled 7.5.9; its extracted buildnr.txt says 7.5.10.3168. Vendor components have their own internal versions; these are not the tooling version.
Settings or Channels stuck on “Loading…” after upload? Version 0.7.1 fixes Windows/Linux database table-name case compatibility for fresh installs. Existing installs need the explicit, backed-up database case repair after updating the tooling. Do not delete or re-upload your packages to fix this.
Already running v0.7.1? Do not rerun the fresh installer. See upgrading or recovering v0.7.1 below. Version 0.7.2 improves installation reporting and checks; it does not replace vendor Java applications, reinitialize databases, or change your existing passwords.
Start with the complete Ubuntu 24.04 walkthrough, including prerequisites, optional SSH, first login, licensing, updates and troubleshooting.
On a fresh Ubuntu 24.04 amd64 server/VM (6 GiB RAM, 40 GiB disk recommended), download one script and run its guided installer. Python 3.11+ and trusted HTTPS certificates are required; Ubuntu Server normally already supplies them.
sudo apt update
sudo apt install -y python3 curl ca-certificates
curl --fail --location --proto '=https' --proto-redir '=https' \
-o bootstrap.py https://github.com/MusicCityTelecom/linux-cmnd/releases/download/v0.7.2/bootstrap.py
sudo python3 bootstrap.py --execute --release v0.7.2The script automatically downloads the Philips applications and asks for this server's
stable IPv4 address, then asks you to accept the legacy evaluation runtime. It
downloads the newest compatible GitHub evaluation release, checks the package
and installer against GitHub's SHA-256 digests, installs dependencies, generates
configuration with the original default ports, and starts CMND. No git checkout,
manual .deb download, GitHub login, or hand-written config is needed.
Philips applications are included as a release asset, outside Git source history.
--payload remains an optional local override. Customer backups, site credentials
and existing activation state are never installer inputs. See
licensing and installation identity.
No physical TVs are authorized by installation.
The final installation summary prints the configured web addresses, admin
username, actual generated initial password, ports, certificate guidance and
diagnostic paths. For this compatibility release the initial password is random,
not tpvision. Save it privately. Passwords are printed intentionally on the
installer console; do not share a recording or screenshot of that console.
Installation never powers off or reboots your machine automatically.
On a single filesystem, the default upload limit requires 27.82 GiB free before
downloads, including 12 GiB working/runtime allowance and two 8,096 MiB upload
copies. Reserve calculations are checked per destination filesystem. A 40 GiB
virtual disk alone is not sufficient if its root filesystem/LVM volume is only
19 GiB: check df -h / /var/lib /opt /var/tmp. Expand it yourself before retrying;
the installer never changes partitions. See storage and receipts.
Default management URL: https://SERVER-IP:8444/linux-cmnd/; TV management:
https://SERVER-IP:8443/SmartInstall/. Custom ports come from /etc/cmnd/cmnd.toml.
Trust /etc/cmnd/tls/ca.crt on your workstation to remove the expected browser
certificate warning. Never copy or share the server's private keys.
If the application works but you did not see the login details, no reinstall or database repair is needed. On the CMND server, display the existing credential:
sudo cat /var/lib/cmnd-deployment/initial-admin.json; printf '\n'
sudo cat /var/lib/cmnd-deployment/qualification.json; printf '\n'
sudo cmndctl native-health --seconds 120Use the recorded admin username/password at https://SERVER-IP:8444/linux-cmnd/.
If you have since changed a password, use the new password; the initial credential
file is a historical record, not a reset mechanism. CAS and the Linux management
page start with the same password but have separate account stores.
Recommended upgrade to v0.7.2: pause scheduled TV jobs and
choose a maintenance window (services restart). Preserve an independent backup or
VM snapshot first. The updater also retains private configuration/database backups
and the prior .deb for recovery. Then:
sudo cmndctl --updates
# Review the offered version; type INSTALL 0.7.2 only if it offers 0.7.2.
dpkg-query -W linux-cmnd
sudo cmndctl install-summary
sudo cmndctl native-health --seconds 120The updater uses GitHub releases, verifies hashes and compatibility, applies the
tooling update and verifies readiness. This is the supported way to install
0.7.2 on top of 0.7.1; do not run bootstrap/install.sh again, delete deployment
state, or use a fresh-install script as an upgrade. Existing database contents,
credentials, certificates, vendor applications and configuration are preserved.
sudo cmndctl show-login is an alias for the new read-only summary command.
Neither command changes credentials or restarts services. Old noisy log entries
are retained as evidence; new startup retries no longer log expected failures.
If no update is offered, check publication status and your configured channel:
v0.7.x releases use the preview channel in
/etc/linux-cmnd-management/updates.json. Do not bypass verification by manually
overwriting application files. See update recovery.
If v0.7.1 failed before completing: do not assume an update repairs a partial
installation. Preserve /var/lib/cmnd-deployment, /etc/cmnd, and the logs. If
deployment state exists, the fresh installer intentionally refuses to overwrite
it. Request recovery help with redacted diagnostics. If only the early disk check
failed and no application/deployment state was created, provide enough free
filesystem space and use the v0.7.2 fresh installer. Do not delete state to make
the check pass. A missing migration table during startup is not by itself evidence
of a failed installation; the final readiness result determines completion.
See quick-install options for unattended installs,
release pinning, Debian requirements, and custom ports. Without --execute, the
bootstrap prints a plan and makes no downloads or changes.
v0.7.2: all 218 Ubuntu tests passed, including the opt-in isolated MySQL runtime test. Candidate clean installation, actual browser logins, reboot recovery, package lifecycle and upgrade-worker preservation passed. See the v0.7.2 evidence and scope and release notes for public GitHub transport verification. No physical TV was contacted for this maintenance fix.
The 0.6 series adds a terminal update switch, without changing Philips GUI
pages: sudo cmndctl --updates. It checks the fixed GitHub repository and asks
for an exact version confirmation before handing off to the verified update
worker. Published v0.5.0 has cmndctl update-check; the new switch is not in that
older release. See update instructions and the
Windows-to-Linux conversion map.
The full installer and .deb accept Ubuntu 24.04 or Debian 12/13 amd64; Debian 13 needs an operator-supplied Java 17 runtime. The new installer has completed a fresh Ubuntu VM deployment of the five Java applications and SmartCMS, with HTTPS/migration readiness, automatic startup after reboot, real browser login, and native CMS local export. Debian runtime qualification remains pending. Start with the evaluation installation guide, configuration, and test results.
This is not full Windows-feature parity or production certification. RF/DekTec/modulator workflows are explicitly out of scope. The supplied MGate archive is Windows-only; additional MGate-dependent IP transport-stream playout is not qualified. Physical-TV qualification and production Windows-backup restore remain incomplete. GUI updates have passed end-to-end installation and rollback with synthetic release transport; real GitHub transport qualification is recorded separately. Vendor applications are included; customer reference archives are not.
- Safe ZIP extraction with Windows separator normalization, traversal/symlink/collision/expansion guards, and rollback of partial file writes.
- SHA-256 artifact inventory.
- Capture-derived WIXP discovery, power, and clone command encoding with response correlation.
- Bounded unicast scan and identity-revalidated addition to a separate tooling inventory. This does not silently modify Philips database tables or grant control permissions.
- Exact, secret-aware rendering of all five operator-supplied WARs and the separate PHP SmartCMS application.
- Full native-service installation from locally supplied, hash-verified Philips payloads; original default ports are configured together from TOML.
- Native certificate preprovisioning, private service accounts, guarded database initialization, startup readiness checks, and boot-enabled services.
- Actual Ubuntu lab qualification of Philips browser login, TV scan/import, native room delivery/readback/persistence and Standby against a synthetic TV, plus CMS SSO/content-editor navigation. These are not physical-TV or complete deployment certifications.
- Persistent service-identity isolation and automatic startup passed a real reboot in the fresh installer VM. No physical-TV egress is granted by installation.
- Native CMS editing and local export work in the fresh installer VM; the retained synthetic site exported a CRC-valid ZIP with generated HTML and metadata after reboot. Meaningful thumbnails and TV publication remain unqualified.
- A separate authenticated management page checks GitHub at startup and requires explicit confirmation before queuing a release update. The worker verifies package identity/integrity and retains configuration, database, and prior-package backups. The CLI completed an actual public GitHub upgrade from 0.6.0 to 0.6.1, preserving configuration/site data and passing readiness checks; the GUI transport tests remain separately scoped.
- Identity/IP/operation allowlists and mandatory
--executefor TV writes. - Receive-only TV clone export with a separate permission, identity rechecks, private bounded uploads, and ZIP validation. The first TV test must download from one selected TV before any push; hardware evidence is pending.
- Room-ID clone package creation from an operator-supplied model template; room IDs remain strings.
- Restricted ZIP package serving with HTTP byte-range support.
- Synthetic TV endpoint for discovery, power, clone download, failures, and asynchronous state inspection.
- Rerunnable release staging, dry-run, status, filesystem backup/clean restore, rollback selection, and preserve-data uninstall marker.
Cold Java startup took about 11 minutes on the 6 GiB test VM. The management page becomes available earlier; use cmndctl native-health --seconds 900 before testing vendor applications. Simulator results from the earlier lab do not constitute physical-TV evidence. See test results and limitations.
Ubuntu 24.04 includes a suitable Python version:
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -e .
python -m unittest discover -s tests -v
cmndctl --config config/cmnd.example.toml doctor --source /private/staging/'{app}'
cmndctl inventory /private/staging --output /private/reports/inventory.json
cmndctl install --source /private/staging/'{app}' --root /tmp/cmnd-lab --release 7.5.9-lab --dry-runThe CLI uses dry-run behavior unless --execute is supplied. --dry-run is accepted for explicit scripts:
cmndctl install --source /private/staging/'{app}' --root /tmp/cmnd-lab --release 7.5.9-lab
cmndctl install --source /private/staging/'{app}' --root /tmp/cmnd-lab --release 7.5.9-lab --executeSimulator example:
cmndctl simulator --bind 127.0.0.1 --port 9079
cmndctl discover 127.0.0.1
cmndctl power 127.0.0.1 Standby --identity SIMULATOR00000001 --executeNever reuse the example allowlist for real hardware. Follow INSTALL.md, NETWORKING.md, and SECURITY.md.
Our source and release wrapper use Semantic Versioning. Before 1.0.0, interfaces may change. Philips CMND compatibility is recorded independently in docs/ARTIFACTS-AND-VERSIONS.md; a wrapper version never asserts that a vendor release is qualified.
Philips, TP Vision/TPVision, CMND, their logos, and the original CMND software are the property of their respective owners and licensors. They are not owned by Tommy Heggie, TechFinity Communications, or Music City Telecom. The PHILIPS name and shield are trademarks of Koninklijke Philips N.V.; see the official Philips trademark information. All original vendor copyright, trademark and license notices remain applicable.
Tommy Heggie, TechFinity Communications and Music City Telecom provide this Linux adaptation and its deployment tooling free of charge. No fee is charged by this project for downloading or using this release. This does not waive vendor licensing or activation requirements, or third-party service costs. The Apache 2.0 tooling license applies only to original project code, not to bundled Philips/TPVision software or other third-party components. Those components retain their own licenses; inclusion does not transfer ownership, relicense them, or grant rights beyond their applicable terms.
Names and logos identify compatibility and original products. This project does not claim vendor certification, endorsement, sponsorship, or official support. Only unmodified, hash-verified inputs from the original vendor archive are included in the vendor bundle. Hardware-generated identities, activation state, customer backups, site credentials and locally generated private keys are not distributed.
The Linux adaptation and tooling are provided AS IS, without warranties of merchantability, fitness for a particular purpose, non-infringement, uninterrupted operation, or compatibility with every device. To the maximum extent permitted by applicable law, Tommy Heggie, TechFinity Communications, Music City Telecom and project contributors accept no liability for losses resulting from its use, including data loss, service interruption or device misconfiguration. Nothing here excludes rights or liability that applicable law does not permit excluding, or changes the original vendors' separate terms.
Use the release-specific test results, keep backups, and qualify an isolated test installation before production use. Free availability is not a guarantee of complete Windows parity or production readiness.