Egy cím a hálózat összes boardjához: válassz egyet a menüből, és a gate átkapcsol; amikor az a board bont, visszakerülsz a menübe. És a Global Discovery: a világ többi telnetes BBS-e egy kereshető listában, mindegyik a legutóbbi hívásunk eredményével, ugyanígy tárcsázva.
Élesben:
teletypegames.org:2399, és böngészőből a bbsweb-en (az utolsó kártya)
A TTG Gate BBS egy tárcsázómenü és semmi több, a bbsweb listájának telnetes párja. Saját boardot nem futtat: a kiválasztott board saját portja veszi át a hívást a rubbs telnet-gatewayén (BBS::Gateway) át (a Teletype BBS-nek 2026-11-01 óta nincs saját gateway-doorja: a gate az egyetlen átjáró). Minden board megtartja a kódját, a portját és a deployát; a gate csak a bájtokat viszi.
Mint a BBS-hálózat minden boardjának, ennek is két arca van egy porton, és a hívás ugyanazzal a terminálkérdéssel indul:
Q vagy az Esc bont.TTG GATE logó a node számával és az órával; két fül, Own Servers és Global Discovery, az aktív a saját színű sávban, jobbra az épp online boardok száma; alattuk az aktív fül almenüje (/Find, Browse, New, Random, Died, Graves, Srcs, a gombjuk sárga); a tartalom a teljes 40 oszlopon; alul a képernyő gombjainak sora. Az Own Servers a C64-es arccal is bíró boardjainkat listázza: a board színének kockája, neve és portja, a lista alatt a kijelölt board leírása, címe és címkéi. Az O és a D bárhonnan fület vált; a CRSR fel és le a listában mozog, a Global Discoveryn a lista tetejéről a CRSR fel az almenübe visz (ott balra-jobbra mozog a sáv, a RETURN megnyit, a CRSR le visszavisz); egy sárga gomb bárhonnan megnyitja a helyét; a RETURN megnyit vagy tárcsáz, a ← vagy a RUN/STOP visszalép, a Q bont.
A board előbb a saját terminálkérdését teszi fel. A gate jelenti neki a hívó ablakméretét, így modern terminálnál az a tipp; a C64 nem jelent ablakméretet, ezért a board C64-nek veszi. A RETURN elfogadja a tippet.
A boardot a szokott módon hagyd el (kijelentkezés, Alt-X, C64-en Q): a gate jelzi, hogy bontott, és egy gomb visszahozza a menüt.
A saját boardjaink mellett a gate nyilvános listákból katalógust vezet a világ többi telnetes BBS-éről, és naponta egyszer mindegyiket felhívja, hogy válaszol-e. Kézzel írt adat nincs benne: minden mező egy forráslistából, a saját hívásunkból, a DNS-ből vagy egy rögzített szabálytáblából jön, nyelvi modell nem vesz részt benne. Csak telnet: SSH, rlogin vagy webcím nincs.
A modern arcon a Global Discovery pontjai:
| Pont | |
|---|---|
| Every board | minden board a halottak kivételével, elöl a válaszolók, aztán név szerint |
| Search | / bárhol; lásd lent |
| Browse | terminál (ANSI, PETSCII, ASCII, ATASCII), szoftver, ország és hálózat szerint, darabszámmal |
| New this week | amelyeket egy lista az elmúlt 7 napban nevezett meg először |
| Random board | egy, amelyik válaszolt a legutóbbi hívásunkra |
| Recently died | az elmúlt 30 napban halottá vált boardok |
| Graveyard | minden halott board: egyet sem törlünk, a története megmarad |
| Sources | a listák, a forrásmegjelölések, a DB-IP és a kimaradás módja |
A lista minden board állapotát mutatja: ● online, ◐ akadozó, ✗ nem elérhető (azzal, hogy mióta: „down for 3 days”), † halott, ? még nem hívtuk. Az F állapot szerint szűr, a nyilak és a PgUp/PgDn lapoznak. A board saját oldalán ott a címe, az állapota és a legutóbbi válasza, hogy a mi szerverünkről miért nem értük el (a fel nem oldható név nem ugyanaz, mint egy tűzfal), az elmúlt 30 nap csíkja (█ aznap válaszolt, · nem), minden mező azzal a listával, ahonnan jött, az FTN-cím, a tagek, és a B a bannere első képernyőjével.
A keresés a szavait tagként olvassa, ahol tudja: a petscii hu online a kódolás, az ország és az állapot együtt, a synchronet, fidonet vagy sbl a szoftvert, a hálózatot vagy a listát keresi. A többi szó a nevekben, sysopokban, helyekben, szoftverekben és hostnevekben keres, mindegyik egy ottani szó elejeként. A halott boardok kimaradnak, hacsak a keresés nem mondja, hogy all. Az FTN-mailereket (levelezőprogramok, amelyek egy nodelist telnetcímén válaszolnak, nem BBS-ek) csak a sw:ftn-mailer keresés mutatja.
A Commodore 64-en a D (a Global Discovery fül) ugyanabban a keretben nyitja meg a Global Discoveryt: oldalanként tíz board egy szűrősor alatt (PETSCII, és az F-fel választott állapot: élő, online, akadozó, nem elérhető, még nem hívott), mindegyiken állapotjel (félkocka: világoszöld online, sárga akadozó, piros nem elérhető, szürke halott), név, ország és szoftver, a lista alatt a kijelölt board teljes címe, állapota, válaszideje, szoftvere és terminálja. Csak PETSCII boardok vannak rajta, a halottak csak a Died, a Graves vagy egy all-os keresés alatt, mert a gate a bájtokat változatlanul viszi, és egy ANSI board C64-en szemét. Egy board akkor PETSCII board, ha valamelyik hívásunk PETSCII-t kapott tőle, nem azért, mert egy lista ezt mondja (lásd lent a C64-stílusú hívást). A keresést (/) a gombsorba kell gépelni; a Browse-ban (B) szoftver, ország és hálózat van; az S a Sourcest nyitja. Egy board oldalán a 30 napos sáv, a mezők (a hosszú érték tördelve) a forrásukkal, a címkék és a gombok: a RETURN tárcsáz, a B a PETSCII bannert mutatja. A Sources minden listát a rekordjainak sávjával, az utolsó import állapotával és idejével, a formátumával és feltételeivel mutatja, alatta a mért és a listák szerinti PETSCII-boardok számát.



