Moon Flower Society > Murad Terminal: terminal site e BBS moderna

Murad Terminal: terminal site e BBS moderna

Uma BBS moderna e autoral que combina biblioteca, zines, Markdown, ANSI e acesso pela web, SSH e Telnet.

Posted June 22, 2026. Markdown. Tags: terminal, bbs, indieweb, zine, ansi, ascii, python, go.


Uma proposta de ambiente digital com estética de terminal, BBS, zine eletrônico e arquivo textual, usando web, SSH e Telnet como portas de entrada.

Autor e curadoria: Pablo Murad
Versão inicial: 22 de junho de 2026


1. Visão geral

A ideia não é fazer apenas “um site em Telnet”. Isso seria limitado demais.

A ideia melhor é construir um Terminal Site: uma mistura de:

O visitante poderia acessar de três formas:

telnet terminal.seudominio.com 2323
ssh guest@terminal.seudominio.com

ou pela web:

https://terminal.seudominio.com

A versão web mostraria um terminal emulado no navegador. A versão Telnet/SSH entregaria a experiência “real”, para quem quer acessar como se fosse uma BBS moderna.

O projeto pode funcionar como uma fachada alternativa para Murad Library, Murad Press, dlore.org, Biblioteca Arcana ou qualquer universo textual/experimental do Pablo.


2. Nome conceitual

Algumas possibilidades:

Minha sugestão direta:

Murad Terminal

É simples, memorável e não prende o projeto só a maçonaria, zine, biblioteca ou sci-fi. Dá para ramificar depois.


3. Conceito narrativo

O site poderia ser apresentado como um “nó textual” acessível por protocolos antigos.

Exemplo de lore:

MURAD TERMINAL v0.1
NODE: SAO-PAULO/ARCHIVE
STATUS: ONLINE
MODE: PUBLIC READ-ONLY

Você acessou um nó textual mantido por Pablo Murad.
Aqui estão arquivos, zines, notas, bibliotecas, logs,
experimentos e fragmentos de mundos em manutenção.

O projeto pode ter duas camadas:

  1. Camada funcional: biblioteca, zines, textos, downloads, índice.
  2. Camada estética/narrativa: terminal perdido, arquivo secreto, nó experimental, BBS ressuscitada.

Essa segunda camada é o charme. Mas não pode atrapalhar a navegação. O erro comum em projeto retrô é colocar estética acima da usabilidade. Fica bonito por 30 segundos e depois vira tortura.


4. O que o visitante encontraria

4.1 Tela inicial

╔══════════════════════════════════════════════════════╗
║                  MURAD TERMINAL                     ║
║         Biblioteca / Zines / Logs / Experimentos    ║
╚══════════════════════════════════════════════════════╝

[1] Biblioteca
[2] Zines
[3] Arquivo ASCII/ANSI
[4] Manifestos
[5] Logs do Laboratório
[6] Guestbook
[7] Downloads
[8] Sobre o Projeto
[9] Ajuda
[0] Sair

murad@terminal:~$

4.2 Biblioteca

Área para textos, compêndios, PDFs, EPUBs, notas e arquivos.

Categorias possíveis:

4.3 Zines

Cada zine teria:

Exemplo:

ZINES DISPONÍVEIS

[001] Murad Press #01 - Manifesto do Arquivo
[002] Biblioteca Arcana #01 - Fragmentos
[003] QEL Notes #01 - Reality as a Distributed System
[004] Terminal Essays #01 - Contra a Web Lisa

4.4 Arquivo ANSI/ASCII

Área para:

4.5 Guestbook

Um livro de visitas simples, estilo anos 1990.

Campos:

Importante: precisa ter moderação, rate limit e filtro básico. Guestbook público sem proteção vira lata de lixo de bot.

4.6 Área de downloads

Downloads grandes devem ficar fora do Telnet e serem servidos por HTTPS.

O terminal apenas aponta:

Download:
https://seudominio.com/downloads/zine001.pdf

Telnet não é bom para download moderno. Dá para usar ZMODEM por charme, mas como recurso principal é perda de tempo.


5. Stack recomendada

Há três caminhos realistas.


Caminho A: BBS pronta + customização

Este é o caminho mais rápido para uma BBS real.

Opções

Synchronet

Site: https://synchro.net/
Download: https://www.synchro.net/download.xjs

Synchronet é uma suíte BBS madura, multiusuário, com suporte a Telnet, FTP, mail server e integração com módulos/script. É mais “BBS de verdade” do que “site terminal minimalista”.

Vantagens:

Desvantagens:

Uso ideal:

