Door Setup

Last edited 2026-08-03 01:34 EDT · history · 2 views

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 = builtin_web ("Built-in Web
Game" in the dropdown). 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:

⚠ 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, just fill in
the fields above in the order they're labeled.

3. DOS doors

The full setup — DOS exe + DOSBox/dosemu2 + TCP nullmodem bridge.
Detailed in DOS Door Recipe. Short version:

  1. Install DOSBox-staging (or dosemu2, for the door_dosemu type).
  2. Drop the door's files under <install>/doors/<door-name>/.
  3. Register the game in the admin UI with type door_dos (or
    door_dosemu): Executable Path, Working Directory,
    Command Line Args, Drop File Type, Drop File Path.
    That's it — there's no bridge-port or raw DOSBox/dosemu2
    command-line field to fill in by hand. The bridge picks a free
    TCP port itself at launch, and the emulator invocation (including
    the serial1=nullmodem/mount setup) is built automatically from
    the fields above.
  4. Test by playing it. Watch
    journalctl -u anetbbs -f for bridge bytes-in/out (telnet, SSH,
    and rlogin are one unified systemd service, not separate units).

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.

5. Bundled Python doors

Some doors ship as pure Python and need no setup at all — type
builtin_python, run natively in the terminal process, no external
binary, DOSBox, dosemu2, or jsexec required. ANetCRAFT (ANetBBS's
own Minecraft-inspired 2D survival game) is the current example and
is pre-seeded active by default. Nothing to register — it's
already in /games/ on a fresh install.

This is a separate codebase from the standalone ANetCRAFT-Door
project (a C# .NET Minecraft-replica door with the same name) — don't
confuse the two when troubleshooting.

Per-door config tips

Debugging