2.0 Configuration
Synchronet configuration is split across several layers. Knowing which layer owns a setting saves hours of hunting.
Where settings live
| Layer | Typical contents | Tool |
|---|---|---|
SCFG / INI in ctrl/ |
System identity, nodes, message/file areas, external programs, servers menu | scfg / Control Panel → Configure |
sbbs.ini |
Listeners, threads, JavaScript engine, login-attempt policy, Unix user, per-server toggles | Text editor; some UI in Control Panel |
.cfg text files in ctrl/ |
Aliases, DNSBL lists, spam block lists, FTP aliases, twit list, etc. | Text editor (comments document format) |
text/ and display files |
Menus, prompts, logon screens, help | Editor + Ctrl-A / @-codes |
Modules / mods/ |
JS overrides of stock exec/ scripts |
Copy-on-write into mods/ |
The configuration hub page on the wiki is mostly an index into OS-specific, messaging, file-transfer, web, and security topics. Start there when you do not yet know the page name; use SCFG when you know you are changing BBS content structure.
Practical first-week configuration order:
- System name, location, sysop alias, QWK-ID (Message Options).
- New User Values (level, flags, credits, default editor/shell).
- Nodes (enough for expected simultaneous terminal users).
- Local message groups/subs and file libraries/directories.
- Server enable/disable in
sbbs.ini/ SCFG Servers. - Networks (QWK / FidoNet) only after local mail works.
Wiki: https://wiki.synchro.net/config:index · https://wiki.synchro.net/util:SCFG
2.5 Directories
Default tree (short, lower-case names under the install root):
/sbbs/ctrl/ configuration, sbbs.ini, .cfg files, many .ini files
../data/ user database, message bases, file databases, mail, logs
../exec/ native binaries and stock JS modules
../mods/ your JS/module overrides (preferred over editing exec/)
../node1/ per-node working directories (node2, node3, …)
../text/ display files, menus, text-file section content
../web/ web server files (legacy tree)
../webv4/ newer web UI tree when used
../xtrn/ external programs / doors install area
On Windows the same layout appears under e.g. C:\SBBS\ with backslashes.
Rules of thumb
- SCFG and
sbbs.inican relocate directories; if you move them, update environment variables (SBBSCTRL, and any documented path env vars) to match. - Keep DOS-compatible directory names if 16-bit doors/archivers run on the system — names longer than 8 characters or odd characters break those tools.
- Put customizations in
mods/andtext/rather than patching stockexec/files, so upgrades are less painful. - Each node needs its own directory; node count in SCFG must stay consistent with what
sbbsis told to serve (see 3.2).
Wiki: https://wiki.synchro.net/dir:index
3.0 Adding Nodes
A node is one simultaneous terminal-server user slot. Create, delete, and configure nodes in SCFG under Nodes.
Creating, deleting, copying
In the SCFG Nodes list:
Insor+— add a nodeDelor-— delete a node- Enter — configure the selected node
- Copy configuration from one node to another when you want identical settings (keep both nodes present first, then use SCFG’s copy workflow described on the wiki)
What you configure per node
Typical per-node fields include phone number / connection method legacy fields, logon requirements, toggle options, and paths. For modern Internet-only boards, many dial-up oriented fields stay at defaults; the important part is having enough nodes for peak concurrent SSH/Telnet/RLogin sessions.
Under-provisioning nodes means callers see “no nodes available.” Over-provisioning mostly costs disk for node directories and a bit of scheduler overhead — still, match node count to real concurrency plus a small cushion.
Wiki: https://wiki.synchro.net/config:nodes
3.1 Node Display Control Utility (node)
The node utility inspects and manipulates node status from the OS command line (who is on, waiting state, interrupt, etc.). Sysops use it when:
- The Control Panel / local display is unavailable (headless Unix).
- A node is stuck “in use” after a crash and needs a status reset.
- You are scripting monitoring (cron, MQTT consumers, etc.).
Run node -? / node --help from exec for the current switch list. It expects a working Synchronet data/ctrl layout (same machine as the BBS).
Wiki: https://wiki.synchro.net/util:node
3.2 Last node is set in sbbs.ini after SCFG
SCFG creates node records and node directories, but the Terminal Server’s last/highest node (how many nodes sbbs will actually offer) is controlled in ctrl/sbbs.ini (Terminal Server / [BBS] related settings — see the live sbbs.ini reference). After adding nodes in SCFG:
- Confirm node directories exist (
node5, …). - Raise the configured last node / node count in
sbbs.iniif required. - Recycle the Terminal Server thread or restart
sbbsso the new limit applies.
If SCFG shows 10 nodes but sbbs.ini still caps lower, callers will never reach the higher nodes.
Wiki: https://wiki.synchro.net/config:sbbs.ini · https://wiki.synchro.net/config:nodes
4.0 Configuration Files (.cfg files)
Files matching *.cfg in ctrl/ are plain text with ad-hoc formats. The stock file usually documents itself in leading comments. Over time Synchronet has been moving toward INI and other structured formats; treat these .cfg files as still-authoritative until the wiki marks them replaced.
Common .cfg files
| File | Role (high level) |
|---|---|
alias.cfg |
Name/address aliases |
attr.cfg |
Attribute-related settings |
dns_blacklist.cfg |
DNSBL zones for the mail server |
dnsbl_exempt.cfg |
Hosts exempt from DNSBL checks |
domains.cfg |
Mail/domain related list |
ftpalias.cfg |
FTP path aliases |
newslink.cfg |
NewsLink settings |
relay.cfg |
SMTP relay related |
sbbsecho.cfg |
Legacy/alternate SBBSecho config surface (also see sbbsecho.ini) |
spambait.cfg |
Spam bait addresses |
spamblock.cfg |
Blocked spam sources |
spamblock_exempt.cfg |
Exemptions from spamblock |
twitlist.cfg |
Names/strings to filter from user content |
Edit carefully: bad syntax can fail closed (block everyone) or fail open (block no one), depending on the file. Keep a backup copy beside the original before large edits. Default contents are linked from the wiki to the GitLab ctrl/ tree for comparison.
Wiki: https://wiki.synchro.net/config:cfg_files
sbbs.ini (cross-cutting)
Although outlined mainly via nodes (3.2), sbbs.ini is the master switchboard for servers:
- Interface bind addresses, ports, TLS
- JavaScript heap / file settings
- Failed login delay, throttle, hack-log threshold, temporary ban, auto-filter
- Max concurrent unauthenticated connections
- Per-server enable and login ARS
Read the full option tables on the wiki when changing production hosts — names in the Control Panel UI map 1:1 to INI keys documented there.
Wiki: https://wiki.synchro.net/config:sbbs.ini
Configuration checklist
- [ ]
SBBSCTRL/ install path consistent across shells and service units - [ ] Directory tree matches SCFG paths
- [ ] Node count: SCFG ↔ disk ↔
sbbs.ini - [ ] New-user defaults reviewed
- [ ]
.cfgsecurity/spam lists understood before enabling SMTP publicly - [ ] Stock
exec/left stock; overrides inmods/
Wiki: https://wiki.synchro.net/config:index · https://wiki.synchro.net/dir:index · https://wiki.synchro.net/config:nodes · https://wiki.synchro.net/util:node · https://wiki.synchro.net/config:sbbs.ini · https://wiki.synchro.net/config:cfg_files