Install C21 Live Control
What you install
The C21 Live Control product, packaged as a Docker compose stack. The installer brings up the operator UI, the REST API, the WebSocket layer, the MCP server and the bundled database; the result is an instance reachable at https://<host>:9443/.
The host can later be paired with one or more C21 Live Encoder instances (see Install C21 Live Encoder) and a license file (see step 3 below).
Before you start
Verify the host meets the prerequisites described in Prepare the host. Minimum:
- Ubuntu 22.04 LTS or 24.04 LTS, x86_64
- 2 cores / 4 GiB RAM / 20 GiB free on
/(4 cores / 8 GiB RAM recommended) - HTTPS egress to
get.cires21.comand Docker Hub - Time synced via NTP, public DNS resolution
- Ports
9080,9443,3000,3100free on the host
Steps
1. Run the one-liner installer
curl -fsSL https://get.cires21.com/livecontrol | sudo bash
The installer, in order:
- Verifies that the host meets the prerequisites.
- Installs Docker if it is not already present.
- Pulls the Live Control compose stack and creates the data volumes.
- Brings the services up and runs health checks.
- Prints the access URL, the initial credentials and the host fingerprint required to request the license.
2. Get the host fingerprint
To request the license, you need the fingerprint that identifies your host. Get it with:
sudo livecontrol license info
The output includes a section like:
C21 Live Control — License binding info
========================================
Host fingerprint: 73250bef2e5af1b5deb8e5e4d7506dff
License file: /opt/livecontrol/data/license.txt
Current license: (not installed)
Required product slots: C21LiveControl, C21LiveDeploy, C21LiveEditor (optional), C21LiveDRM (optional)
Send the Host fingerprint value to your Cires21 representative along with the product slots your contract covers.
3. Install the license
Cires21 will send you a license.txt file with INI sections for each contracted product:
[C21LiveControl]
Expiration=31-12-3000
Quantity=1
Key=<key-1>
[C21LiveDeploy]
Expiration=31-12-3000
Quantity=1
Key=<key-2>
...
Upload it from the UI: open https://<host>:9443/, authenticate as admin with the initial password (printed by the installer in step 1) and on login you will be presented with the license form. Select the license.txt file and confirm.
Alternatively from the CLI:
sudo livecontrol license install /path/to/license.txt
sudo livecontrol restart
After installation, verify:
sudo livecontrol license verify
It should print each slot with status: true and the expiration date (Unlimited when the sentinel value 31-12-3000 applies).
4. First login and credential rotation
Open the UI and authenticate with the credentials the installer printed in step 1. The UI will ask you to rotate the admin password before any other operation — it is part of the mandatory first-use flow.
The initial credentials are also stored in /opt/livecontrol/.credentials (mode 0600, root-owned) on the host.
Supported platform
| Operating system | Ubuntu 22.04 LTS or 24.04 LTS, x86_64 |
| Permissions | root or sudo |
| CPU (minimum / recommended) | 2 cores / 4+ cores |
| RAM (minimum / recommended) | 4 GiB / 8+ GiB |
| Disk (minimum / recommended) | 20 GiB / 50+ GiB |
| Network ports | 9080, 9443, 3000, 3100 available on the host |
| Egress | get.cires21.com, Docker Hub, hora.cires21.com (or your preferred NTP) |
Installer flags
| Flag | Effect |
|---|---|
--unattended, -y, --yes | Non-interactive mode — every prompt uses its default. |
--version <X> | Install a specific version instead of the latest. |
--check-only | Verify requirements without installing. |
--upgrade | Upgrade an existing installation (equivalent to livecontrol update). |
--uninstall | Remove the installation (equivalent to livecontrol uninstall). |
--debug | Verbose installer logs. |
--help, -h | Print the flag list. |
Environment variables
| Variable | Effect |
|---|---|
PRODUCT_VERSION | Pin a specific version (alternative to --version). |
INSTALL_DIR | Installation path (default /opt/livecontrol). |
UNATTENDED=1 | Non-interactive mode (equivalent to --unattended). |
DEBUG=1 | Verbose logs (equivalent to --debug). |
Non-interactive example
curl -fsSL https://get.cires21.com/livecontrol | sudo bash -s -- --unattended --version 6.10.1
Day-to-day operations
After installation, the livecontrol CLI is available on the host. Always run it with sudo — the configuration and data paths live under /opt/livecontrol with restricted permissions.
Service control
sudo livecontrol status # Status with health checks
sudo livecontrol start
sudo livecontrol stop
sudo livecontrol restart [service]
sudo livecontrol logs [service] # Tail; `-f` to follow, `-n N` for N lines
sudo livecontrol version # Print installed version
sudo livecontrol config # Current configuration (default: show)
sudo livecontrol config edit # Edit configuration (`$EDITOR` or nano)
sudo livecontrol activate # Activate the docker group for the current session
License
sudo livecontrol license info # Host fingerprint + current status
sudo livecontrol license install <file>
sudo livecontrol license verify # Status of each slot in the installed file
See Licenses for the full product catalog and the per-license gates.
Backups
sudo livecontrol backup [name] # Manual backup (auto-named if name is omitted)
sudo livecontrol restore # List available backups
sudo livecontrol restore <file> # Restore from a specific backup
The installer schedules an automatic backup daily at 03:00 with a 7-day retention. Backups include the configuration and a database dump; they are stored encrypted at /var/backups/livecontrol/.
Updates
The flow is detailed in Updates. Quick reference:
sudo livecontrol update --check
sudo livecontrol update <version>
sudo livecontrol update <version> --no-backup # Skip the pre-update backup (not recommended)
sudo livecontrol update <version> --force # Reinstall the same version and skip prompts
The update runs a pre-update backup, pulls the new images, restarts the stack and rolls back automatically if any step fails.
SSL
sudo livecontrol ssl status
sudo livecontrol ssl info
sudo livecontrol ssl generate [days] # Generate a self-signed certificate
sudo livecontrol ssl import <cert.crt> <key.pem> # Import a CA-signed pair
The installer generates a self-signed certificate by default. livecontrol ssl import validates that the certificate and the key correspond before installing them.
Security
sudo livecontrol security status
sudo livecontrol security audit
sudo livecontrol security harden # Default hardening
sudo livecontrol security password <mysql|admin|reset [<user>]> # Rotate the indicated password
security password reset <user> returns the account to its initial state and forces a change on next login.
Maintenance
sudo livecontrol cleanup [--dry-run]
The installer also schedules weekly automatic maintenance (log rotation, removal of orphaned Docker resources, purge of backups beyond retention).
Uninstall
sudo livecontrol uninstall # Interactive — requires typing 'UNINSTALL'
sudo livecontrol uninstall --keep-backups
sudo livecontrol uninstall --keep-data
sudo livecontrol uninstall --force # No prompt
The uninstall stops and removes the containers, removes the image set, removes the data volumes (unless --keep-data is used), removes the systemd unit, the cron schedules and the CLI itself.
Cross-links
- Prepare the host — DNS, NTP, ufw, swap before the install.
- Install C21 Live Encoder — pair an encoder with this Control instance.
- Updates — update flow for Control and Encoder.
- Licenses — license catalog, per-feature gates, file format.
- Devices — add a registered Encoder to this instance after onboarding.