Files
minisrv/README.md
zefie 6c479782e9 v0.9.1
- fix: throw proper error if wtv-update:/sync called without arguments
 - feature: Support to route all HTTP proxied requests over a SOCKS proxy (eg Tor or VPN)
 - feature: Psuedo-HTTPS (WebTV can now visit HTTPS URLs via proxy, but
     we do not use SSL encryption when sending back to the WebTV)
 - fix: header issue with login-stage-two.js
 - fix: encrypted request headers were shown despite verbosity level
 - update: wtv-update/sync: allow multiple groups in sync diskmap, fix md5 comparsion
 - update: wtv-home:/home: added connection speed
 - Renamed processSSID to filterSSID
 - Documented and rewrote some functions
2022-11-29 07:43:52 -05:00

3.2 KiB

wtv minisrv node.js

The wtv minisrv, or "zefie_wtvp_minisrv" project is a node.js project that provides a mini WebTV Server, aiming for full WTVP (WebTV Protocol) support. This open source server is in alpha status. Use at your own risk.

License: GPL v3

Current status:

  • Supports most known WebTV service encryption scenarios, for full trusted box access
  • Can handle client "relogin" and "reconnect" events
  • Suports .js service files with synchronous or asynchronous requests
  • Supports multiple simultaneous users
  • WebTV-compatible HTTP(S) Proxy (via minisrv, or using an external proxy for enhanced features (such as WebOne)
  • wtv-flashrom for LC2 and newer boxes (bf0app unsupported, need test unit)
  • Can flash anything on Ultra Willies with optional use_zefie_server flag set on wtv-flashrom service.
  • wtv-update:/sync for Download-o-Rama style file downloading

Current issues:

  • Occasionally, in certain circumstances, a specific SSID may be unable to reconnect to the server until the server is restarted
  • Mis-configuring wtv-update:/sync DiskMaps may cause units to delete contents of partitions (need more info)

Won't fix:

  • wtv-encryption stream breaks when two different sessions have the same SSID (eg spoofing, won't fix (production did it too))
  • No intentions to support user accounts, registration, or any form of database system

Feature Todo:

  • (maybe) implement HTTP proxy (needs to be able to defluff most of the web, think retro WAP converter) Done
  • (maybe) enable "internet mode" (let user outside of minisrv) Done
  • Flashrom flashing functionality (at least for LC2 and higher) Done
  • Flashrom flashing for bf0app old classic (need donor unit)
  • SSID/IP black/whitelisting (including tying SSID to an IP or multiple IPs)
  • wtv-lzpf support
  • (maybe) Proper wtv-star (generic service outage page) support (maybe useful for allowing a unit to multiple sub-minisrvs).
  • (maybe) wtvchat stuff
  • (probably not) url tokenizer (eg wtv-token-blabla, was mostly to secure service URLs from unintended access, which this server does not aim to do)

How To Use:

  • Install node.js. Be sure to say Yes when asked about Chocolatey.
  • If you have trouble running it on Windows, try a Linux machine, Windows may need a full development enviroment or extra steps.
  • Download a snapshot (either of master, or of any commit/branch/relase/tag etc)
  • Extract zip somewhere and enter that directory with a command prompt
  • Enter zefie_wtvp_minisrv subdirectory
  • Verify you are in the same directory as app.js, then run npm install
  • Check any configuration, and modify to your liking. Especally service_ip (config can be found in services.json)
  • Run node app.js
  • Test with a WebTV Viewer or connect with a real box
  • To connect with a real box, you will need to open ports in your firewall and have a way to connect your WebTV (and preferably reroute 10.0.0.1 to the server)
  • See ServiceVault.md for a brief introduction to how the service files work