Zsolt Tasnadi 75d1063572 Replace display.rb with DSL primitives in bbs.rb
All content rendering now lives in bbs.rb via the rubbs DSL.
fetch/pick handle wiki list + article drill-down; output handles
the multi-line game catalog. display.rb is gone.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-30 09:28:21 +02:00
2026-03-11 07:28:14 +01:00
2026-03-11 07:28:14 +01:00
2026-04-28 22:58:37 +02:00
2026-04-28 22:58:37 +02:00
2026-04-28 22:58:37 +02:00
2026-04-28 22:58:37 +02:00

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
No description provided
Readme 135 KiB
Languages
Ruby 97.2%
Dockerfile 2.2%
Shell 0.6%