Devices
Shows exactly the fields your role has access to - other users may see more or less.
My Alerts
Mute categories you don't want to be notified about. This only affects your own notifications.
Staging
Build a complete configuration offline, review exactly what it will change on a device, then commit - nothing touches live hardware until you do.
New session
Fixtures
Add a fixture
Scenes
Add a scene
One action per scene from this form - add the scene, then edit its JSON below for multi-action scenes.
Schedules
Alert recipients & metric rules
Additions (applied automatically, no conflict)
None
Conflicts (same name already exists on the device with different content)
None
Unresolved conflicts default to Skip - the device's existing item wins, nothing is overwritten without an explicit choice.
Campus
Locate controllers on a satellite view, trace the buildings that have lights, and sequence them to sync an effect across the whole site.
Find a location
Controllers on this site
Click "Place" then click the map to set a controller's location.
Building traces
Campus timing
Add at least one trace to see timing.
Click the map to add points along the building. Click "Finish trace" when done.
System
Server health and configuration - refreshed each time you open this tab.
How to actually reach this service from other devices
The IP address(es) below are what this container itself can see on its own
network interface - under the standard Docker port-mapping this project uses, that's almost
certainly not the address other devices on your network should use. From another
device (a node, a controller, a browser on a different machine), use your host
machine's own LAN IP on port instead - see
SETUP.md if that's not already working. This distinction is shown honestly here rather than
guessed at, since getting it wrong would be actively misleading, not just unhelpful.
Server
version-
hostname-
container IP(s)-
listening port-
uptime-
Runtime
Python-
platform-
database-
Resources
disk free-
memory-
At a glance
accounts-
devices-
users-
active tunnels-
Fleet versions
What every registered controller last reported on its 30-second check-in - a controller that's never sent a version is either offline or running firmware from before this reporting existed, not necessarily a problem.
Backup & restore
Every account, device, user, role, staging session, and setting - as one file. A real safety net independent of however you actually perform an update.
Restore from a backup
Replaces everything currently in the database with what's in the uploaded file. The current state is saved to pre-restore-backup.db first, in case this wasn't the file you meant to restore - but this is still a real, destructive action, not a preview.
Network test
Real checks run right now, not cached - DNS, raw TCP, and a full HTTP round trip, layered so a failure points at roughly where in the stack the problem is. Also tests this server's actual configured dependencies (email/SMS alerting), if any are set.
Device subdomain suffix
Controls the "Connect" links on the Devices tab - what {device_id} gets appended to when reaching a device directly. Changes take effect immediately, no restart needed.
currently set to-
example device URL-
sslip.io helper (local/dev use - free, no DNS setup needed)
Enter this server's real LAN IP (not the container-internal one above) and generate the correctly formatted suffix automatically.
Admin
Fleet-wide management - visible because your role has vendor-wide access.
Accounts
Roles
Users
Tiers
Alert recipients (vendor-wide fleet alerts)
Separate from "My Alerts" - these receive notifications for fleet-wide events (a device going offline, etc), not just your own account.