Quero uma BBS real com usuários, mensagens, arquivos, portas, menus e nostalgia funcional.


Mystic BBS

Site: https://www.mysticbbs.com/
Downloads: https://www.mysticbbs.com/downloads.html

Mystic é muito usado na cena BBS moderna, com foco forte em estética ANSI e experiência old-school.

Vantagens:

Desvantagens:

Uso ideal:

Quero uma BBS bonita, retrô, com ANSI e cara de cena.


ENiGMA½ BBS

Site: https://enigma-bbs.github.io/
GitHub: https://github.com/NuSkooler/enigma-bbs

ENiGMA½ é uma BBS moderna em Node.js, criada justamente para trazer uma alternativa mais contemporânea e aberta à cena BBS.

Vantagens:

Desvantagens:

Uso ideal:

Quero uma BBS moderna em Node.js e aceito mexer mais na parte técnica.


Veredito do Caminho A

Para colocar algo vivo rápido:

Mystic BBS se o objetivo for estética BBS/ANSI.
Synchronet se o objetivo for robustez BBS clássica.
ENiGMA½ se o objetivo for código moderno e hackeável.


Caminho B: Terminal site próprio

Este é o caminho mais autoral.

Você cria um servidor próprio que aceita conexões via TCP/Telnet e renderiza menus, textos, ANSI, guestbook e links.

Stack possível

Backend

Opções:

Python

Bibliotecas úteis:

Boa escolha se você quer desenvolver rápido.

Textual: https://textual.textualize.io/

Textual permite criar interfaces TUI sofisticadas em Python e pode rodar no terminal ou no navegador, dependendo da arquitetura. A documentação oficial apresenta o framework como uma forma de construir interfaces sofisticadas com API Python e rodar apps no terminal ou navegador.

Go

Bibliotecas úteis:

Bubble Tea: https://github.com/charmbracelet/bubbletea

Bubble Tea é um framework TUI em Go baseado na Elm Architecture, usado para aplicações simples ou complexas em terminal.

Charm Wish: https://github.com/charmbracelet/wish

Wish permite criar servidores SSH com aplicações Bubble Tea. Este caminho é excelente para um “site via SSH”.

Rust

Bibliotecas úteis:

Ratatui: https://ratatui.rs/

Ratatui é uma biblioteca Rust para criar interfaces TUI rápidas e leves.

Boa escolha se você quer performance e binário único, mas é mais lenta para prototipar.

Node.js

Bibliotecas úteis:

Boa escolha se você quer integrar com web, WebSocket, APIs e talvez reaproveitar código no front-end.


Minha recomendação honesta

Para o seu caso, eu faria assim:

MVP rápido

Python + asyncio + arquivos Markdown/ANSI + SQLite

Motivo:

Versão mais elegante depois

Go + Bubble Tea + Wish + SQLite/PostgreSQL

Motivo:

Evitaria no começo

Rust

Não porque seja ruim. Pelo contrário. Mas para esse projeto, Rust pode virar uma distração técnica. Você quer construir experiência, acervo e identidade, não passar três semanas brigando com lifetime para fazer menu de zine.


Caminho C: Web terminal + terminal real

Este é o melhor produto final.

Arquitetura recomendada

Usuário comum
    ↓
https://terminal.seudominio.com
    ↓
xterm.js no navegador
    ↓
WebSocket
    ↓
Servidor terminal app

Usuário retrô
    ↓
ssh guest@terminal.seudominio.com
    ↓
Servidor SSH/TUI

Usuário ultra retrô
    ↓
telnet terminal.seudominio.com 2323
    ↓
Servidor Telnet/TCP

Componentes

Web Terminal

xterm.js: https://github.com/xtermjs/xterm.js/

xterm.js é um componente front-end para trazer terminais completos para aplicações web. É usado por projetos como VS Code, Tabby e Hyper.

Compartilhar terminal via web

ttyd: https://github.com/tsl0922/ttyd
Site: https://tsl0922.github.io/ttyd/

ttyd permite compartilhar um terminal pela web. Pode ser útil para protótipo, mas eu teria cuidado para não expor shell real. Melhor rodar uma aplicação isolada, sem acesso ao sistema.

WebSSH2

GitHub: https://github.com/billchurch/webssh2

WebSSH2 é um cliente web SSH com suporte opcional a Telnet. Pode ser referência, mas eu não começaria por ele a menos que a ideia seja proxyar SSH/Telnet para navegador.


Melhor arquitetura final

Nginx
 ├── terminal.seudominio.com       -> página web com xterm.js
 ├── arquivos.seudominio.com       -> PDFs, EPUBs, ZIPs, imagens
 └── www.seudominio.com            -> site HTML normal

