---
title: 'BBS Network'
url: 'https://wiki.teletypegames.org/services/bbs-network'
markdown: 'https://wiki.teletypegames.org/services/bbs-network.md'
lang: en
date: '2026-10-27'
description: 'Ten boards answer on teletypegames.org, each on its own port, each in the browser on bbsweb too. TTG Gate BBS on teletypegames.org:2399 reaches all of them from one port. The boards Board Address What it is Page Teletype BBS teletypegames.org:2323 the clubhouse: message boards, mail, chat,…'
taxonomy:
  tag:
    - howto
---

# BBS Network

> Ten boards answer on `teletypegames.org`, each on its own port, each in the browser on [bbsweb](https://bbsweb.teletypegames.org) too. [TTG Gate BBS](https://wiki.teletypegames.org/services/ttg-gate-bbs) on `teletypegames.org:2399` reaches all of them from one port.

# The boards

| Board | Address | What it is | Page |
|---|---|---|---|
| Teletype BBS | `teletypegames.org:2323` | the clubhouse: message boards, mail, chat, and its own doors (SERMO, C64, Plus/4, Chat of Ra, TTG Trivia) | [Teletype BBS](https://wiki.teletypegames.org/services/teletype-bbs) |
| Impostor BBS | `teletypegames.org:2324` | the post-game terminal of *Definitely not an Impostor* | [Impostor BBS](https://wiki.teletypegames.org/services/impostor-bbs) |
| TTG Wiki BBS | `teletypegames.org:2325` | this wiki in a two-pane browser | [TTG Wiki BBS](https://wiki.teletypegames.org/services/wiki-bbs) |
| Alexandria BBS | `teletypegames.org:2326` | Wikipedia on a telnet line | [Alexandria BBS](https://wiki.teletypegames.org/services/alexandria-bbs) |
| Feedia BBS | `teletypegames.org:2327` | an RSS reader: the news as text, suggestions to the admins | [Feedia BBS](https://wiki.teletypegames.org/services/feedia-bbs) |
| TTG Blog BBS | `teletypegames.org:2328` | the Teletype Games blog: posts by category, editors write on the line | [TTG Blog BBS](https://wiki.teletypegames.org/services/ttg-blog-bbs) |
| WarpEngine BBS | `teletypegames.org:2329` | the file area: the C64 and Plus/4 shelves, ZMODEM and XMODEM downloads | [WarpEngine BBS](https://wiki.teletypegames.org/services/warp-engine-bbs) |
| Scriptorium BBS | `teletypegames.org:2330` | the literature vault: Project Gutenberg books, a chapter at a time | [Scriptorium BBS](https://wiki.teletypegames.org/services/scriptorium-bbs) |
| Commodex BBS | `teletypegames.org:2331` | the C64 game compendium: titles from Wikidata, Wikipedia, callers' cheats and tips | [Commodex BBS](https://wiki.teletypegames.org/services/commodex-bbs) |
| Pixelia BBS | `teletypegames.org:2332` | the art gallery: ANSI art from 16colo.rs, the Wall, a shared 40×25 canvas | [Pixelia BBS](https://wiki.teletypegames.org/services/pixelia-bbs) |

All ten are built on [rubbs](https://wiki.teletypegames.org/engines/rubbs), and all ten have two faces on one port: a **modern** one for ANSI terminals (windows, menus, mouse; TTG Blog BBS is line by line) and a **Commodore 64** one in PETSCII, 40×25. A call starts with the same question (rubbs' `BBS::Terminal`): the board guesses from the telnet answers (a window wider than 40 columns is a modern terminal, 40 or no answer a C64), `1` picks modern, `2` the C64, RETURN takes it.

# Calling

- **One port for all** — `telnet teletypegames.org 2399`: [TTG Gate BBS](https://wiki.teletypegames.org/services/ttg-gate-bbs), a dialing menu that puts the call through to any board and takes it back when the board hangs up.
- **A telnet client** — `telnet teletypegames.org 2323`, or SyncTERM, NetRunner, PuTTY.
- **A browser** — [bbsweb.teletypegames.org](https://bbsweb.teletypegames.org): one card per board, xterm.js, mouse and ZMODEM downloads; the C64 switch shows the PETSCII face. See [BBS Web](https://wiki.teletypegames.org/services/bbsweb).
- **A Commodore 64** — a terminal program (CCGMS, StrikeTerm) behind a WiFi modem: `ATDT teletypegames.org:2323`.

# Between the boards

Each kind of thing has one board, and the others do not repeat it: the Teletype BBS keeps the community (boards, mail, chat) and the doors that live only there (SERMO, the Commodore 64 and Plus/4, Chat of Ra, TTG Trivia), and tells where the rest is. It has no gateway doors since 2026-11-01: a caller reaches another board by calling its port, or through **TTG Gate BBS** on 2399, which puts the call through to any of them (rubbs' `BBS::Gateway`) and takes it back when that board hangs up.

**Board > BBS Network** on the Teletype BBS (on the C64 face: `N`) shows every board as a building of the town map on the clubhouse wall, with what it carries, and its TTG Master answers the same.

# How they run

Every board is a Docker stack on the VPS, deployed from Woodpecker by a push to master through `ci-deploy` (see [Deployment](https://wiki.teletypegames.org/infrastructure/deployment)):

| Board | Repository | Stack / container | Inside port |
|---|---|---|---|
| Teletype BBS | `bbs/teletype-bbs` | `/srv/stacks/teletype-bbs`, `teletype-bbs` | 2323 |
| Impostor BBS | `bbs/impostor-bbs` | `/srv/stacks/impostor-bbs`, `impostor-bbs` | 2324 |
| TTG Wiki BBS | `bbs/wiki-bbs` | `/srv/stacks/wiki-bbs`, `wiki-bbs` | 2323 |
| Alexandria BBS | `bbs/alexandria-bbs` | `/srv/stacks/alexandria-bbs`, `alexandria-bbs` | 2323 |
| Feedia BBS | `bbs/feedia-bbs` | `/srv/stacks/feedia-bbs`, `feedia-bbs` | 2323 |
| TTG Blog BBS | `bbs/ttg-blog-bbs` | `/srv/stacks/ttg-blog-bbs`, `ttg-blog-bbs` | 2323 |
| WarpEngine BBS | `bbs/warp-engine-bbs` | `/srv/stacks/warp-engine-bbs`, `warp-engine-bbs` | 2323 |
| Scriptorium BBS | `bbs/scriptorium-bbs` | `/srv/stacks/scriptorium-bbs`, `scriptorium-bbs` | 2323 |
| Commodex BBS | `bbs/commodex-bbs` | `/srv/stacks/commodex-bbs`, `commodex-bbs` | 2323 |
| Pixelia BBS | `bbs/pixelia-bbs` | `/srv/stacks/pixelia-bbs`, `pixelia-bbs` | 2323 |
| TTG Gate BBS (2399) | `bbs/ttg-gate-bbs` | `/srv/stacks/ttg-gate-bbs`, `ttg-gate-bbs` | 2323 |

Each container updates rubbs at start, so a pushed rubbs reaches the boards with their next restart; `devarea/scripts/bbs-lock-bump.sh --push` moves every board's `Gemfile.lock` to the same revision (since 2026-11-01 all eleven are on rubbs 0.29.1, and their C64 screens, logos, goodbyes and Discord posts come from rubbs' shared blocks). The ports are open in ufw ([Server ports](https://wiki.teletypegames.org/infrastructure/server-ports)). In [Grafana](https://wiki.teletypegames.org/infrastructure/grafana), **VPS: BBS** shows the live sessions per board and the gate, how many of the eleven run, their resources and error lines.

# A new board

A new board leaves a trace in several repositories; it is done when all of these follow it:

1. **The board** — a repo in the `bbs` org on rubbs, `BBS::Terminal.flow` for the two faces, the next free port (2333; 2399 is the gate's), `compose.yaml` publishing it. `devarea/scripts/new-bbs.sh` writes a working one from the house template (the domain layers, both faces on rubbs' `BBS::Petscii::Screen`, `BlockFont` and `Goodbye`, Docker, CI); the full checklist is `devarea/procedures/bbs-server-creation.md`.
2. **Deploy** — `infra/host-config`: `files/etc/ci-deploy/<name>.conf` (`ALLOW_PORTS`), its MANIFEST line, the deploy key; on the server `ufw allow <port>/tcp`, the stack folder, the Woodpecker secret.
3. **Monitoring** — `infra/host-config` `vps-textfile-metrics`: the container in the `BBS` map (sessions, up; the VPS: BBS dashboard matches every `.+-bbs` container by itself); `infra/observability`: the port on the public-port allowlist in `grafana/provisioning/alerting/rules.yaml`.
4. **TTG Gate BBS and bbsweb** — an entry in `bbs/ttg-gate-bbs` `config/boards.yml`, and a card in `services/bbs-web` `config/config.json` (`petscii: true` for the C64 switch).
5. **Teletype BBS** — a row in `lib/content/network.yml` and the board's two buildings on the town map (`lib/content/art/modern/building_ID.yml`, 12×4, and `lib/content/art/c64/building_ID.yml`, 3×3), and the TTG Master's facts (`master_knowledge.yml` and `master_knowledge_c64.yml`): where the new kind of thing is now.
6. **Wiki** — its own page, a line in the Services sidebar, this page and [Server ports](https://wiki.teletypegames.org/infrastructure/server-ports).
7. **devarea** — `scripts/repos.list` and `WIKI_CONNECTION.md`.

'; var prevLevel = 2; for (var i = 0; i < headings.length; i++) { var h = headings\[i\]; var text = h.textContent.trim(); var slug = text.toLowerCase() .replace(/\[áàâä\]/g,'a').replace(/\[éèêë\]/g,'e').replace(/\[íìîï\]/g,'i') .replace(/\[óòôöő\]/g,'o').replace(/\[úùûüű\]/g,'u') .replace(/\[^a-z0-9\]+/g, '-').replace(/^-|-$/g, ''); if (!slug) slug = 'heading-' + i; if (used\[slug\]) { slug += '-' + i; } used\[slug\] = true; h.id = slug; var level = parseInt(h.tagName.charAt(1)); var cls = level > 2 ? ' class="toc-child"' : ''; html += '- [' + text + '](#'%20+%20slug%20+%20')
'; } html += '
'; toc.innerHTML = html; // Scroll-spy: highlight current heading var links = toc.querySelectorAll('a'); var ids = \[\]; for (var j = 0; j < links.length; j++) ids.push(links\[j\].getAttribute('href').slice(1)); function updateActive() { var current = ''; for (var k = 0; k < ids.length; k++) { var el = document.getElementById(ids\[k\]); if (el && el.getBoundingClientRect().top <= 80) current = ids\[k\]; } for (var m = 0; m < links.length; m++) { links\[m\].parentNode.classList.toggle('active', links\[m\].getAttribute('href') === '#' + current); } } window.addEventListener('scroll', updateActive, { passive: true }); updateActive(); })();

---

## Navigation

- Parent: [Services](https://wiki.teletypegames.org/services.md)
- Previous: [Alexandria BBS](https://wiki.teletypegames.org/services/alexandria-bbs.md)
- Next: [BBS Web](https://wiki.teletypegames.org/services/bbsweb.md)
