sitemanagerd reference
sitemanagerd is the SiteManager service. The Windows and Linux installers start it for you, so you only need this page to change how it runs, or to start it by hand.
Usage
sitemanagerd [options]
sitemanagerd --version
sitemanagerd --state-dir DIR --print-fingerprint
sitemanagerd --state-dir DIR --print-setup-token
sitemanagerd [--listen ADDRESS] [--public-url URL] --print-url
Run sitemanagerd --help for the list of options.
--versionprints the version and exits.--print-fingerprintprints the SHA-256 fingerprint of the TLS certificate, and creates the certificate first if it does not exist. Only a service in network mode uses a certificate.--print-setup-tokenprints the first-run setup token. It prints nothing once the first administrator exists. Local mode has no setup token. If the state directory holds neither a setup token nor a user store, the command says so and mentions that local mode needs no setup token.--print-urlprints the address to open in a browser, using the same rules as the service, and does nothing else. In local mode it ishttp://127.0.0.1:<port>/. In network mode it is the public URL. The installers use it. Give it the same--listenand--public-urlas the service.--print-to FILE, together with one of the three options above, writes the value to a new file instead of the screen. The path must be absolute, and the file is created with access for you only.
On Windows, sitemanagerd.exe service install|remove|start|stop manages the Windows service. See SiteManager on Windows.
Options
Where and how it runs
| Option | Default | Meaning |
|---|---|---|
--listen ADDRESS |
127.0.0.1:8790 |
The address and port to serve on. The address decides the mode, see Local mode and network mode. Examples: 127.0.0.1:8790 (local mode), :8790 and :8443 (network mode). |
--state-dir DIR |
The STATE_DIRECTORY environment variable (systemd sets it to /var/lib/sitemanager). On Windows, %ProgramData%\MultiTaction\SiteManager. Otherwise sitemanager-state in the current folder. |
Where SiteManager keeps its data. |
--public-url URL |
https://<computer name>:<port>/ |
The address that alert messages link back to, in network mode. It must be an https:// address. Local mode refuses this option, and alert messages there link to the loopback address the service listens on, http://127.0.0.1:<port>/ by default. |
--log-file PATH |
<state-dir>/sitemanagerd.log |
Where the service writes its own log. The file must not be one of the other files in the state directory. |
Local mode and network mode
The --listen address decides how the service runs. There is no separate switch.
- Local mode is a loopback address:
localhost(in any letter case) or a loopback IP address, such as127.0.0.1:8790,localhost:8790or[::1]:8790. This is the default. The service serves plain HTTP on that address only, so only this computer can reach it. There are no logins, users, API tokens, setup token or certificate. Every request acts as the administrator/local, and the audit log records that name. - Network mode is any other address:
:8790,0.0.0.0:8790, a LAN address or a host name. The service serves HTTPS with its own certificate, the first-run setup token, logins, roles and API tokens.
In local mode:
- The
Hostheader of a request must belocalhost,127.0.0.1or[::1](or the loopback address--listennames), with the port the service listens on. Anything else gets status 403. This stops a web page from reaching the service through a rebound host name. - A change (
POST,PUT,PATCHorDELETE) whoseOriginheader is not the service's ownhttp://address gets 403. A request with noOriginheader is allowed. --public-urlis refused, with the message--public-url names the address other computers use; local mode (a loopback --listen) serves this computer only. Use a network --listen such as :8790.- The setup, login, Account and Users pages, and the API operations for setup, login, users, tokens, sessions and passwords, are available in network mode only. See The JSON API.
GET /api/v1/versionandGET /api/v1/serverreport"mode": "local"or"mode": "network". In local mode/api/v1/serverhas nofingerprint.- The page footer reads Local mode: this computer only, no logins.
- A
--listenwhose address turns out not to be a loopback address when the service binds it is refused.
Cornerstone files
| Option | Default | Meaning |
|---|---|---|
--cornerstone-user USER |
The user running sitemanagerd |
Whose home folder holds screen.xml, config.txt and mt-canvus.ini. When the service runs as root on Linux, new files and folders are given to this user. Running as root for another user's home without this option is refused. |
--screen-xml PATH |
screen.xml in the user's folder |
An absolute path that replaces the default. |
--config-txt PATH |
config.txt in the user's folder |
An absolute path that replaces the default. |
--canvus-ini PATH |
mt-canvus.ini in the user's folder |
An absolute path to an mt-canvus.ini that must already exist. |
--x-display DISPLAY |
:0 |
The X display used to detect video outputs and to run the blend check (Linux). |
--xauthority PATH |
.Xauthority in the user's home |
The X authority file for that display (Linux). |
--scanout-blend PATH |
Off | The absolute path of the mt-scanout-blend program. It switches on the Blend check on the Config page. |
A path outside the user's home is allowed. SiteManager then checks every folder above it for links. If the user or the paths cannot be used, the service still starts. It generates files and offers them for download, and says why applying them is not available. See Walls and Cornerstone files for the default locations and the rules for writing.
Monitoring and history
| Option | Default | Meaning |
|---|---|---|
--poll-idle DURATION |
15s |
How often a display nobody is looking at is read, from 5 seconds to 5 minutes. |
--poll-focused DURATION |
2s |
How often a display on an open page, in a job or just changed is read, from 1 to 15 seconds. |
--history-dir DIR |
<state-dir>/history |
Where the status history is kept. |
--history-max-displays N |
128 |
The most displays the history records, from 1 to 1024. Each takes about 2.6 MB. |
--activity-every DURATION |
5m |
How often the wall's touch traffic is sampled for the idle-wall check. 0 turns it off. Otherwise at least 1 minute. |
--drift-every DURATION |
15m |
How often displays and files are checked for drift. 0 turns it off. Otherwise at least 1 minute. |
Durations are written like 30s, 5m or 1h.
The idle-wall check
| Option | Default | Meaning |
|---|---|---|
--idle-interval DURATION |
5s |
The time between two readings. |
--idle-samples N |
3 |
How many intervals are measured. |
--idle-margin-percent N |
50 |
How far above its own quiet rate a display's traffic may rise and still count as idle, as a percentage. Above 0, at most 1000. |
--idle-margin-floor N |
20000 |
The same margin in bytes per second. The larger of the two applies. Above 0, at most 1000000000. |
--idle-tolerance N |
1000 |
Used for a display with no baseline yet: how many bytes per second one connection may vary and still count as idle. |
See The idle-wall check.
Firmware
| Option | Default | Meaning |
|---|---|---|
--firmware-catalogue URL |
https://hardware.multitaction.com/firmware/v1/catalogue.json |
The firmware catalogue: a signed catalogue address (https, a path ending in .json) or a legacy catalogue base address. With the default, SiteManager falls back to the legacy server when the signed catalogue cannot be fetched. |
--firmware-legacy URL |
http://update.multitaction.com/taction-firmware/ |
The legacy update server used when the default signed catalogue cannot be fetched. Empty means no fallback. |
--firmware-os OS |
linux-tegra+linux-tegra2 |
The operating system filter of the catalogue. |
--firmware-branch BRANCH |
stable |
The branch of the catalogue to list. |
Downloaded and imported images are kept in the firmware folder of the state directory.
Files, folders and logs
The state directory holds everything the service keeps:
| Name | What it is |
|---|---|
site.json |
The site: displays, walls, layouts, rooms, profiles and host settings. |
auth.json |
Network mode only. Users, API tokens and browser sessions. Passwords and tokens are stored as hashes. |
audit.log |
The audit log. A new file starts at 10 MiB, and five files are kept. |
alerts.json |
Alert rules and channels, including the credentials of channels, because the service must send them. |
alerts.log |
The alert log. 2 MiB per file, with two older files kept. |
jobs.json |
Jobs, so they survive a restart. |
history/ |
The status history. |
firmware/ |
Cached firmware images. |
config-backups/ |
Backups of the Cornerstone files made before an apply or a restore. The newest 50 are kept. |
sitemanagerd.log |
The service's own log, as JSON lines. 4 MiB per file, with two older files kept. |
tls.crt, tls.key |
Network mode only. The service's certificate and its key. |
version.key |
A random key the service uses to tell when data that holds secrets has changed. |
setup-token |
Network mode only. The first-run setup token. It exists only until the first administrator is created. |
The state directory also holds display-access.json once SiteManager has pinned a display's certificate or secured a display. It holds each display's remembered certificate, its access key and the setting Secure new displays when they are added. It is readable only by the account that runs the service (on Windows, SYSTEM and Administrators). The keys in it are never exported and never appear in the web pages, the JSON API, the command line, the logs, the audit log or the diagnostics bundle. Copy the whole state directory when you back up or move SiteManager: a copy carries the keys, and nothing else does. See Secure your displays.
site.json has a schema number. The current schema is 5. When the service loads an older file, it upgrades it and keeps the original bytes next to it, for example as site.json.v4.bak. It never overwrites such a backup. A SiteManager that is older than the file's schema refuses to load it, instead of dropping fields it does not know. So when more than one SiteManager works on a site, upgrade all of them together.
Local mode does not create or change auth.json, tls.crt, tls.key or setup-token, and never forces setup. If they exist from an earlier network-mode run, they stay as they are, and they are used again when the service next listens on the network.
The state directory holds the credentials of alert channels and, if you use network mode, password hashes and the certificate key. Keep it private. On Linux it is readable by root only, and on Windows by SYSTEM and Administrators only. A profile that holds a secret, for example a proxy password, is stored in site.json, which is readable only by the account that runs the service.
The service writes its log to the file above and to standard error. Under systemd, standard error is the journal (journalctl -u sitemanagerd). On Windows, a failure to start is also written to the Application event log under the source SiteManager. Credentials are never written to the log.
To keep a copy of your site, stop the service and copy the state directory.
Deleting a site
Uninstalling does not delete the state directory. To remove all data, delete it yourself. See the Uninstalling section of your platform: Windows, Linux or macOS.