Configuration Guide
Configuration Guide
This guide covers the config.toml options for MeshBBS.
BBS Settings
Core BBS settings control name, sysop, and security behavior.
[bbs]
name = "meshbbs Station"
sysop = "sysop"
location = "Your Location"
description = "A bulletin board system for mesh networks"
max_users = 100
session_timeout = 10 # minutes of inactivity before automatic logout
welcome_message = "Welcome to this Mesh BBS"
# Public command prefix (single character)
# Must be one of: ^ ! + $ / >
# Default: "^"
public_command_prefix = "^"
# Allow public channel LOGIN command (default: true)
# When set to false, users must initiate login via direct message only.
# This enhances security by preventing username enumeration on public channels.
allow_public_login = true
Security considerations:
- When
allow_public_login = false, users cannot use<prefix>LOGIN usernameon public channels - Users must open a direct message and use
LOGIN usernameorHIto authenticate - This prevents potential username enumeration attacks and keeps authentication private
- Existing sessions and DM-based login are unaffected by this setting
Ident Beacon
Periodic station identification broadcast on the public channel.
[ident_beacon]
# Enable or disable the periodic ident beacon
enabled = true
# Frequency of ident beacon broadcasts
# Options: "5min", "15min", "30min", "1hour", "2hours", "4hours"
# Default: "15min"
frequency = "15min"
Behavior:
- Message format:
[IDENT] <BBS name> (<short node id>) - <YYYY-MM-DD HH:MM:SS> UTC - Type <prefix>HELP for commands(default prefix^) - Short node id is 24-bit hex (e.g., 0x1A2B3C); falls back to config value or “Unknown”.
- Scheduling is in UTC and respects the selected boundary (e.g., every 5 minutes at :00/:05/:10/…).
- Startup gating:
- If the server has a Meshtastic device instance, ident waits for initial sync to complete.
- If using the reader/writer pattern without a device instance, ident begins after a short startup grace period, then follows UTC boundaries.
- Duplicate prevention avoids multiple idents within the same minute.
Logging
[logging]
level = "info" # info | debug | warn | error
file = "meshbbs.log" # optional log file
security_file = "meshbbs-security.log" # optional security/audit log file
Meshtastic
[meshtastic]
port = "/dev/tty.usbserial-XXXXX"
baud_rate = 115200
# node_id = "0x1234ABCD" # optional; decimal or 0xHEX; used only as a display fallback
channel = 0
# Optional tuning
min_send_gap_ms = 2000
post_dm_broadcast_gap_ms = 1200
dm_to_dm_gap_ms = 600
For all available fields, check the generated API docs or src/config/mod.rs for defaults and serde names.