Sysop Guide
Website reading edition · D1–D3 accepted source, schema 37. The older 0.1.0 binary download predates this work. Current status · Start here.
The two server modes
SPITFIRE NG currently runs in the foreground. Choose one mode for a board:
spitfire run /path/to/board/spitfire.toml
run starts listeners and writes runtime logs to the terminal. Stop it with
Ctrl-C.
spitfire console /path/to/board/spitfire.toml
console starts the same listeners and keeps an operator command prompt in
that process. It is not an attachable client. Do not start console beside an
existing run; the board operation lock prevents unsafe dual ownership.
There is no daemon/service unit, background launcher, remote administration, or log rotation in this Development Preview. If you wrap the process with host service management, treat that wrapper as local deployment work and retain clean signal delivery for shutdown.
Read-only status
From another terminal:
spitfire status /path/to/board/spitfire.toml
Status shows product/board identity, listeners, node state, and the current
public-directory/last-call/location/caller-additions policy with its version.
For an active
authenticated session it also reports the engine-known transport, reported
terminal type when present, ANSI state, effective encoding, negotiated size,
effective page length, locale, profile, menu mode/context, caller security,
configured Sysop threshold, visible authorized action count, and the selected
menu renderer path. generated-stock is the engine's equal-column renderer;
exact-security-board-override is matching BBS/CLR artwork from this board's
display/; exact-security-active-profile is matching managed artwork from
the selected package; expert-suppressed means expert mode intentionally
omitted menu presentation. A missing terminal type is reported as unknown;
SPITFIRE NG does not guess application names such as Qodem or SyncTERM. These
diagnostics are node-local and contain no password, contact data, remote
address, or private caller profile fields.
A clean stop removes the runtime status snapshot. After a crash,
published/running or not cleanly stopped means exactly that: the file may be stale. Confirm the host
process separately. Do not delete operation-lock files; lock ownership, not
their presence, determines whether the board is busy.
Live operator monitor
Current source also builds sfmonitor, a separate keyboard-first application
for leaving the board's live status open in another terminal:
sfmonitor --board /path/to/board/spitfire.toml
It uses the running daemon's protected local operator service and shows the
same board, node, activity, statistics, notification, caller, and maintenance
facts as the typed operator client. It does not read the database or logs.
Bootstrap remains read-only; explicitly enrolled capabilities enable B021-B
time adjustment, acknowledgement, page/chat, caller disconnect, and confirmed
daemon-only shutdown. Maintenance execution and configuration remain unavailable.
Press Q to quit only the monitor. See Using sfmonitor
for explicit enrollment, confirmation, privacy, and the complete keyboard
and troubleshooting guide.
Operator console commands
The console prints its command list at startup:
| Command | Purpose |
|---|---|
STATUS |
Show current node/session/caller/transport state. |
PAGES |
List caller page requests by session and node. |
AVAILABLE ON / AVAILABLE OFF |
Allow or refuse caller Page the Sysop requests. |
ANSWER <session> |
Enter line chat for one pending page; /Q ends chat. |
DECLINE <session> |
Decline one pending page. |
DISCONNECT <session> |
Request a controlled session disconnect. |
CALLERS |
List caller IDs, names, security, state, and call count without credentials. |
PROFILE <name> |
Show that caller's private enabled profile fields. |
PROFILE-SET <field> <name>|<value> |
Set or clear an authorized profile field. |
INFO-POLICY |
Show current public-directory and caller-addition policy/version. |
INFO-POLICY-SET ... |
Replace public-information policy using its expected version. |
BBS-LIST / BBS-ADD |
List all native Other BBS rows or append an operator row. |
BBS-EDIT / BBS-MOVE / BBS-STATE |
Versioned edit, atomic reorder, and disable/restore of Other BBS rows. |
ENABLE <name> / DISABLE <name> |
Change account admission state. |
SECURITY <level> <name> |
Set numerical caller security. |
QUIT |
Stop the console-owned server and return to the shell. |
Profile field names are address1, address2, city, region, postal,
country, phone, email, and birthday. Birthday uses YYYY-MM-DD; an
empty value after | clears a field.
Caller-facing Sysop identity
Host administration and BBS identity are separate:
board.sysopis the caller-visible display name;caller.sysop_caller_nameis an ordinary authenticated caller account;caller.sysop_securityis the traditional BBS authority threshold; and- operating the host shell does not automatically authenticate a BBS caller.
Log in through a terminal as the Sysop caller to post messages, upload files,
use Comment to Sysop receipt paths, and see the security-gated @ Sysop menu.
The current caller-facing Sysop menu provides a safe navigation boundary;
historical maintenance commands outside the implemented core report
unavailable. Use the host config, console, backup, and restore commands for
their documented operations. See Public Information
for exact M043 console syntax and privacy rules.
Routine operation
Before startup:
- Confirm the prior process stopped cleanly.
- Run
spitfire status. - Check that expected bind addresses and ports are shown.
- Start
runorconsole, never both.
While online:
- Watch startup/listener errors and session logs.
- Use
statusor consoleSTATUSfor nodes. - If using console paging, set availability deliberately.
- Do not run configuration, backup, or restore against the live board.
At shutdown:
- Let callers log off or disconnect sessions deliberately.
- Use Ctrl-C in
run, orQUITinconsole. - Wait for
listeners shut down cleanly. - Run status and create a cold backup on the selected schedule.
Network security
Telnet, RAW TCP, and RLogin are compatibility protocols. They expose caller passwords and content to anyone able to observe the connection. Default loopback binds are deliberate. Restrict non-loopback listeners to an appropriate trusted network/VPN and firewall, or use the separately configured SSH caller transport.
N2 QWK networking
The N2 typed QWK partner/queue workflow is documented in the Sysop manual. Caller offline QWK remains separate. Native FTN and BinkP are implemented through their own authority and transport. See QWK networking for the implemented scope and interoperability limits.
Source: public docs/operator/sysop-guide.md. Navigation is adapted for this site; stale overview version/networking labels are reconciled with the accepted D3 checkpoint.