/healthz health check endpoint.
Server Logs
Admin → Logs The Logs page streams the tail of every supervisord-managed process log directly into your browser — no SSH access required. Log sources include:- loco-server — the main application server
- dcc-bus daemons — one per configured command station
- Valkey (Redis) — the sidecar used for audit log and session storage
How to use
- Open Admin → Logs in the left sidebar.
- Choose a source group (process name) from the first dropdown.
- Choose a log file from the second dropdown (each process may have a current log and rotated archives).
- Set the tail lines field to control how many of the most recent lines are loaded (default: 500; maximum: 10,000).
- Click Refresh to reload the latest content at any time.
Logs can be read in the UI but cannot be downloaded directly. For offline analysis or log shipping, access the log files on the server directly — they are standard text files managed by supervisord and written to the configured log directory.
DCC Bus Slots
Admin → DCC Bus SlotsWhat slots are
A DCC command station keeps an internal table of active locomotives called the slot table. Each slot holds one DCC address and tracks its speed, direction, and which user is driving it. The number of available slots depends on the command station type:
LocoNet’s fixed-size slot table is a significant operational constraint. If all 80 slots are occupied, new locomotives cannot be activated until an existing slot is freed.
What this page shows
The DCC Bus Slots page connects to the selected command station over a live WebSocket and displays a real-time snapshot of the slot table. For each active lease you can see:
A slot budget bar at the top of the page shows total used vs. maximum slots and remaining headroom. A separate per-user table shows how many slots each user is currently holding relative to their per-user cap (
maxPerUser).
A slot row highlighted in amber means the holder is a remote client (Z21 or WiThrottle handset) that hasn’t sent a drive command recently and is approaching the idle timeout.
Releasing a stale slot
- Open Admin → DCC Bus Slots.
- Select the command station from the dropdown.
- Find the slot you want to free — look for entries with a holder that is no longer connected or a DCC address that is not in use.
- Click Release in the Actions column.
- Confirm the release in the dialog that appears.
Audit Log
The Audit Log is available to all authenticated users from the main navigation — it is not restricted to admins. The log shows a chronological table of significant actions taken in BigFred, with a timestamp and a plain-English description of each event. Events recorded include:- User logins and logouts
- Vehicle registrations and modifications
- Lease grants and revocations (who took or released control of a locomotive)
- Command station configuration changes
- Admin actions (user management, layout changes, etc.)
How to use
Navigate to Audit Log in the main sidebar. The page loads the last 200 entries by default. You can request up to 500 entries using the API directly (/api/v1/audit-log?limit=500).
Click Refresh at any time to pull the latest entries.
Each row shows:
- Time — the local date and time the event occurred
- Event — a human-readable description including the actor’s login name and relevant details
- Trace who made a specific change and when
- Review session history after an unexpected state change
- Verify that a vehicle hand-off or lease revocation was recorded correctly
Audit entries are stored in an internal message stream and trimmed automatically to the most recent 5,000 entries. If Valkey (Redis) is unavailable when BigFred starts, the audit service is disabled and the log will appear empty. See Troubleshooting for how to resolve this.
Health Check
BigFred exposes a lightweight liveness endpoint you can poll from a router, uptime monitor, or shell script:200 OK and the plain-text body ok.
Example:
- Confirm BigFred started successfully after a reboot
- Set up an uptime monitor (UptimeRobot, Healthchecks.io, router watchdog, etc.)
- Script a readiness check before running automated tests against the API