ac56b4974c6e9cee43707f91bddb1d5016dfe3d0
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Teletype BBS Server
Telnet-accessible community BBS server built on the rubbs gem. ANSI-rendered retro terminal interface with a message board, wiki integration, and a game catalog.
Running
Docker Compose (recommended):
docker compose up --build
Directly (requires Ruby 3.x):
bundle install
ruby bbs.rb
Connect with:
telnet localhost 2323
Configuration
Copy env-example to .env and fill in the values:
| Variable | Default | Description |
|---|---|---|
WEBAPP_WIKIJS_TOKEN |
— | Bearer token for Wiki.js API (optional) |
MESSAGES_PATH |
data/messages.dat |
Path to the messages CSV file |
Menu
| Option | Description |
|---|---|
| Message Board | View the last 30 messages |
| New Message | Post a message (max 200 chars) |
| Blog Posts | Browse blog entries from Wiki.js |
| HowTo Guides | Browse how-to articles from Wiki.js |
| Game Catalog | Browse the Teletype game catalog |
| Online Users | List of currently connected users |
| System Info | Server stats |
Project structure
bbs.rb Entry point — BBS configuration and flow definition
lib/
online_users.rb Thread-safe connected-users map
message_board.rb CSV-backed message store
wiki.rb Wiki.js GraphQL client
catalog.rb Games API client
display.rb ANSI rendering helpers and content handlers
data/
messages.dat Message board records (auto-created)
Data
Messages are stored in data/messages.dat (plain CSV, auto-created on first post). The data/ directory is mounted as a Docker volume so records survive container restarts.
Description
Languages
Ruby
97.2%
Dockerfile
2.2%
Shell
0.6%