Serviços internos
 ├── terminal-app                  -> app terminal
 ├── websocket-gateway             -> conecta web ao app
 ├── ssh-server                    -> acesso via SSH guest
 ├── telnet-server                 -> acesso Telnet opcional
 └── postgres/sqlite               -> guestbook, logs, índice

6. Telnet ou SSH?

Telnet

Vantagens:

Desvantagens:

Uso recomendado:

Telnet apenas para acesso público anônimo, sem senha sensível.

Exemplo:

telnet terminal.seudominio.com 2323

SSH

Vantagens:

Desvantagens:

Uso recomendado:

SSH para experiência terminal principal.

Exemplo:

ssh guest@terminal.seudominio.com

Senha pública ou login sem senha controlado pelo servidor.

Web

Vantagens:

Desvantagens:

Uso recomendado:

Web como porta principal para pessoas normais.


7. Conteúdo do terminal

A estrutura pode ser baseada em arquivos simples.

content/
  manifestos/
    manifesto-do-arquivo.md
    contra-a-web-lisa.md

  zines/
    murad-press-001/
      index.md
      terminal.md
      zine.pdf
      assets/

  biblioteca/
    ocultismo/
    historia/
    tecnologia/
    cinema/
    saude-mental/

  ansi/
    welcome.ans
    menu.ans
    biblioteca.ans
    zines.ans

  ascii/
    dividers.txt
    logos.txt

O servidor lê esses arquivos e renderiza no terminal.

Essa abordagem é melhor que enfiar tudo no banco desde o começo. Banco serve para guestbook, logs e favoritos. Conteúdo editorial deve ficar em Markdown versionado com Git.


8. Formatos recomendados

Para cada publicação importante:

artigo.md      -> fonte principal
artigo.html    -> versão web
artigo.pdf     -> versão impressão/leitura
artigo.txt     -> versão terminal limpa
artigo.ans     -> versão ANSI especial, quando fizer sentido

Para zines:

zine-001/
  source.md
  terminal.txt
  terminal.ans
  index.html
  zine-001.pdf
  zine-001.epub
  cover.png
  assets/

Regra de ouro:

Markdown é a fonte. O resto é exportação.

Isso evita caos.


9. ASCII, ANSI e recursos visuais

Primeiro: o termo correto é ANSI, não “ANSII”.
ASCII é o conjunto/texto básico. ANSI, nesse contexto, é texto com códigos de escape para cor, posição e estilo no terminal.

ASCII

ASCII é ideal para:

Exemplo:

+------------------------------------------------+
|                 MURAD TERMINAL                 |
+------------------------------------------------+

ANSI

ANSI permite:

Exemplo:

