Dashboard
System overview ·
Live Activity
Security Status
Server hardening and security posture
TLS Certificates
Public-facing HTTPS certificates served by the edge gateway. Auto-renewed via Let's Encrypt certbot timer. Green = more than 30 days. Amber = 8 to 30 days. Red = 7 days or fewer.
| Domain | Issuer | Expires | Days remaining | Status |
|---|---|---|---|---|
| Click Refresh to load. | ||||
Who is told
Everyone on this list gets the warnings, the failures and the Monday note. If the list is empty the warnings still go out, to the address written into the watcher, with a line saying nobody is on the list yet. Silence is never an option.
| Address | Added by | Added | |
|---|---|---|---|
| Click Refresh to load. | |||
Apple App Store Connect API
Health of the connection to Apple's developer API used for device registration, profile regeneration, and certificate management. Green = working. Amber = warning. Red = broken.
Backups
Daily automated backup to off-host S3 storage. Green = backup ran within last 24 hours. Amber = 2 to 3 days. Red = 4 days or more without a successful backup.
Services
SOLUS Location
Infrastructure
| Loading... |
Users
Registered SOLUS accounts
| Name | Username | Account Status | Last Active | App Registered? | App Version | Device Status | Manage Account |
|---|---|---|---|---|---|---|---|
| Loading... | |||||||
Conversations
Conversations on the messaging server
| Room ID | Members | Last Activity | Actions |
|---|---|---|---|
| Loading... | |||
Call Log
Voice call history
| Time | Caller | Recipient | Status | Duration |
|---|---|---|---|---|
| Loading... | ||||
Broadcast Message
Sent to everyone in the broadcast room as plain text. SOLUS phones do not show it: they hide every message that is not encrypted.
Broadcast History
App Releases
SOLUS iOS device distribution
Upload New Release
Release History
| Version | Build | Size | Uploaded | By | Status | Actions |
|---|---|---|---|---|---|---|
| Loading... | ||||||
Audit Log
Security event record, hash-chained and anchored off the server every hour
| Time | User | Event | Category | IP Address | Outcome |
|---|---|---|---|---|---|
| Loading... | |||||
Device Keys
Devices added and removed, security keys set and replaced, approvals, and anything refused
| Time | User | Device | Event | Detail | IP Address |
|---|---|---|---|---|---|
| Loading... | |||||
Vault
The vault is a locked safe that holds the most sensitive items SOLUS owns: the Apple signing certificate and password used to sign and release the iOS app. Storing these in the vault means no one (not even a system administrator) can read them directly from disk. The vault only opens when 3 of 5 unseal keys, held by separate trusted people, are entered together. In normal operation the vault stays open. It only locks itself when the server is restarted, and an administrator must open it again before iOS builds can be signed.
Is the vault open or locked?
Tells you whether the vault is currently open or locked. When it is locked, the SOLUS admin service cannot read the Apple signing items, which means new iOS builds cannot be signed or released.
Open the vault
Paste one unseal key, then click Submit key. Repeat with two more keys (different ones each time) until the vault is fully open. The five unseal keys live in the password managers of five separate trusted staff. No one person can open the vault on their own.
Test the secrets
Reads each of the Apple signing items from the vault to confirm they are stored correctly and the SOLUS admin service can read them. Run this after opening the vault to be sure everything works. Three rows showing OK means all good.
Backup copy
An extra encrypted copy of the Apple signing items, kept on disk separately from the vault itself. Used only for disaster recovery if the vault is ever destroyed and has to be rebuilt from scratch. The file is locked with a 50-character password held in a password manager. Without that password the file is useless to anyone who finds it.
Activity log
A permanent record of every time someone or something reads a secret from the vault. Used to spot unauthorised access. Each line shows the time and what was read. The actual secret values are never written to this log. Entries cannot be edited or deleted.
System Logs
Real-time service output
Federation
Federation lets users on this SOLUS deployment send messages to and receive messages from users on another agency's SOLUS deployment, when both agencies have explicitly approved each other. This is how interagency communication works. It is controlled by a strict allowlist: only the named SOLUS deployments below can exchange messages with this one. Federation is disabled by default. Internal messaging between users on this deployment does not use federation and is unaffected by anything on this page.
Nothing on this page changes SOLUS. The console cannot read or change federation yet, so this is a preview kept in this browser only. Whether federation is on is set on the messaging server.
Preview
Change your password
Enter your current password and the code your authenticator shows now. When it changes, you are signed out of the console everywhere else; this window stays signed in.
Settings
Agency configuration. All changes are logged to the audit trail.
The server keeps every message at least this long, and refuses a disappearing time shorter than this for any conversation.
How long messages stay in a conversation. People choose a time for each conversation between the shortest and the longest. Where nobody has chosen, the default applies. Leave a box at 0 for none.
The server refuses a delete or an edit as soon as it is turned off here.
While a hold is on a person or a conversation, the server deletes none of its messages: no purge when their time runs out, no delete by a person, no conversation delete and no erase. A person's hold covers every conversation they are or were in. The apps still take a message off the screen when its time runs out, and delete their own copies.
Select the regulatory framework that applies to your agency. The preset will suggest recommended settings. You must review and confirm before any changes are applied.
Every failed or blocked sign in or request, and security events such as a person suspended or a certificate revoked, go to the webhook as they happen, and to the alert email, except a single failed sign in.
Log and track discovered vulnerabilities. Included in audit exports.
These values appear on the Containers page. Update them to reflect your deployment.
Every setting here reaches the iPhone and desktop apps from this console, over each device's certificate. Version 0.
The starting value keeps SOLUS working and tells people what is wrong.
Every device checks the policy and every wipe order with this key, from the SOLUS vault. When you change it, the old key signs over to the new one, and devices follow.
Off, the starting value, sends nothing. On, every service's log, this server's sign in and audit logs and the console's audit records go to your log server as they happen, as JSON with UTC times to the millisecond. The connection is TLS 1.3 with AES-256-GCM only, P-384 key exchange and certificates both ways, and your CA's revocation list is checked. If your server cannot be reached, records wait on this server's disk and are sent once it can. Sending starts when you turn it on; earlier lines stay in each service's own log here. Every service's own logs stay here too, so Logs keeps working.