• Door Servers / Docker

    From TheWebExpert@21:3/254 to All on Wed Sep 2 14:03:34 2026
    I have a problem with getting a door server to work.

    What I wanted to do is to have a docker container running that accepts rlogin and spawns dosbox, and sends the game out.

    It works pretty good, but does not workwith Tradewars and OO2, the ansi animation fails, the intro graphics to either glitch out

    Does anyone have a working docker container to run dos doors via rlogin?

    I am trying to avoid spinning up a VM, anyone figure this out?

    ... The Adventure BBS (HTTPS://BBS.OURBIRDHOUSE.CA)

    --- The Adventure BBS http://bbs.ourbirdhouse.ca
    * Origin: The Adventure BBS (21:3/254.0)
  • From TheWebExpert@21:3/254 to TheWebExpert on Mon Sep 7 21:30:16 2026
    On September 2 2026, TheWebExpert wrote:
    I have a problem with getting a door server to work.

    What I wanted to do is to have a docker container running that accepts rlogin
    and spawns dosbox, and sends the game out.

    It works pretty good, but does not workwith Tradewars and OO2, the
    ansi
    animation fails, the intro graphics to either glitch out

    Does anyone have a working docker container to run dos doors via
    rlogin?

    I am trying to avoid spinning up a VM, anyone figure this out?

    ... The Adventure BBS (HTTPS://BBS.OURBIRDHOUSE.CA)

    BBS Door Server (Dockerized DOSBox Multi-Node RLogin Server) https://github.com/thewebexpert/bbs-door-server

    TLDR; one click door server that actually works and integrates with BinkTerm/SBBS super easy!!!

    You litterally pull it, run it, use it, that fast.

    BBS Door Server (Dockerized DOSBox Multi-Node RLogin Server)
    A modern, turnkey Docker container for running 16-bit DOS BBS door games (TradeWars 2002, Legend of the Red Dragon, Operation: Overkill II, DoorMUD, and more) on contemporary Linux and macOS systems with zero-latency socket inheritance and a web-based Sysop desktop via noVNC.

    Features
    Turnkey Docker Setup: Runs out of the box with docker compose up -d. Zero-Latency Socket Inheritance: Direct file-descriptor handoff (-socket <fd>) with 100% byte-transparent binary I/O, completely eliminating TCP loopback overhead and ANSI escape-code corruption.
    Web Management Desktop (noVNC): Access a full graphical X11 desktop directly in your web browser on port 6080 without installing VNC viewer software.
    Right-Click Sysop Menu (Openbox): Right-click the desktop to instantly launch a standalone DOSBox prompt (C:\>), game setup utilities, or Linux shell terminals.
    Pre-configured Classic Doors: Includes working setups and multi-node batch launchers for:
    TradeWars 2002 v3.13
    Legend of the Red Dragon (LORD) v4.07
    Operation: Overkill II (OO2) v1.21
    DoorMUD v0.99
    FOSSIL Driver Integration: Bundled with tuned BNU 1.89h FOSSIL driver featuring a 32KB resident transmit buffer, locked 38400 baud, and CTS/watchdog bypass.
    Multi-Node Operation: Supports simultaneous callers across independent node directories (C:\nodes\node1 through node6).
    Popular Dropfile Formats: Generates DOOR.SYS, DORINFO1.DEF (through DORINFO6.DEF), and DOORFILE.SR.
    Universal BBS Support: Connects seamlessly with Synchronet (sbbs), Binkterm PHP, MajorBBS / WorldGroup, Mystic BBS, and Enigma½ via standard RFC 1282 RLogin.
    Quick Start
    1. Clone & Start
    git clone https://github.com/thewebexpert/bbs-door-server.git
    cd bbs-door-server
    docker compose up -d
    2. Access the Ports
    Service Port Description
    Web Sysop Desktop (noVNC) 6080 Open http://localhost:6080/ in your browser
    RLogin Server 513 Port for BBS connections (Synchronet, Binkterm, etc.) Debug Test Console 1234 Connect via telnet (telnet localhost 1234) to test doors
    Web Management Desktop (noVNC)
    Open http://localhost:6080/ in any web browser. You will be greeted by an X11 desktop environment featuring an active green xterm Linux terminal.

    Right-Click Sysop Menu
    Right-click anywhere on the desktop background to open the Openbox Sysop Menu:

    DOSBox Prompt (C:\>): Opens an interactive DOSBox session with C:\ pre-mounted to /app/dosbox/drive. Use this to run installers, create characters, or test executables.
    Dynamic Door Management:
    Uninstalled open-source doors show an Install option.
    Once installed, the menu dynamically updates to replace the installer with Configure (launching its setup editor in DOSBox) and Run Locally!
    List RLogin Entrypoints (BBS Info): Opens a formatted status dashboard showing all doors, installation status, ports, and copy-paste Synchronet / SyncTERM configuration strings.
    Linux Terminal (xterm): Spawns an additional Linux terminal window for downloading archives, managing files, and checking logs.
    Installing Open-Source BBS Doors
    The door server comes pre-configured with launcher batch scripts and dropfile integrations for official open-source BBS doors. To avoid forcing unneeded software onto your system, these doors are not pre-installed, but can be added in seconds.

    Supported Open-Source Doors
    Usurper v0.20e (GNU General Public License v2)
    Legendary fantasy RPG door by Jakob Dangarden, ported and maintained by Rick Parrish.
    Features dungeon crawling, monster slaying, player combat, gods, and marriages. Judge Dredd Door (MIT License)
    Modern L.O.R.D.-style Mega-City One RPG door created by GrumpyGrendil with Scott Baker's DDPlus 7.1 DoorKit.
    Fight perps, level up your Judge, patrol the sectors, and upgrade equipment. Option A: 1-Click Installation from Web Desktop (noVNC)
    Open the noVNC desktop at http://localhost:6080/.
    Right-click anywhere on the desktop background.
    Click Install Usurper (GPL) or Install Judge Dredd (MIT).
    A terminal window will open, download the official release directly from GitHub, and set up all required directories.
    Once complete, right-clicking the desktop will now show:
    Usurper ➔ Configure Usurper (Editor) or Run Usurper Locally
    Judge Dredd ➔ Edit Config (JUDGE.CFG) or Run Judge Dredd Locally
    Option B: Command-Line Installation
    You can also run the installer script directly on the host or inside the container:

    # Install Usurper only:
    ./install-doors.sh usurper

    # Install Judge Dredd only:
    ./install-doors.sh dredd

    # Install all available open-source doors:
    ./install-doors.sh all
    Viewing RLogin Entrypoints & BBS Configuration
    To see all configured door games, their RLogin server names, installation status, and copy-paste BBS setup lines:

    From the Web Desktop
    Right-click the desktop and click List RLogin Entrypoints (BBS Info).
    From the Terminal
    Run the helper script:
    ./list-doors.sh
    This displays a live dashboard and allows you to test any door instantly:

    Internal RLogin: door-server:513
    External RLogin: localhost:5130
    Synchronet External Program Command: ?rlogin -p 513 door-server %u <DOOR_NAME> SyncTERM: Host: localhost | Port: 5130 | User: <DOOR_NAME>
    How to Add Custom DOS Door Games
    Here is a complete, step-by-step guide to installing a new door game using the web interface:

    Step 1: Download the Game Archive
    Open the web desktop at http://localhost:6080/. In the open terminal window, navigate to the doors folder and curl the game:

    cd /app/dosbox/drive/doors
    curl -L -O http://www.example.com/downloads/mygame.zip
    Step 2: Extract the Game Files
    Extract the archive into its own folder:

    mkdir MYGAME
    unzip mygame.zip -d MYGAME
    # Ensure lowercase permissions if needed:
    chmod -R 775 MYGAME
    (Note: You can also use DOS PKUNZIP from inside the DOSBox prompt: pkunzip mygame.zip C:\doors\MYGAME)

    Step 3: Run the Game Setup in DOSBox
    Right-click anywhere on the desktop and click DOSBox Prompt (C:\>).
    In the DOSBox prompt, navigate to your game's directory and run its setup utility:
    C:
    CD \doors\MYGAME
    SETUP.EXE
    Configure the door settings:
    Comm Type: Select FOSSIL (or COM1 / Standard IRQ 4).
    Baud Rate: Set to 38,400 or Locked.
    Drop File Type: Choose DOOR.SYS or DORINFO1.DEF.
    Multi-node Paths: If the game supports multi-node, configure the dropfile path for each node:
    Node 1: C:\nodes\node1
    Node 2: C:\nodes\node2
    (and so on)
    Step 4: Create the Batch Launcher
    Create a batch launcher in /app/dosbox/drive/doors/bin/<game>.bat. You can create this from the Linux terminal using nano:

    nano /app/dosbox/drive/doors/bin/mygame.bat
    Add your batch script (parameter %1 represents the node number):

    @echo off
    C:
    CD \doors\MYGAME
    REM Launch the game with node dropfile path:
    MYGAME.EXE C:\nodes\node%1\DOOR.SYS
    Make it executable:

    chmod +x /app/dosbox/drive/doors/bin/mygame.bat
    Step 5: Register the Door in config.js
    Open /app/config.js in your editor (or on your host system):

    doors: [
    // ... existing doors ...
    {
    name: 'MYGAME',
    doorCmd: 'CALL mygame.bat',
    dropFileFormat: 'DoorSys', // 'DoorSys', 'DorInfo', or 'DoorFile'
    multiNode: true
    }
    ]
    Step 6: Test Locally via the Debug Port
    Before wiring it up to your BBS, test it directly via the debug console:

    telnet localhost 1234
    You will be greeted with:

    Welcome to the doornode debug server!
    Available modules:
    1) LORD
    2) TW2002
    3) OO2
    4) DOORMUD
    5) MYGAME
    Select a module:
    Type 5 or MYGAME and press Enter. DOSBox will launch immediately and stream the game directly into your terminal!

    Connecting Your BBS to Door Server
    Door Server speaks standard RFC 1282 RLogin on port 513.

    1. Synchronet BBS (sbbs)
    In Synchronet's configuration utility (scfg):

    Navigate to External Programs

    Online Programs (Doors).
    Select or create a section (e.g. External Games).
    Add a new program:
    Name: TradeWars 2002
    Internal Code: TW2002
    Execution Method: ?rlogin -p 513 door-server TW2002
    Native Executable: No
    Use Shell to Execute: No
    2. Binkterm PHP
    In Binkterm's door configuration (public_html/webdoors/rlogindoors/index.php or webdoor.json):

    Host: door-server (or IP address)
    Port: 513
    RLogin User / Door Tag: TW2002, LORD, OO2, or DOORMUD
    Architecture & Technical Deep-Dive
    Why Socket Inheritance?
    Traditional DOSBox BBS door setups run a local TCP nullmodem server (serial1=nullmodem server:10001) and use a TCP proxy process to route caller traffic. This introduces:

    Significant latency and packet fragmentation.
    Character dropping and ANSI screen corruption when users type fast.
    Needing to open and manage individual TCP ports per node.
    This container uses DOSBox Socket Inheritance:

    Client (WebSocket/Telnet)


    Node.js RLogin Server (port 513)
    │ - Performs RLogin handshake
    │ - Writes dropfile (DOOR.SYS / DORINFO)
    │ - Detaches client socket from Node.js event loop

    DOSBox Process (-socket <FD>)
    │ - Inherits raw file descriptor directly onto serial1 (COM1)

    BNU FOSSIL Driver (INT 14h)


    16-bit DOS Door Game
    Caller input flows directly into the emulated 16550 UART with zero intermediary buffering, providing an authentic 100% responsive dial-up experience.

    Environment Variables & Custom Ports
    You can customize port bindings by copying .env.example to .env:

    cp .env.example .env
    Variable Default Description
    DOOR_PORT 513 Host port for RLogin BBS traffic
    VNC_WEB_PORT 6080 Host port for the noVNC Sysop web interface
    DEBUG_PORT 1234 Host port for the interactive debug test console
    TZ America/New_York Container timezone
    Credits & License
    Original Prototype: Based on doornode (2019) by Tom Dinchak (dinchak/doornode). Containerization & Enhancements: Architected by TheWebExpert with Docker containerization, DOSBox binary nullmodem patches, noVNC management desktop, and socket-inheritance pipeline.
    License: Released under the GNU General Public License v3.0 (GPL-3.0). See LICENSE for details.

    ... The Adventure BBS (HTTPS://BBS.OURBIRDHOUSE.CA)

    --- The Adventure BBS http://bbs.ourbirdhouse.ca
    * Origin: The Adventure BBS (21:3/254.0)
  • From Geri Atricks@21:3/235 to TheWebExpert on Tue Sep 8 08:15:41 2026
    I have a problem with getting a door server to work.

    What I wanted to do is to have a docker container running that accepts rlogin and spawns dosbox, and sends the game out.

    It works pretty good, but does not workwith Tradewars and OO2, the ansi

    not familiar with 002, but why not just use the Tradewars Game Server?
    ---

    -Dallas Vinson

    ... This virus requires Microsoft Windows 3.x

    --- Mystic BBS v1.12 A48 (Linux/64)
    * Origin: Legends of Yesteryear (Dothan, AL, USA) (21:3/235)
  • From TheWebExpert@21:3/254 to Geri Atricks on Tue Sep 8 10:53:52 2026
    On September 8 2026, Geri Atricks wrote:
    I have a problem with getting a door server to work.

    What I wanted to do is to have a docker container running that
    accepts
    rlogin and spawns dosbox, and sends the game out.

    It works pretty good, but does not workwith Tradewars and OO2, the
    ansi

    not familiar with 002, but why not just use the Tradewars Game Server?
    ---

    -Dallas Vinson

    ... This virus requires Microsoft Windows 3.x

    --- Mystic BBS v1.12 A48 (Linux/64)
    * Origin: Legends of Yesteryear (Dothan, AL, USA) (21:3/235)

    I was looking for a self hosted door game server to install whatever I
    wanted, opposed to remote rlogin/telnet servers to connect to for my
    particular use case, but yeah adding a remote link to TWGS is far better
    so you can interact with people and get more out of it for sure.

    I got mine working just fine now, and for self hosted legacy dos doors,
    it works, but long term, I will be added TWGS to my bbs

    ... The Adventure BBS (HTTPS://BBS.OURBIRDHOUSE.CA)

    --- The Adventure BBS http://bbs.ourbirdhouse.ca
    * Origin: The Adventure BBS (21:3/254.0)
  • From Dreamweaver@21:1/144 to Geri Atricks on Tue Sep 8 14:11:29 2026
    not familiar with 002, but why not just use the Tradewars Game Server?

    OOII I think they mean. Operation Overkill ][

    ... I'm perfect, other people just screw up my plans.

    --- Renegade v1.44/Exp
    * Origin: The Titantic BBS Telnet - ttb.rgbbs.info (21:1/144)