Running a Modern BBS with ENiGMA½ and Docker

A real bulletin board system, containerized, as part of FlameNet.

Running a Modern BBS with ENiGMA½ and Docker

Before the web, there were BBSes: bulletin board systems you dialed into directly, one caller at a time, to read messages, play door games, and trade files. As part of FlameNet I wanted a real one back. Here's the setup.

ENiGMA½

The modern BBS of choice is ENiGMA½, a Node.js BBS package supporting message networks, door games, file areas, and ANSI art, accepting connections over both telnet and SSH. Actively maintained and surprisingly full-featured.

Dockerizing it

I run it as a container with a bind-mounted config so the board survives rebuilds:

services:
  enigma:
    image: enigmabbs/enigma-bbs:latest
    ports:
      - "8888:8888"   # telnet
      - "8889:8889"   # ssh
    volumes:
      - ./enigma/config:/enigma-bbs/config
      - ./enigma/db:/enigma-bbs/db

Everything (themes, message areas, login servers, the SSH host key) is defined in a single config.hjson. (If you ever publish your config, scrub the private-key passphrase first. Ask me how I know.)

Connecting

Any telnet or SSH client works. The board greets you with ANSI art, a login prompt, and the unmistakable feeling that it's 1996 again.

The full Docker setup is on my GitLab. More FlameNet writeups soon.

Subscribe to Just another Geek

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe