The System Operator web console is the browser-based control surface for a pyCluster node.
Default local URL:
http://127.0.0.1:8080/sysop/
This UI is meant to be the day-to-day operator workspace, not just a diagnostics page.
Use a local callsign that has:
- a configured password
System Operatoraccess on this node
The login page gives explicit feedback for:
- bad password
- blocked callsign
- web login denied by policy
The console is organized into these main views:
Node SettingsUsersPeers and LinksProtocol HealthOperator ToolsTelemetry
The left sidebar also includes:
At A Glance
The masthead includes:
- current operator session state
Refresh Console- theme toggle
This view controls local node identity and welcome-flow presentation.
Node Call / SSIDNode AliasOwner Name (QRA)Location (QTH)Grid SquareTelnet PortsNode BrandWelcome TitleWebsite URLSupport Contact
Welcome BodyMOTDLogin Tip
Show node status after MOTDRequire telnet password on fallback paths
Require registration for usersRequire verified email for webRequire verified email for telnetRegistration Grace LoginsEnable MFA login challengesRequire MFA challenge for sysop loginsRequire MFA challenge for user loginsMFA IssuerOTP TTL (seconds)OTP LengthOTP AttemptsOTP Resend Cooldown (seconds)
SMTP HostSMTP PortSMTP UsernameSMTP PasswordFrom EmailFrom NameUse STARTTLSUse SSLSend MFA Test Email
Save Node Settings
This section controls:
- telnet welcome flow
- node presentation shown to users
- branding and contact metadata used by the public-facing web experience
The Users view is a single workspace with a browser area above the editor.
Browser tabs:
Local UsersBlocked UsersClustersSystem OperatorsRequests
This is the main user editor.
Fields:
CallsignAccess LevelName (QRA)Location (QTH)Grid SquareEmailPasswordHome NodeNotes / Block Reason
Actions:
New UserUpdate UserSet PasswordRemove UserSend VerificationReset MFA
Password behavior:
- normal password text sets or changes the password
- entering
CLEARand thenSet Passwordclears it
Access levels:
noneusersysopblocked
Default behavior by level:
none: login, chat, WX, WCY, and WWV remain allowed by default; spot and announce posting are off until access is explicitly granteduser: normal login and posting accesssysop: sysop login plus full administrative accessblocked: login denied for the base callsign and matching SSIDs
If Blocked is selected:
- login is blocked for the base callsign and matching SSIDs
- the notes field also serves as the block reason
Per-user policy matrix.
Channels:
TELNETWEB
Capabilities:
LoginSpotsChatAnnounceWXWCYWWV
Actions:
Add AllRemove All
This is the operational source of truth for where a user may log in and what they may post.
Explicit access-matrix overrides take precedence over the default behavior implied by the selected access level.
This section also carries:
Access LevelEmail MFA OverrideVerifiedLocked
Verified and Locked are read-only state indicators in the matrix. They are not separate editor buttons.
The Clusters browser tab shows any user record with a real cluster-node family such as pycluster or dxspider.
This view manages node-link peers and shows live link state.
Main fields:
Peer NameTransport AddressCluster FamilyPeer Password (Optional)Retry Automatically
Peer password note:
- some peer operators require a password for node-to-node login
- the password is optional
- it should be coordinated with the remote peer operator
Peer rows distinguish:
Dial-outAccepted
Meaning:
Dial-out: this node initiates the connection and can retry itAccepted: the remote node connects inbound, so no local DSN or retry is used
New PeerSave PeerRefreshConnectDisconnect
Columns:
PeerRoleStatusTrafficHealth
The Role cell now carries:
- peer family
- retry mode
- host / transport endpoint
- learned peer software/version when it has been seen from
PC18
This view is intended to make peer operations understandable without dropping into raw counters or logs.
This view focuses on peer state, alerting, and protocol history.
Stale MinutesFlap ScoreFlap Window SecondsHistory Limit
Save ThresholdsReload HistoryReset Protocol HistoryReset Policy Drops
PeersHealthyHistoryAlerts
Columns:
PeerHealthAgeFlapStatus
Columns:
PeerTotalLoop DropsReasons
Columns:
PeerWhenKeyFromTo
This area is the main operator view for peer health and protocol instability.
This view is for authenticated operator posting.
DX CallFrequency kHzSpot Info
Announce ScopeMessage / Bulletin Text
Post SpotChatAnnounceWCYWWVWX
This uses the current logged-in sysop identity.
This view groups runtime visibility and operational history.
Cards:
NodeUptimeStored SpotsTelnet SessionsWeb Sessions
Columns:
FrequencyDXWhenSpotterInfoNode
Includes:
- category filter
- reload button
Categories currently exposed:
System OperatorUserConfigControlConnectDisconnect
Includes:
Current Bans
Includes:
Reload SecurityRecent Auth Failures
Recent auth failures show:
- when
- channel
- IP
- callsign
- reason
Current bans show:
fail2banjail- IP
This area is the main operator-facing view for login abuse and automatic bans.
The user-management tables now surface recorded login path data directly in the table view.
Visible columns now include:
Last PathforSystem OperatorsLast PathforBlocked UsersLast PathforLocal Users
This is intended to expose the recorded interface, source address, listener port, and related path detail without requiring hover-only inspection.
- the console is meant to reduce the need for direct database edits or log-tail-only operations
- most actions write to the same underlying state used by the telnet command surface
- the UI tries to show actual operator intent instead of raw internal values where possible
The sysop web console does not replace telnet. It complements it.
Use the web console for:
- structured editing
- runtime visibility
- peer and user management
Use telnet when you want:
- command-line workflows
- quick operator actions
- traditional cluster interaction