A board oldalán a RETURN tárcsáz, ugyanazon a gatewayen át, mint a saját boardjainkat; amikor bont, egy gomb visszahozza az oldalát, a Q (C64-en a ←) pedig a listát ott, ahol tartottál.
A prober a mi szerverünkön fut (teletypegames.org, vps.teletype.hu), és csak a forráslistákban közzétett címeket hívja: nincs szkennelés.
ANSI, ablakot 80×25; minden más opciót elutasít.ok (jött banner), silent, closed, refused, timeout vagy dns_fail.A C64-stílusú hívás. Mivel a prober ANSI-terminálnak mondja magát, a hívójához igazodó board ANSI-t mutat neki, egy igazi Commodore 64 (WiFi-modem mögötti terminálprogram, amely nem ismeri a telnetet) viszont PETSCII-t kapna. Ezért azt a boardot, amelyet egy lista Commodore- vagy PETSCII-boardnak mond (a CBBS Outpost minden boardja, a C64 módú SyncTERM-bejegyzés, a PETSCII megjegyzésű SBL-sor, a PETSCII-t említő vagy Commodore-os BBS-programot futtató Telnet BBS Guide-bejegyzés), vagy amelynek a bannere PETSCII volt, a napi hívása után 30 másodperccel, ha az válaszolt, másodszor is felhívja, úgy, ahogy egy C64 hív: ugyanaz a kapcsolat, 4 másodperc csend után egy Enter (CR, 0x0D), de minden telnetopciót elutasít, nincs termináltípus és ablakméret, és hosszabb az olvasás, mert egy tcpser mögötti igazi C64 későn válaszolhat: az első bájtra legfeljebb 20 másodpercig vár, és 25 másodpercig vagy 4 KB-ig olvas. Ugyanahhoz a napi körhöz tartozik, és sosem fut a host egy másik hívása mellett, így ezek a boardok legfeljebb napi két hívást kapnak; sikertelen hívás után nincs C64-stílusú, a csendben maradtat másnap újra megpróbálja. A board állapotába nem számít bele.
A petscii tagot egy board csak akkor kapja meg, ha a két hívás valamelyike tényleg PETSCII-bájtokat kapott. Amit egy lista mond, az claims:petscii lesz, egy kereshető, de meg nem jelenített tag: egy Commodore-ként listázott board, amelynek a C64-stílusú hívása ANSI-t vagy sima szöveget kap, nem PETSCII board. Amelyik board ANSI-t mutat a terminálunknak és PETSCII-t egy C64-nek, mindkét tagot megkapja, és mindkét arcról hívható; mindkét bannert őrizzük, a modern arc az ANSI-t, a C64 arc a PETSCII-t játssza le.
A válaszoló boardot naponta egyszer hívja (± 2 óra), a hibázót 1, 6, majd 24 óra múlva újra, a halottat (30 napja nem válaszolt) hetente; amelyiket már egy lista sem nevez meg, és egy éve halott, azt többé nem hívja. Egyszerre legfeljebb 8 hívás fut, ugyanarra a hostra vagy IP-címre sosem kettő. A szoftver és a kódolás a bannerből jön egy rögzített mintatáblával, az ország az IP-címből.
A sysop kétféle dolgot kérhet, egy hostnévre vagy IP-címre (annak minden portjára):
Küldd el a hostnevet vagy a címet és a szintet a Teletype Games csapatának (kapcsolat: Discord vagy e-mail). A bejegyzés a config/discovery-optout.yml-be kerül, és a prober a push után egy órán belül betartja.
| Forrás | Mit olvasunk belőle |
|---|---|
| FidoNet nodelist (Z2DAILY, a NodelistDB-n át) | a telnetcímmel bíró node-ok: név, hely, sysop, FTN-cím |
| fsxNet nodelist | ugyanez az fsxNetre |
| Micronet nodelist | ugyanez a Micronetre |
| Synchronet BBS List, a Vertrauen exportja | név, sysop, hely, szoftver, címek, hálózatok, indulás éve |
| SyncTERM BBS list | név és telnetcím |
| CBBS Outpost (commodorebbs.com), a Commodore-boardok listája | név, telnetcím, hely, szoftver, hardver, weboldal |
| Telnet BBS Guide (telnetbbsguide.com), engedéllyel | a havi lista: név, telnetcím, hely, szoftver, weboldal |
Az egyes boardok listázott adatait olvassuk, a fájlokat sosem tesszük közzé újra. A CBBS Outpost (commodorebbs.com) listájából csak a tényeket vesszük át, naponta egy kéréssel, a forrásmegjelöléssel minden boardoldalon, amelyet megnevez, és a Sources képernyőn: a sysop nevét, e-mail-címét, felhasználónevét, a képernyőképeket, a megjegyzéseket és az oldal saját online jelzését soha; a Commodore-boardként listázás állítás, amelyet a C64-stílusú hívásunk ellenőriz. A sysopjai kérhetik egy bejegyzés levételét, ahogy a Kimaradás résznél. Az általa listázott boardoknál az ő szoftvere és helye az első. A Telnet BBS Guide (telnetbbsguide.com) listáját az engedélyével használjuk: a hivatalos, terjesztésre szánt havi listáját olvassuk, abból is csak a telnetes bejegyzéseket, az e-mail-címeket és a leírásokat soha (egy leírásból csak azt nézzük, megnevezi-e a PETSCII-t). Ez a legnagyobb lista, de kézzel, havonta szerkesztik, ezért ha egy boardot a nodelistek vagy az SBL is megneveznek, az ő adataik az elsők. Az országok a DB-IP IP to Country Lite adatbázisából jönnek, CC BY 4.0 alatt: IP Geolocation by DB-IP; saját, havonta letöltött példányt használunk.
A boardok a config/boards.yml-ből jönnek, a menü sorrendjében, a bbsweb-kártyáik nevével, leírásával, címkéivel és színével:
| Mező | |
|---|---|
id |
rövid, egyedi név |
name |
ez látszik a menüben |
summary |
a leírás a modern arcon |
tags |
a név alatti sor a C64-es arcon |
port |
a board portja |
accent |
a board színe, #rrggbb (az xterm 256 színéből vagy a C64-éiből a legközelebbi) |
petscii |
true, ha a boardnak van C64-es arca |
enabled |
false kiveszi a menüből |
Egy új board az új board ellenőrzőlistájának részeként ide is bekerül; a masterre pusholás élesíti.
| Változó | Alapérték | |
|---|---|---|
TTG_GATE_BBS_GATEWAY_HOST |
host.docker.internal |
itt tárcsázza a boardokat |
TTG_GATE_BBS_PUBLIC_HOST |
teletypegames.org |
ez a cím látszik minden boardnál |
TTG_GATE_BBS_BOARDS |
config/boards.yml |
a boardlista |
TTG_GATE_BBS_DIAL_WINDOW |
600 |
Global Discovery: a hívónkénti tárcsázási korlát ablaka, másodperc |
TTG_GATE_BBS_DIAL_PER_CALLER |
10 |
ennyit tárcsázhat egy hívó az ablakban |
TTG_GATE_BBS_DIAL_PER_HOST |
3 |
ennyi vonal mehet a gate-ből egyszerre egy hostra |
A házi szabvány rétegei: BoardModel, BoardRepository (a YAML-fájl), DirectoryService és a TTGGateBBS kompozíciós gyökér; az arcok UI::Modern (a választó, a menü és a Discovery-képernyők) és UI::Petscii (a keret a füleivel és az almenüvel, és a nézetek, csak a változó cellákat küldve). A Global Discovery a lib/domain/discovery/ alatt él: a katalógus egy SQLite-fájl (data/discovery.sqlite3, WAL, FTS5), amelyet a napi import és a prober (saját konténer, ttg-gate-bbs-prober) ír, a gate pedig olvas, a tárcsázásai rögzítését kivéve (BrowseService, DialService). A gateway jelentését egy hívásról a rubbs 0.31 adja (BBS::Gateway::Report). A számok a data/discovery-metrics.prom-ba mennek (ttg_gate_bbs_discovery_*, köztük a tárcsázási korlátok, hogy a hívók és a hostok mennyire közelítik őket, az elutasított tárcsázások okonként, és a tárcsázások ideje és forgalma) a Grafanának. A masterre pusholás a Woodpeckerből élesíti (RuboCop, compose-ellenőrzés, ci-deploy ttg-gate-bbs); a konténer ttg-gate-bbs, a /srv/stacks/ttg-gate-bbs-ben, és a boardokat a hoszt portjain éri el (host.docker.internal). Ezekre a belső kapcsolatokra nem vonatkoznak a vps-bbs-firewall IP-nkénti korlátai, így a gate minden hívója egyszer számít.