\033[36mMURAD TERMINAL\033[0m

No arquivo .ans, isso fica embutido como sequências de escape.


10. Onde conseguir recursos ASCII/ANSI

16colo.rs

Site: https://16colo.rs/

Um dos arquivos mais importantes de ANSI/ASCII artpacks. Preserva artpacks da cena BBS/textmode desde os anos 1990 até o presente.

Uso recomendado:

Atenção:

Não copie arte sem verificar licença/autoria. Use como referência, peça permissão quando necessário ou crie arte própria inspirada.


Sixteen Colors Archive no GitHub

GitHub: https://github.com/sixteencolors/sixteencolors-archive

Arquivo histórico de ANSI/ASCII artpacks, útil para pesquisa, preservação e referência.


ASCII Art Archive

Site: https://www.asciiart.eu/

Grande coleção de ASCII art organizada por categorias.

Uso recomendado:

Atenção:

ASCII antigo circula muito sem autoria clara. Use com cuidado em projeto público.


Christopher Johnson's ASCII Art Collection

Site: https://asciiart.website/

Coleção clássica de ASCII art, estabelecida em 1994. Ainda acessível, embora não seja mais atualizada.


Textfiles

Site: http://textfiles.com/

Arquivo essencial da cultura BBS, textfiles, e-zines, underground digital, ASCII, arquivos históricos e documentos de subculturas digitais.

Uso recomendado:


Artpacks.org

Site: https://artpacks.org/

Arquivo de artpacks, incluindo ANSI, ASCII e arte digital da cena.


Defacto2

Site: https://defacto2.net/

Arquivo ligado à cena de grupos, releases, NFOs, cracktros, e-zines e cultura underground digital.

Uso recomendado:


Demozoo

Site: https://demozoo.org/

Banco de dados da demoscene. Útil para pesquisar grupos, produções, diskmags, demos e relações entre artistas/coders/músicos.


Scene.org

Site: https://scene.org/

Arquivo central da demoscene. Ótimo para garimpar demos, diskmags, intros e materiais preservados.


11. Ferramentas para criar ANSI/ASCII

Moebius

Site: https://blocktronics.github.io/moebius/
GitHub: https://github.com/blocktronics/moebius

Editor moderno para ANSI/ASCII art. É uma das melhores opções atuais para criar arte no estilo BBS.

Moebius Beyond

GitHub: https://github.com/michael-lazar/moebius-beyond

Fork/continuação moderna de editor ASCII/ANSI, útil para testar alternativas recentes.

PabloDraw

GitHub: https://github.com/cwensley/pablodraw
SourceForge: https://sourceforge.net/projects/pablodraw/

Editor ANSI/ASCII e RIPscrip. Curiosamente, o nome combina com você. É uma ferramenta clássica/moderna para criar arte textmode.

FIGlet

Site: http://www.figlet.org/

Gera banners de texto a partir de fontes ASCII.

Exemplo:

figlet "Murad Terminal"

TOIlet

Site: http://caca.zoy.org/wiki/toilet

Similar ao FIGlet, mas com suporte a efeitos e cores em alguns contextos.

jp2a

Site: https://github.com/cslarsen/jp2a

Converte imagens JPEG para ASCII.

chafa

Site: https://hpjansson.org/chafa/

Converte imagens para arte em terminal usando caracteres e cores. Excelente para gerar previews ANSI/terminal modernos.

aalib / libcaca

Sites:

Bibliotecas antigas/clássicas para renderização ASCII/ANSI-like.


12. Estética visual sugerida

Mistura de:

Paleta ANSI sugerida:

Preto fundo
Ciano para comandos
Amarelo para destaques
Branco/cinza para texto
Vermelho apenas para alerta
Verde para status/sistema
Magenta para seções especiais

Exemplo:

[OK]    arquivo carregado
[WARN]  item incompleto
[SYS]   sincronizando índice
[LOG]   novo fragmento encontrado

Evite excesso de cor. ANSI exagerado vira carnaval ilegível.


13. Experiência de navegação

Comandos simples:

help       mostra ajuda
ls         lista seções
cd zines   entra em zines
open 001   abre item
back       volta
home       início
search     busca
about      sobre
guestbook  livro de visitas
clear      limpa tela
exit       sair

Também pode ter menus numéricos para quem não quer digitar comandos:

[1] Biblioteca
[2] Zines
[3] ANSI
[4] Guestbook
[0] Sair

A melhor solução é híbrida:

menus para usuários casuais, comandos para usuários curiosos.


14. Funcionalidades boas para MVP

MVP não pode ser gigante. Se tentar fazer tudo no início, morre.

MVP v0.1

MVP v0.2

MVP v0.3


15. Funcionalidades de charme

Comando fortune

Mostra frases, aforismos, trechos de livros, notas do arquivo.

murad@terminal:~$ fortune

"Todo arquivo é uma tentativa de conversar com o futuro."

Comando random

Abre um texto aleatório.

murad@terminal:~$ random
Abrindo: Murad Press #01 / O Manifesto do Arquivo

Comando guestbook

Livro de visitas.

[2026-06-22] anon:
isso aqui parece uma BBS assombrada. gostei.

Comando weather, moon, now

Pequenas informações de ambiente.

Comando map

Mostra mapa do site em ASCII.

/
├── biblioteca
├── zines
├── ansi
├── manifestos
├── logs
└── guestbook

Easter eggs

sudo open arcana
hack reality
invoke qel
whoami

16. Segurança

Não romantize Telnet. Telnet é inseguro.

Regras:

Arquitetura segura:

Docker container
  usuário sem root
  filesystem read-only quando possível
  volume apenas para guestbook/db
  sem acesso a /home real
  sem shell real

Portas:

22    SSH real do servidor, privado/admin
2222  SSH público do terminal app
2323  Telnet público do terminal app
443   Web terminal/HTTPS

Não coloque o app no SSH real do servidor. Isso seria burrice operacional.


17. Deploy recomendado

VPS Debian 12.

Estrutura:

/opt/murad-terminal/
  app/
  content/
  ansi/
  data/
  docker-compose.yml
  nginx/
  scripts/

Serviços:

docker compose up -d

Nginx:

terminal.seudominio.com -> web terminal
arquivos.seudominio.com -> downloads estáticos

Firewall:

ufw allow 443
ufw allow 2323/tcp
ufw allow 2222/tcp
ufw deny 23/tcp

Por que evitar porta 23?

Porque porta 23 é Telnet padrão e recebe muito ruído de bot. Melhor usar 2323.


18. Banco de dados

Para MVP:

SQLite.

Tabelas:

guestbook(id, nick, message, created_at, approved)
sessions(id, ip_hash, started_at, last_seen)
logs(id, event, metadata, created_at)

Para versão maior:

PostgreSQL.

Mas começar com PostgreSQL pode ser overkill. SQLite resolve o início.


19. Conteúdo como Git

O acervo deve ficar em Git:

content/
  zines/
  manifestos/
  biblioteca/
  logs/

Vantagens:

Pipeline ideal:

Markdown fonte
    ↓
gera HTML
    ↓
gera TXT terminal
    ↓
gera PDF/EPUB
    ↓
atualiza índice do terminal

Ferramentas possíveis:


20. Versão web complementar

Não dependa só do terminal. Isso seria bonito, mas ruim para alcance.

Faça também:

https://seudominio.com/terminal

com:

A web normal é a vitrine. O terminal é o ritual.


21. Como o terminal poderia parecer

Tela de abertura:

████████████████████████████████████████████████████████
█                                                      █
█                  MURAD TERMINAL                     █
█              TEXTMODE ARCHIVE NODE                  █
█                                                      █
█        biblioteca • zines • logs • fragmentos        █
█                                                      █
████████████████████████████████████████████████████████

STATUS: ONLINE
NODE:   SAO-PAULO / ARCHIVE
MODE:   PUBLIC

Digite 'help' para comandos ou escolha uma opção:

[1] Biblioteca
[2] Zines
[3] Manifestos
[4] Arquivo ANSI
[5] Guestbook
[0] Sair

murad@terminal:~$

Tela de artigo:

┌──────────────────────────────────────────────────────┐
│ Murad Press #001                                     │
│ O Manifesto do Arquivo                               │
└──────────────────────────────────────────────────────┘

Todo arquivo é uma conversa com o futuro.

A web moderna virou lisa demais: rápida, otimizada,
rastreável, previsível. O terminal é o contrário:
ele exige presença, comando, espera e escolha.

[← back] [n next] [p prev] [q quit]

22. Stack final recomendada para Pablo

Fase 1: protótipo simples

Python
asyncio
SQLite
Markdown
ANSI files
Docker
Nginx

Entrada:

Web via xterm.js ou interface HTML simples
Telnet em porta 2323

Fase 2: versão bonita

Go
Bubble Tea
Wish SSH
SQLite/PostgreSQL
Nginx
xterm.js
Docker

Entrada:

ssh guest@terminal.seudominio.com -p 2222
telnet terminal.seudominio.com 2323
https://terminal.seudominio.com

Fase 3: ecossistema

Murad Terminal
Murad Press
Murad Library
dlore/QEL Node
Biblioteca Arcana
Gerador de zines
Exportador PDF/EPUB
Busca com IA

23. O que não fazer

Não começar por:

Isso mataria o projeto por excesso de arquitetura.


24. Ordem prática de execução

Etapa 1

Criar repositório:

murad-terminal/

Estrutura:

app/
content/
ansi/
data/
docker/
README.md

Etapa 2

Criar conteúdo inicial:

content/about.md
content/help.md
content/manifestos/manifesto-do-terminal.md
content/zines/murad-press-001/index.md

Etapa 3

Criar servidor simples:

Etapa 4

Criar web landing page:

https://terminal.seudominio.com

Com:

Etapa 5

Adicionar guestbook com moderação.

Etapa 6

Adicionar arte ANSI própria.

Etapa 7

Automatizar publicação de zines.


25. Fontes e referências úteis

BBS / servidores

Terminal UI / TUI

ANSI / ASCII

Editores e conversores


26. Resumo executivo

O projeto ideal é:

Um terminal-site/BBS moderna, com entrada por web, SSH e Telnet, usando Markdown como fonte editorial, ANSI/ASCII como estética, HTTPS para arquivos grandes e um backend simples para navegação, guestbook e busca.

A melhor stack inicial:

Python + asyncio + SQLite + Markdown + ANSI + Docker + Nginx

A melhor stack madura:

Go + Bubble Tea + Wish + xterm.js + SQLite/PostgreSQL + Docker + Nginx

A estética:

BBS + zine + terminal Unix + arquivo oculto + biblioteca pessoal

A regra de ouro:

Web para alcance. Terminal para ritual. Markdown para preservação. ANSI para alma.

View the original Markdown file


Ideas | What changed | RSS | About | Text version

Pablo Murad <pablomurad@pm.me>