TITLE=BBS-szerver ROUTE=/services/bbs LOCALE=hu MODIFIED=1792691329 URL=https://wiki.teletypegames.org/hu/services/bbs L=1 https://git.teletypegames.org/engines/rubbs L=2 https://git.teletypegames.org L=3 https://teletypegames.org/blog L=4 https://teletypegames.org L=5 https://teletypegames.org/howtos L=6 #50 L=7 #67 L=8 #21 L=9 https://git.teletypegames.org/bbs/impostor-bbs L=10 https://git.teletypegames.org/bbs/sermo-bbs L=11 https://bbsweb.teletypegames.org L=12 #73 q│ A Teletype Games BBS egy telnetes, Synchronet-stílusú hirdetőtábla: q│ üzenetek, chat, hírek, útmutatók és szoftverek egyetlen retró csomópontban. q│ q│ bElérhető: cteletypegames.org:2323 1Áttekintés 1══════════ Ruby alkalmazás a 1brubbs0 gemre építve, ami a saját BBS-keretrendszerünk — ez adja az ANSI-felületet, a menüsort, az egymásra tornyozott modális ablakokat, a Telnet-szervert és az xterm egértámogatást. A cbbs-server0 repóban csak a Teletype-specifikus részek vannak: szolgáltatás-bekötések, ablakdefiníciók, formázók. A hívás a régi módon indul: a modem tárcsáz és kapcsol (cCONNECT c38400/ARQ/V42BIS0), a belépő képernyőn (logon matrix) a TTG-art, a hívó sorszáma és a foglalt node-ok száma látszik. A felhasználó megad egy nevet (üresen hagyva Anonymous); a regisztrált név jelszót kér, minden más név vendég. Utána jön a bbelépési szekvencia0: iWelcome back0, a hívó sorszáma, a korábbi hívásaid (első, utolsó, összes idő), és a régi BBS-ek ellenőrzései — új levelek, új üzenetek falanként az utolsó olvasásod óta, a szavazásaid, az e havi új fájlok —, végül a nap idézete, egy csapattag mottója. Az ENTER nyitja a teljes képernyős felületet, rajta a Welcome ablakkal; ez nem jön elő újra, amikor a hívó egy doorból tér vissza. A bFile > Log off0 (Alt-X) a kilépő képernyővel zárja a hívást: a hívás hossza, egy tagline, c+++0, cATH00, cNO cCARRIER0. Az állapotsor jobb oldalán a node, az óra és a bent töltött idő látszik. 1Funkciók 1════════ bTartalom • bBelépési hirdetőtábla0 — a legutóbbi kiadások és a közelgő események a teletypegames.org-ról, az üzenetek száma, az utolsó betelefonálók és az utolsó öt oneliner. • bDev Log0 (File) — a 2git.teletypegames.org összes szervezetének nyilvános aktivitása: pushok a commit-üzenetekkel, tagek, release-ek és új repók, a legújabb elöl. A Gitea API-ból anonim módon olvassa, így a privát repók sosem jelennek meg. • bHírek (News)0 — a legutóbbi kiadások katalóguslinkkel, a közelgő események (c/api/v1/events0), és a wiki cblog0 címkéjű bejegyzései, amint lesz ilyen — ugyanaz a forrás, mint a 3teletypegames.org/blog mögött. • bJátékkatalógus0 — a 4Teletype Games API összes bejegyzése (minden lapról), platform szerint rendezve; a bPlatform0 gomb körbeléptet egy platformszűrőt. A kártyán a verzió, a kiadás dátuma, az állapot, a licenc és a letöltésszám, a katalóguslink, a letölthető fajták, a kiadástörténet és a külső linkek. • bFile Areas0 (Content) — a katalógus a régi BBS-ek fájlterületeiként: platformonként egy terület, a játékok legutóbbi kiadásának minden fájlja (a webes build c.html.zip0-ként), a méret az FTP-szerver WARP mappájából, a kiadás letöltésszáma, c*0 az utolsó 30 nap fájljain, és egy bFILE_ID.DIZ0-doboz. Az bEnter0 vagy a bDownload0 ZMODEM-mel küldi el a fájlt. • bBulletins0 (File > Bulletins…, Help > New to BBSes?) — számozott hirdetmények: a belépési hirdetőtábla, iAbout Teletype Games0 (ennek a wikinek a kezdőlapja), iThe story so far0 (minden játék minden kiadása, hónaponként), iComing up0, a BBS szabályai, iNew to BBSes?0 és a BBS-hálózat. • bTech HowTos0 (Content) — a 5teletypegames.org/howtos leírásai, mindegyik a saját wikioldaláról olvasva. • bFTP Browser0 (Content) — FTP-kliens az 6FTP-szerveren, a gyökerétől (cAPPS0, cWARP0, cWIKI0): az bEnter0 megnyit egy mappát, a c..0 vagy az bUp0 visszalép. Egy fájlnál látszik a mérete, dátuma, cftp://0 címe (a WARP-nál a chttps://teletypegames.org/file/…0 tükre is), egy kis szövegfájlnál a tartalma. Az bEnter0 vagy a bDownload0 bZMODEM0-mel elküldi a terminálodra: a SyncTERM, a NetRunner és a Qodem magától fogadja, a sima telnet mögötti crz0-t kézzel kell indítani, a 7BBS Web pedig böngészős letöltésként menti. A 16 MB-nál nagyobb fájloknál csak a címük látszik, FTP-klienshez. • bWiki-szekciók0 — iPlatform Guides0 (c/platforms0), iEngines0 (c/engines0) és a iDOS iCorner0 (c/dos0, elöl egy bevezetővel az FTP-szerverről és a DOSINST-ről). Élőben olvassa ennek a wikinek a JSON API-ját (c/custom/sitemap.json0, c/custom/page.json0) token nélkül, így a belépéshez kötött oldalak nem jelennek meg. A bUsers > Language0 magyarra vált. A teljes wiki a WIKI-BBS-en van (lásd lent: iA BBS-hálózat0). • bCsapat (Team)0 — a teletypegames.org tagjai a mottójukkal. • bDoorok0 — programok, amelyeknek a BBS átadja a telnetvonalat, és kilépéskor visszaveszi (a 8rubbs cBBS::Door0-ja). • bCommodore 640 és bCommodore Plus/40 — a gép a cREADY.0 promptnál (kék C64-, szürke Plus/4-képernyő, 40 oszlop), egy kis BASIC V2-vel: a c10 PRINT cCHR$(205.5+RND(1)); : GOTO 100 kirajzolja a labirintust, bármelyik billentyű RUN/STOP. A lemezen az adott gépre készült játékaink vannak: a cLOAD"$",80 és a cLIST0 megmutatja a directoryt (a blokkszám a valódi c.prg0-méretből), a cLOAD"NÉV",80 (joker karakterrel is) betölt egy játékot, a cLIST0 megmutatja, a cRUN0 kiírja az adatlapját a katalóguslinkkel. A Plus/4 a cDIRECTORY0-t és a cDLOAD0-ot is ismeri; a cSYS 647380 újraindítja a C64-et; az cEXIT0 visszavisz a BBS-be. • bChat of Ra0 — te vagy a iBlessing of Ra0 piramisába zárt munkás, és a napisten felülről válaszol. A szabad szöveg a modellhez megy Ra szerepében; a cRIDDLE0 a piramis egy talányát adja fel, amit a kód ellenőriz (cHINT0, cSKIP0); három megfejtés után Ra megáld. A cGAME0 megmondja, hol a játék. • bImpostor0 — a iDefinitely not an Impostor0 játék utáni terminálja (az 9impostor-bbs, cimpostor0 gemként), ugyanaz a flow, mint a 2324-es porton futó Impostor BBS-é. A végén ENTER visz vissza a BBS-be. • bTTG Trivia0 — a régi fajta door-játék: tíz kérdés a Teletype Gamesről és a régi időkről, kérdésenként 20 másodperc, A–D; a gyors válasz többet ér, három jó egymás után sorozatbónuszt hoz. A kérdések egy része a katalógusból és a csapatból készül, a többi a clib/content/trivia.yml0-ből; a legjobb tíz játék a dicsőségtáblája. • A bSERMO0 egy SERMO-t futtató kettős gép a Neumatronic-univerzumból (a 10sermo-bbs repóból, csermo0 gemként): adj ki parancsot, vagy csak beszélgess vele; az cEXIT0 visszavisz a BBS-be. Amit szavakkal mondasz, az a Lapis-ACP-hez megy: egy kis helyi modell (Qwen3.5 0.8B) az 1977-es kánon personájával. Lassú, szűkszavú, és néha téved, részben szándékosan. • bTTG Master0 (az első menü, cF10, a gomb az asztal sarkában, a Welcome ablak, Help) — a sysop, aki a hívók kérdéseire válaszol a BBS-ről: mi hol van, mi az újdonság, mi jön. A tényeket a kód keresi ki (a menük tudástára, a legutóbbi kiadások, az események, a játékok), a modell csak megfogalmazza őket, és a kód ellenőrzi, hogy a válasz megtartotta-e a tényeket, és nem talált-e ki menüt; ha igen, a hívó magát a tényt kapja. bKözösség • bOneliners0 (Messages) — egysoros üzenetek fala, legfeljebb 64 karakterrel; névvel lehet írni, Anonymousként nem. • bTöbb üzenőfal0 — General / Tech / Off-Topic / Sysop, falanként egy CSV a cdata/boards/0 alatt. Az új hozzászólások többsoros cTextArea0-ban készülnek, legfeljebb 1000 karakterrel. Regisztrált név esetén minden fal mellett ott az olvasatlan üzenetek száma. • bÉlő chat0 — broadcast-csomópont, kb. 1 Hz-es lekérdezéssel, belépéskor előzményvisszajátszással. • bRegisztrált nevek0 — a bUsers > Register…0 jelszóhoz köti azt a nevet, amellyel beléptél; onnantól ez a név jelszót kér. Profil (aláírás / hely / honlap / jegyzetek, és a kedvenc háttérkép) csak regisztrált névhez tartozhat. • bLevelezés (Mail)0 (Messages > Mail…, cF70) — privát levelek regisztrált nevek között: Write, Reply, Delete. A bFeedback to the Sysop…0 levél a sysopnak, bárki írhatja, akinek van neve; minden sysop olvassa. A hívás közben érkező levél csenget. A Discord-csatornára csak az kerül, hogy visszajelzés jött, a tartalma soha. • bPage the Sysop0 — hívásonként egyszer: csengő, egy sor az élő chatben és a Discordon; ha nincs bent sysop, levélírást ajánl. • bVoting Booth0 (Users) — a clib/content/polls.yml0 szavazásai; egyet a katalógus tölt fel (a kedvenc Teletype Games-címed), egyet a doorok. Az eredmény sávdiagram; névvel lehet szavazni, és a szavazat módosítható. • bNode-ok0 — minden hívó a legkisebb szabad node-ot kapja; a bUsers > Who is bOnline0 mutatja a node-ot, a nevet, hogy mit csinál a hívó (a legfelső ablak vagy a door), és mióta van bent. • bHall of Fame0, bUser Listing0, bYour Stats0 (Users) — toplisták (legtöbbet letöltött játékok, hívók, posztolók, Trivia-pontszámok); a regisztrált nevek a hívásaikkal; a saját számaid. • bUtolsó betelefonálók0 — lásd lent: iA botok kizárása0. • bSysop-konzol0 — statisztikák és broadcast, a cBBS_SYSOPS0 listában szereplő, jelszóval belépett neveknek. • bDiscord-csatorna0 — az új faliposztok és a sysop-broadcastok a cBBS_DISCORD_WEBHOOK0 webhookra mennek, megemlítések (mention) nélkül. bTechnikai • bxterm egér0 — kattintható menük, gombok és listaelemek, görgethető listák. • bAsztali art0 — tegyél c.ans0 / c.ansi0 / c.asc0 / c.nfo0 / c.txt0 fájlokat oda, ahová a cBBS_DESKTOP_ART0 mutat. A CP437-es art automatikusan dekódolódik, a SAUCE-metaadat lekerül. Ha könyvtárat adsz meg, munkamenetenként véletlenszerű fájlt választ. • bANSI Gallery0 (Content) — annak a mappának a képei a SAUCE-adataikkal (cím, alkotó, csoport, dátum) és előnézettel. Az bEnter0 vagy a bView0 teljes képernyőn mutatja a képet, és ha magasabb a képernyőnél, a nyilakkal és a PgUp/PgDn-nel görgethető; a bDesktop0 az adott hívásra teszi ki háttérnek, a bFavourite0 egy regisztrált név minden hívására. A régebbiek mellett hét saját kép van CP437-ben, SAUCE-szal: egy synthwave naplemente, Ra piramisa (80×40), a C64 indulóképernyője, egy űrjelenet az Impostorhoz, a DOS-eszközök floppyja, a lángoló TTG-logó, és maga a TTG-logó (80×40, 16 színű félblokkokra konvertálva). • bTétlenségi bontás0 10 perc után. • bPerzisztens állapot0 — az üzenőfalak, a betelefonálási napló, a profilok, a fiókok, a levelek, az olvasási jelzők, a szavazatok és a Trivia-pontszámok CSV-fájlok a cdata/0 alatt, ami Docker-kötet, így túlélik az újraindítást. 2A botok kizárása 2──────────────── A 2323-as port nyitva van az internet felé, ezért a telnetes jelszópróbálgató botok másodpercenként hívják, és croot0, cadmin0 és hasonló neveket gépelnek be. 2026-10-20-ig mind bekerült az utolsó betelefonálók közé. Most: • egy hívás csak akkor látszik online-nak, és csak akkor kerül a naplóba, ha a terminál elküldte az ablakméretét (telnet NAWS) — a valódi kliensek és a bbsweb ezt megteszik, a botok nem; • a hívás a végén kerül a naplóba, és csak ha legalább 10 másodpercig tartott; • a név betűvel vagy számjeggyel kezdődik, és csak betűt, számjegyet, szóközt, c.0, c_0 és c-0 jelet tartalmazhat; minden más (cGET / HTTP/1.10) Anonymous lesz. 2A BBS-hálózat 2───────────── t┌──────────────┬────────────────────────┬────────────────────────────────────┐ t│h Rendszer t│h Cím t│h Mi ez t│ t├──────────────┼────────────────────────┼────────────────────────────────────┤ t│0 Teletype BBS t│0 cteletypegames.org:23230 t│0 ez a BBS t│ t├──────────────┼────────────────────────┼────────────────────────────────────┤ t│0 Impostor BBS t│0 cteletypegames.org:23240 t│0 a iDefinitely not an Impostor0 játék t│ t│0 t│0 t│0 utáni terminálja t│ t├──────────────┼────────────────────────┼────────────────────────────────────┤ t│0 WIKI-BBS t│0 cteletypegames.org:23250 t│0 a teljes wiki kétpaneles t│ t│0 t│0 t│0 böngészőben t│ t└──────────────┴────────────────────────┴────────────────────────────────────┘ Mind a három elérhető böngészőből is a 11bbsweb.teletypegames.org oldalon; a bFile > BBS Network0 felsorolja őket. 1Menük és billentyűk 1═══════════════════ t┌────────────┬───────────────────────────────────────────────────────────────┐ t│h Menü t│h Elemek t│ t├────────────┼───────────────────────────────────────────────────────────────┤ t│0 bTTG Master0 t│0 Ask a question… · What is new? · What is coming up? · Where t│ t│0 t│0 do I start? · How do I download files? · Which doors are t│ t│0 t│0 there? t│ t├────────────┼───────────────────────────────────────────────────────────────┤ t│0 bFile0 t│0 Welcome · Bulletins… · News · Dev Log · System Info · BBS t│ t│0 t│0 Network · Log off t│ t├────────────┼───────────────────────────────────────────────────────────────┤ t│0 bMessages0 t│0 Boards… · New Post… · Mail… · Oneliners · Live Chat · t│ t│0 t│0 Feedback to the Sysop… · Page the Sysop t│ t├────────────┼───────────────────────────────────────────────────────────────┤ t│0 bContent0 t│0 File Areas · FTP Browser · Game Catalog · Platform Guides · t│ t│0 t│0 Engines · DOS Corner · Tech HowTos · ANSI Gallery t│ t├────────────┼───────────────────────────────────────────────────────────────┤ t│0 bUsers0 t│0 Who is Online · Last Callers · User Listing · Your Stats · t│ t│0 t│0 Hall of Fame · Voting Booth · Team · Profile… · Register… · t│ t│0 t│0 Language EN/HU t│ t├────────────┼───────────────────────────────────────────────────────────────┤ t│0 bDoors0 t│0 SERMO · Commodore 64 · Commodore Plus/4 · Impostor · Chat of t│ t│0 t│0 Ra · TTG Trivia t│ t├────────────┼───────────────────────────────────────────────────────────────┤ t│0 bSysop0 t│0 Console (csak jelszóval belépett sysopoknak) t│ t├────────────┼───────────────────────────────────────────────────────────────┤ t│0 bHelp0 t│0 Ask the TTG Master · New to BBSes? · About · Keys t│ t└────────────┴───────────────────────────────────────────────────────────────┘ t┌─────────────────┬──────────────────────────────────────────────────────────┐ t│h Billentyű t│h Művelet t│ t├─────────────────┼──────────────────────────────────────────────────────────┤ t│0 cAlt+betű0 t│0 A megfelelő felső menü megnyitása t│ t├─────────────────┼──────────────────────────────────────────────────────────┤ t│0 cF100 t│0 A legbaloldalibb menü megnyitása t│ t├─────────────────┼──────────────────────────────────────────────────────────┤ t│0 cF10 t│0 Kérdés a TTG Masternek t│ t├─────────────────┼──────────────────────────────────────────────────────────┤ t│0 cF20 t│0 Üzenőfalak t│ t├─────────────────┼──────────────────────────────────────────────────────────┤ t│0 cF30 t│0 Gyors hozzászólás t│ t├─────────────────┼──────────────────────────────────────────────────────────┤ t│0 cF40 t│0 Chat t│ t├─────────────────┼──────────────────────────────────────────────────────────┤ t│0 cF70 t│0 Levelezés (Mail) t│ t├─────────────────┼──────────────────────────────────────────────────────────┤ t│0 cAlt-X0 t│0 Kilépés (Log off) t│ t├─────────────────┼──────────────────────────────────────────────────────────┤ t│0 cTab0 / cShift-Tab0 t│0 Fókuszléptetés az ablakon belül t│ t├─────────────────┼──────────────────────────────────────────────────────────┤ t│0 cEnter0 t│0 A fókuszált gomb aktiválása / beküldés t│ t├─────────────────┼──────────────────────────────────────────────────────────┤ t│0 cF50 / cAlt-Enter0 t│0 Teljes képernyő és vissza a sok tartalmú ablakoknál; t│ t│0 t│0 ugyanezt teszi a címsor c[↑]0 / c[↕]0 gombja vagy a dupla t│ t│0 t│0 kattintás a címsoron t│ t├─────────────────┼──────────────────────────────────────────────────────────┤ t│0 cF60 / cShift-F60 t│0 A következő / előző ablak előrehozása; egy ablakra t│ t│0 t│0 kattintás is előrehozza t│ t├─────────────────┼──────────────────────────────────────────────────────────┤ t│0 cAlt-10 … cAlt-90 t│0 Az adott számú ablak előrehozása (a szám a felső keret t│ t│0 t│0 jobb oldalán) t│ t├─────────────────┼──────────────────────────────────────────────────────────┤ t│0 cCtrl-F50 t│0 Ablak mozgatása a nyilakkal, méretezése Shift+nyilakkal t│ t│0 t│0 (a Tab vált), az Enter befejezi (az F6 is, amíg ez az t│ t│0 t│0 egyetlen ablak); egérrel a címsort vagy a c┘0 sarkot kell t│ t│0 t│0 húzni t│ t├─────────────────┼──────────────────────────────────────────────────────────┤ t│0 betű / cAlt+betű0 t│0 Megnyomja az ablak azzal a gyorsbillentyűvel jelölt t│ t│0 t│0 gombját (szövegmezőben Alttal) t│ t├─────────────────┼──────────────────────────────────────────────────────────┤ t│0 cEsc0 t│0 A legfelső ablak vagy menü bezárása t│ t└─────────────────┴──────────────────────────────────────────────────────────┘ 1Konfiguráció 1════════════ Másold az cenv-example0 fájlt c.env0 néven: t┌────────────────────────┬─────────────────────────┬─────────────────────────┐ t│h Változó t│h Alapérték t│h Leírás t│ t├────────────────────────┼─────────────────────────┼─────────────────────────┤ t│0 cBBS_PORT0 t│0 c23230 t│0 TCP-port. t│ t├────────────────────────┼─────────────────────────┼─────────────────────────┤ t│0 cBBS_SYSOPS0 t│0 üres t│0 Sysop-nevek vesszővel t│ t│0 t│0 t│0 elválasztva. A fiókjuk t│ t│0 t│0 t│0 csak a cbin/account0-tal t│ t│0 t│0 t│0 hozható létre. t│ t├────────────────────────┼─────────────────────────┼─────────────────────────┤ t│0 cBBS_DISCORD_WEBHOOK0 t│0 üres t│0 Discord-webhook az új t│ t│0 t│0 t│0 posztokhoz és a t│ t│0 t│0 t│0 sysop-broadcastokhoz; t│ t│0 t│0 t│0 üresen kikapcsolva. t│ t├────────────────────────┼─────────────────────────┼─────────────────────────┤ t│0 cACCOUNTS_PATH0 t│0 cdata/accounts.csv0 t│0 Regisztrált nevek t│ t│0 t│0 t│0 sózott PBKDF2-SHA256 t│ t│0 t│0 t│0 hash-sel, 600-as t│ t│0 t│0 t│0 fájlmóddal. t│ t├────────────────────────┼─────────────────────────┼─────────────────────────┤ t│0 cBOARDS_PATH0 t│0 cdata/boards0 t│0 Falankénti CSV-fájlok. t│ t├────────────────────────┼─────────────────────────┼─────────────────────────┤ t│0 cMESSAGES_PATH0 t│0 cdata/messages.dat0 t│0 Örökölt, egyfalas fájl; t│ t│0 t│0 t│0 az első futáskor t│ t│0 t│0 t│0 átkerül a General t│ t│0 t│0 t│0 falra. t│ t├────────────────────────┼─────────────────────────┼─────────────────────────┤ t│0 cLAST_CALLERS_PATH0 t│0 cdata/last_callers.csv0 t│0 Befejezett hívások. t│ t├────────────────────────┼─────────────────────────┼─────────────────────────┤ t│0 cPROFILE_PATH0 t│0 cdata/profiles.csv0 t│0 Felhasználói profilok. t│ t├────────────────────────┼─────────────────────────┼─────────────────────────┤ t│0 cONELINERS_PATH0 t│0 cdata/oneliners.csv0 t│0 Az oneliners fal. t│ t├────────────────────────┼─────────────────────────┼─────────────────────────┤ t│0 cIMPOSTOR_SESSIONS_PATH0 t│0 cdata/impostor_sessions.0 t│0 Amit a hívók az t│ t│0 t│0 ccsv0 t│0 Impostor doorban t│ t│0 t│0 t│0 hagytak. t│ t├────────────────────────┼─────────────────────────┼─────────────────────────┤ t│0 cMAIL_PATH0 t│0 cdata/mail.csv0 t│0 Privát levelek és t│ t│0 t│0 t│0 visszajelzések, 600-as t│ t│0 t│0 t│0 fájlmóddal. t│ t├────────────────────────┼─────────────────────────┼─────────────────────────┤ t│0 cLAST_READ_PATH0 t│0 cdata/last_read.csv0 t│0 Melyik regisztrált név t│ t│0 t│0 t│0 meddig olvasta az egyes t│ t│0 t│0 t│0 falakat. t│ t├────────────────────────┼─────────────────────────┼─────────────────────────┤ t│0 cVOTES_PATH0 t│0 cdata/votes.csv0 t│0 A Voting Booth t│ t│0 t│0 t│0 szavazatai. t│ t├────────────────────────┼─────────────────────────┼─────────────────────────┤ t│0 cTRIVIA_SCORES_PATH0 t│0 cdata/trivia_scores.csv0 t│0 A TTG Trivia játszmái. t│ t├────────────────────────┼─────────────────────────┼─────────────────────────┤ t│0 cBBS_LOGON_ART0 t│0 clib/content/logon.ans0 t│0 A belépő képernyő képe. t│ t├────────────────────────┼─────────────────────────┼─────────────────────────┤ t│0 cBBS_FTP_HOST0 t│0 cftp.teletypegames.org0 t│0 Az FTP Browser t│ t│0 t│0 t│0 FTP-szervere. t│ t├────────────────────────┼─────────────────────────┼─────────────────────────┤ t│0 cBBS_FTP_DOWNLOAD_MAX0 t│0 c167772160 t│0 A legnagyobb fájl t│ t│0 t│0 t│0 bájtban, amit az FTP t│ t│0 t│0 t│0 Browser ZMODEM-mel t│ t│0 t│0 t│0 elküld. t│ t├────────────────────────┼─────────────────────────┼─────────────────────────┤ t│0 cBBS_DESKTOP_ART0 t│0 cdata/art/teletype.ansi0 t│0 Egy ANSI-fájl, vagy egy t│ t│0 t│0 t│0 könyvtár t│ t│0 t│0 t│0 (munkamenetenként t│ t│0 t│0 t│0 véletlenszerűen); a t│ t│0 t│0 t│0 mappája az ANSI t│ t│0 t│0 t│0 Gallery. Egy t│ t│0 t│0 t│0 regisztrált hívó t│ t│0 t│0 t│0 kedvence elsőbbséget t│ t│0 t│0 t│0 kap. t│ t├────────────────────────┼─────────────────────────┼─────────────────────────┤ t│0 cSERMO_LLM_URL0 t│0 a compose állítja t│0 A SERMO modellje, t│ t│0 t│0 t│0 chttp://llm:80800; üresen t│ t│0 t│0 t│0 csak beégetett t│ t│0 t│0 t│0 válaszok. t│ t├────────────────────────┼─────────────────────────┼─────────────────────────┤ t│0 cSERMO_LLM_MODEL0 t│0 a compose állítja t│0 A modell neve a t│ t│0 t│0 t│0 12modellszolgáltatásban, t│ t│0 t│0 t│0 cqwen3.5-0.8b0. t│ t├────────────────────────┼─────────────────────────┼─────────────────────────┤ t│0 cSERMO_LLM_API_KEY0 t│0 üres t│0 A SERMO kulcsa a t│ t│0 t│0 t│0 12modellszolgáltatáshoz; t│ t│0 t│0 t│0 nélküle a SERMO t│ t│0 t│0 t│0 beégetett válaszokat t│ t│0 t│0 t│0 ad. t│ t├────────────────────────┼─────────────────────────┼─────────────────────────┤ t│0 cBBS_LLM_URL0 / c_MODEL0 / t│0 a SERMO-é t│0 Ra és a TTG Master t│ t│0 c_API_KEY0 t│0 t│0 modellje; ha nincs t│ t│0 t│0 t│0 megadva vagy üres, a t│ t│0 t│0 t│0 cSERMO_LLM_*0 értéket t│ t│0 t│0 t│0 használja. t│ t└────────────────────────┴─────────────────────────┴─────────────────────────┘ 2Sysop-fiókok 2──────────── A cBBS_SYSOPS0 listában szereplő nevet telneten nem lehet regisztrálni, így senki nem foglalhatja le elsőként. A fiókot — vagy bármelyik jelszó visszaállítását — a szerver shelljéből kell elvégezni: p docker exec -it teletype-bbs bin/account Tasi 1Futtatás 1════════ p docker compose up --build # vagy Ruby 3.x-szel: bundle install && ruby b» p bs.rb p telnet localhost 2323 A compose egy konténert indít, a cteletype-bbs0-t. A SERMO mögötti modell, a Qwen3.5 0.8B, a szerver közös 12modellszolgáltatásában fut, az cinterstack hálózaton chttp://llm:80800-ként; amíg nem válaszol, a SERMO beégetett válaszokat ad. A cdocker-compose.dev.yaml0 ehelyett a BBS mellett tartja a modellt: egy cteletype-bbs-acp0 konténer a llama.cpp cllama-server0-ével, kulcs nélkül. 2Doorok 2────── Egy door egy sor a cbbs.rb0 Application-definíciójában; a Doors menü magától felsorolja a deklarált doorokat: p door :sermo, Sermo::OS, label: '&SERMO' p door :c64, Commodore.os(Commodore::C64, games: games_service, files: fi» p le_library), p label: '&Commodore 64' p door :plus4, Commodore.os(Commodore::PLUS4, games: games_service, files: » p file_library), p label: 'Commodore &Plus/4' p door :impostor, Impostor.flow(sessions: impostor_sessions), label: '&Imposto» p r' p door :trivia, Trivia.door(games: games_service, site: site_service, scores» p : trivia_scores), p label: '&TTG Trivia' Egy door lehet cBBS::FakeOS0-definíció (SERMO, a Commodore-ok), cBBS::Flow (Impostor) vagy hívható objektum. A csermo0 és az cimpostor0 gem egy-egy revízióra van rögzítve a cGemfile.lock0-ban; az entrypoint induláskor csak a rubbs-t frissíti. A sermo-bbs vagy az impostor-bbs változása után emeld meg a cbundle clock --update sermo0 (vagy cimpostor0) paranccsal, és élesíts újra. 2Karakterek 2────────── Ra és a TTG Master a 12modellszolgáltatás Qwen3.5 0.8B modelljén fut, a 8rubbs cBBS::AI0-ján át. Egy ilyen kis modell jó egy rövid, karakteres válaszban, de rossz a tényekben, ezért a tényeket a kód tartja: Ra talányait és a játék címét a kód adja, a cdeflect0 szabályok megválaszolják, amit a modell bárhogy kérdezve elrontana (kód, vers, „bot vagy?”), a Master megfogalmazását pedig a kód a tényekhez méri, mielőtt megjelenik. A personákat méréssel hangoljuk, nem egy-egy válasz alapján: a cbin/persona-eval ra|master 30 többször felteszi a mérőkérdéseket (clib/characters/eval/0), és megszámolja a hibákat: szerepből kiesés, markdown, túl hosszú válasz, a Masternél tévesztés (rossz menüút vagy elveszett tény). 2026-10-21-én: Ra 1 hiba 32–48 válaszból, a Master 0. p docker exec teletype-bbs bundle exec bin/persona-eval master 3 1Projektszerkezet 1════════════════ p bbs.rb belépési pont — szolgáltatás-bekötés, belépési » p folyamat, Application-definíció p bin/account fiók létrehozása / jelszó visszaállítása p lib/ p domain/ p repository/ online felhasználók, falak, wiki, katalógus, si» p te (események, tagok), p fiókok, utolsó betelefonálók, profilok, oneline» p rs, FTP, Gitea, levelek, olvasási jelzők, szavazatok; p http_json (GET + 5 perces cache) p service/ online, fal, wiki, játékok, site, fiók, chat, p utolsó betelefonálók, profil, oneliner, FTP-bön» p gésző, dev log, p art, discord_notifier, levelezés, szavazás, fáj» p lterületek p model/ értékobjektumok (MessageModel, GameModel, …) p doors/commodore.rb a C64- és a Plus/4-door; a commodore/basic.rb a» p BASIC-jük p doors/ra.rb Chat of Ra p doors/trivia.rb TTG Trivia p content/ szavazások, Trivia-kérdések, tagline-ok, hirdet» p mények, a belépő kép p characters/ Ra és a TTG Master: personák, talányok, tudástá» p r, mérőkérdések p bbs/ui/formatters.rb hirdetőtábla, hírek, játékkártya, csapat, hálóz» p at, DOS-bevezető, felhasználók, sysop, p oneliners, FTP-böngésző, dev log, galéria p bbs/ui/classic_formatters.rb belépés/kilépés, node-ok, levelek, szavazás,» p fájlterületek, történet, toplisták p data/ p boards/.csv falankénti üzenetek (automatikusan jön létre) p last_callers.csv befejezett hívások p profiles.csv felhasználói profilok p accounts.csv regisztrált nevek p oneliners.csv az oneliners fal p impostor_sessions.csv amit a hívók az Impostor doorban hagytak p mail.csv, last_read.csv, p votes.csv, trivia_scores.csv p art/ háttérképek, az ANSI Gallery 2Repó 2──── https://git.teletypegames.org/bbs/bbs-server