| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
First-party React and Node web MUD client for LuminariMUD-compatible games, with a browser UI, WebSocket-to-Telnet proxy, and MSDP-driven HUD state.
Note
This public distribution intentionally excludes the project's proprietary image and audio library. The checked-in media manifest is empty, and missing media degrades to the accessible text-first interface without blocking play. Contributors may supply their own rights-cleared assets through the documented media pipeline.
What we call the "Lumiverse":
Install dependencies once:
npm installRun the frontend and proxy together:
npm run devDefault local services:
.
|-- src/ # React browser client
|-- server/ # Express and WebSocket-to-Telnet proxy
|-- shared/ # Shared app settings and MUD protocol types
|-- public/ # Static browser assets
|-- docs/ # Project documentation
|-- package.json # npm scripts and dependencies
\-- vite.config.ts # Vite frontend and dev proxy configuration
Phase 00 aligned the client with confirmed Luminari-Source MSDP data and made unsupported data states explicit. Phase 01 hardened the Telnet parser, reconnect lifecycle, resize handling, renderer decision, and public proxy safety. Phase 02 added the character, combat, group, affects, inventory, room, map, and quest fallback panels. Phase 03 records protocol support boundaries in the Protocol Feature Checklist. The product plan still tracks source-level protocol work in later phases.
| Technology | Purpose |
|---|---|
| TypeScript | Shared frontend, server, and protocol typing |
| React | Browser client UI |
| Vite | Frontend development server and production build |
| Express | HTTP server for health, settings, and static assets |
| ws | Browser WebSocket server |
| Node net | Telnet socket from proxy to MUD server |
| ansi-to-html | Current terminal text rendering |
| Command | Purpose |
|---|---|
| npm run dev | Run frontend and proxy together |
| npm run dev:client | Run Vite only |
| npm run dev:server | Run the proxy server only |
| npm run lint | Run ESLint |
| npm run build | Type-check and build client/server output |
| npm test | Run focused MSDP mapping and fixture tests |
| npm run preview | Preview built client assets |
| npm start | Run the built server from dist/server/index.js |
Primary defaults live in shared/app-settings.ts. The browser loads those settings at runtime from /api/settings.
Environment overrides:
| Variable | Default | Purpose |
|---|---|---|
| PORT | 5191 | HTTP/WebSocket server port |
| VITE_WS_URL | same-origin /ws | Browser WebSocket target override |
| PROXY_PUBLIC_MODE | true | Keep public proxy routing allowlisted |
| PROXY_ALLOWED_ORIGINS | local dev origins | Public browser origins allowed to open /ws |
| PROXY_ALLOWED_DESTINATIONS | curated presets | Server-only extra host:port MUD routes |
| PROXY_ALLOW_CUSTOM_DESTINATIONS | false in public | Explicit operator opt-in for custom routes |
| PROXY_ALLOW_LOCAL_DESTINATIONS | false | Development-only local/private MUD opt-in |
| LOCAL_MUD_PORT | 4100 | Development-only local MUD preset port |
The supported public deployment path is the integrated game-aware proxy. Bridge fallbacks are separate terminal-only transport options, not replacements for the React app's /ws protocol.
Architecture decisions, protocol boundaries, and active operational guidance are tracked in docs/. Historical product planning is retained in docs/prev_prd/PRD.md.
| Back | FazBrowse Home | New Git URL |