Door Setup
How to register a new door so users can run it from the menu.
1. Web doors
The simplest case — these live entirely in the browser.
/admin/games/ → Add Game. Type = web. Provide the HTML
template path (relative to anetbbs/templates/games/web/). That's it.
2. Remote rlogin doors (Synchronet game servers)
Most "play LORD on someone else's BBS" setups go through rlogin.
/admin/games/ → Add Game. Type = door_rlogin. Fields:
- Host — the remote BBS hostname or IP
- Port — usually 513
- Remote username — the rlogin server-side login name. For
Synchronet game-server doors this is typicallydoor:LORDor
similar; check with the remote sysop. - Send password — the session password agreed with the remote
- Local username pass-through — if checked, your local
user's name is sent as the rlogin client-username. Otherwise a
generic guest name is used.
⚠ Synchronet-flavored rlogin uses password first, username
second — opposite of RFC 1282. ANetBBS's outbound client
already does this; you don't need to flip anything.
3. DOS doors
The full setup — DOS exe + DOSBox + TCP nullmodem bridge. Detailed
in DOS Door Recipe. Short version:
- Install DOSBox-staging.
- Drop the door's files under
/var/lib/anetbbs/doors/<door-name>/. - Create a DOSBox config that wires
serial1=nullmodem server:<port>andserial2=nullmodem client:<host>:<port>. - Register the game in the admin UI with type
door_dos. Set the
bridge port and the DOSBox command line. - Test by playing it. Watch
journalctl -u anetbbs-telnet -ffor bridge bytes-in/out.
DOS Door Recipe walks through LORD as a concrete example,
including the LORD Setup gotchas.
4. Native Linux doors
A bare door_native type — invoked with the dropfile path on
argv. Works for forks like lord-linux or any compliant
DOOR.SYS-aware binary.
Per-door config tips
- Time limits: set on the Game row. The BBS enforces them with
a watchdog that closes the user's writer when time runs out. - Max nodes: how many users can be in the door simultaneously.
Most classic DOS doors are single-user; set 1. - Idle timeout: if the user's terminal goes silent for N
minutes the watchdog kicks them. Useful for doors that don't
detect carrier loss.
Debugging
/admin/games/<id>/testdoes a launch from the admin view (sysop
account, time/idle limits respected).- The Game row has a Last error field that the bridge writes to
on launch failure. - For DOS doors, run DOSBox interactively to see what the bridge is
feeding it — the DosBridge page has the recipe.