Teletype Games BBS is a Telnet-accessible, Synchronet-style community bulletin board system. It serves as a retro-style central hub for messaging, chat, news, guides, and software within the Teletype Games ecosystem.
Access it live at:
games.teletype.hu:2323
The BBS is a Ruby application built on top of the rubbs gem — an in-house BBS framework that provides the full-screen ANSI interface, the top menubar, stacked modal windows, the Telnet server, and the xterm mouse support. The bbs-server repository contains only the Teletype-specific configuration: the service wiring, the window definitions, and the formatters.
On connect, the user is asked for a name (blank = Anonymous), then a full-screen Synchronet-style shell opens with a top menubar.
data/boards/. A multi-line composer (TextArea, up to 1000 chars per post) is used for new messages.BBS_SYSOPS.rubbs framework — IAC negotiation, full-screen ANSI rendering, themed windows..ans / .ansi / .asc / .nfo / .txt files into the path pointed to by BBS_DESKTOP_ART. Classic CP437 BBS art is auto-decoded and SAUCE metadata is stripped. If a directory is given, a random file is shown per session.data/, mounted as a Docker volume so they survive container restarts.| Menu | Items |
|---|---|
| File | Bulletin · System Info · Exit |
| Messages | Boards… · New Post… |
| Files | Blog Posts · HowTo Guides · Game Catalog |
| Users | Online · Last Callers · Profile… |
| Chat | Open chat |
| Sysop | Console (sysops only) |
| Help | About · Keys |
| Key | Action |
|---|---|
Alt+letter |
Open the matching top menu |
F10 |
Open the leftmost menu |
F1 |
Help |
F2 |
Message Boards |
F3 |
Quick post |
F4 |
Chat |
Tab / Shift-Tab |
Move focus inside a window |
Enter |
Activate focused button / submit input |
Esc |
Close the top window / menu |
The application is configured via environment variables (copy env-example to .env):
| Variable | Default | Description |
|---|---|---|
BBS_PORT |
2323 |
TCP port to listen on. |
BBS_SYSOPS |
empty | Comma-separated list of usernames with sysop access. |
WEBAPP_WIKIJS_TOKEN |
— | Bearer token for the Grav wiki API. |
BOARDS_PATH |
data/boards |
Directory of per-board CSV files. |
MESSAGES_PATH |
data/messages.dat |
Legacy single-board file; auto-migrated into the General board on first run. |
LAST_CALLERS_PATH |
data/last_callers.csv |
Login log CSV. |
PROFILE_PATH |
data/profiles.csv |
Per-user profile CSV. |
BBS_DESKTOP_ART |
data/art/teletype.ansi |
Single ANSI art file, or a directory of them (random per session). |
Docker Compose:
docker compose up --build
Directly (Ruby 3.x):
bundle install
ruby bbs.rb
Connect:
telnet localhost 2323
bbs.rb entry point — service wiring + Application definition
lib/
domain/
repository/ online users, boards, wiki, catalog, last callers, profiles
service/ online, board, wiki, games, chat, last callers, profile
model/ value objects (MessageModel, GameModel, …)
bbs/ui/ per-window builders and formatters
data/
boards/<id>.csv per-board messages (auto-created)
last_callers.csv login log
profiles.csv persistent user profiles
https://git.teletype.hu/tools/bbs-server