{"id":13751443,"url":"https://github.com/maldorne/mud-web-proxy","last_synced_at":"2025-05-09T18:31:24.048Z","repository":{"id":49227688,"uuid":"252981377","full_name":"maldorne/mud-web-proxy","owner":"maldorne","description":"Web proxy for playing MUD / MUSH / MOO games.","archived":false,"fork":false,"pushed_at":"2025-03-28T21:14:13.000Z","size":253,"stargazers_count":11,"open_issues_count":2,"forks_count":3,"subscribers_count":2,"default_branch":"develop","last_synced_at":"2025-03-28T21:26:44.717Z","etag":null,"topics":["moo","mud","mush","proxy","telnet","websockets"],"latest_commit_sha":null,"homepage":"https://www.maldorne.org","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maldorne.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-04T11:41:39.000Z","updated_at":"2025-03-28T21:12:07.000Z","dependencies_parsed_at":"2023-02-08T12:40:13.626Z","dependency_job_id":"3ab3852c-7661-412c-8547-2cdeca1a4af7","html_url":"https://github.com/maldorne/mud-web-proxy","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maldorne%2Fmud-web-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maldorne%2Fmud-web-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maldorne%2Fmud-web-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maldorne%2Fmud-web-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maldorne","download_url":"https://codeload.github.com/maldorne/mud-web-proxy/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253303024,"owners_count":21886873,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["moo","mud","mush","proxy","telnet","websockets"],"created_at":"2024-08-03T09:00:45.168Z","updated_at":"2025-05-09T18:31:24.019Z","avatar_url":"https://github.com/maldorne.png","language":"JavaScript","funding_links":[],"categories":["Clients"],"sub_categories":["Web Proxies"],"readme":"# mud-web-proxy\n\n### What is this?\n\n[node.js](https://nodejs.org/en/) microserver which provides a secure websocket (`wss://`) to telnet (`telnet://`) proxy for [MUD](https://en.wikipedia.org/wiki/MUD) / MUSH / MOO game servers, supporting all major data interchange and interactive text protocols. To connect and play a game, you will need to run in your web page a web client capable to connect through `wss` to this proxy, like [`mud-web-client`](https://github.com/maldorne/mud-web-client).\n\n### History\n\nThis project is a fork of [MUDPortal-Web-App](https://github.com/plamzi/MUDPortal-Web-App), made by [@plamzi](https://github.com/plamzi), creator of [mudportal.com](http://www.mudportal.com/). The original project had the code of both the client and proxy-server apps, and was outdated and did not support secure connections (`wss://` instead of `ws://`), so I decided to fork it in 2020, separate in different projects and update them. But kudos to [@plamzi](https://github.com/plamzi), who is the original author.\n\nIn 2025, I've ported the project to use ES modules.\n\n### Motivation\n\nIn modern browsers, web-pages served through `https://` are not allowed to open connections to non-secure locations, so an `https://`-served web could not include a web client which opens a connection using `ws://`. Modifications were needed to allow secure connections.\n\n## Features\n\n  * MCCP compression support (zlib)\n  * MXP protocol support built into the client\n  * MSDP protocol support\n  * GMCP / ATCP protocol support (JSON) with sample uses in multiple existing plugins\n  * 256-color support, including background colors\n  * Unicode font support and UTF-8 negotiation\n  * To avoid abuse, default installation only allows connection to an specific server, although it can be configured to connect to any server sent by the client as an argument.\n\n## Installation\n\n``` bash\ngit clone https://github.com/maldorne/mud-web-proxy\nnpm install\nsudo node wsproxy.js\n```\n\nYou need to have your certificates available to use wsproxy. If you start the proxy without certificates, you'll see something like this:\n\n``` bash\n$ sudo node wsproxy.js\nCould not find cert and/or privkey files, exiting.\n```\n\nYou need to have available both files in the same directory as the proxy, like this:\n\n``` bash\n$ ls\ncert.pem  chat.json  LICENSE.md  node_modules  package.json  package-lock.json  privkey.pem  README.md  wsproxy.js\n```\n\nwhere `cert.pem` and `privkey.pem` will be links to the real files, something like:\n\n``` bash\ncert.pem -\u003e /etc/letsencrypt/live/...somewhere.../cert.pem\nprivkey.pem -\u003e /etc/letsencrypt/live/...somewhere.../privkey.pem\n```\n\nHow to install the certificates is beyond the scope of this project, but you could use [Certbot](https://certbot.eff.org/pages/about). You can find installation instructions for every operating system there, or look for instructions for your specific OS in any search engine with something like `How to install certbot for let's encrypt in \u003cyour operating system\u003e`.\n\n## Configuration\n\nIn `wsproxy.js` you can change the following options:\n\n``` javascript\n  /* this websocket proxy port */\n  ws_port: 6200,\n  /* default telnet host */\n  tn_host: 'muds.maldorne.org',\n  /* default telnet/target port */\n  tn_port: 5010,\n  /* enable additional debugging */\n  debug: false,\n  /* use node zlib (different from mccp) - you want this turned off unless your server can't do MCCP and your client can inflate data */\n  compress: true,\n  /* set to false while server is shutting down */\n  open: true,\n```\n\nProbably you will only have to change:\n * `tn_host` with your hostname (Note that `localhost` or `127.0.0.1` don't seem to work: [see conversation here](https://github.com/maldorne/mud-web-proxy/issues/5#issuecomment-866464161), although it has not been tested in deep).\n * `tn_port` with the port where the mud is running.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaldorne%2Fmud-web-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaldorne%2Fmud-web-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaldorne%2Fmud-web-proxy/lists"}