zefie_wtvp_minisrv
zefie_wtvp_minisrv copied to clipboard
This node.js project provides a mini WebTV Server, with encrypted WTVP (WebTV Protocol) support.
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 beta status. Use at your own risk.
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)
- WebTV cookie support (wtv-cookie) for HTTP(s)
- Flashrom flashing support for all known units (including bf0app 'Old Classic')
- Can flash anything on Ultra Willies with optional
use_zefie_server
flag set onwtv-flashrom
service. -
wtv-disk:/sync
for Download-o-Rama style file downloading - Custom Tellyscripts (not yet customizable though)
- Flat file client session store and registration system
- wtv-lzpf compression support by eMac (99.9%)
- wtv-favorites support
- wtv-news support (WIP)
- wtv-mail (within same server only)
- "PC Services" (node express with minisrv custom script processing)
- "ViewerGen" Generate "WebTV Viewer" (Windows WebTV Sim) with unique SSIDs
Current issues:
- Mis-configuring wtv-disk:/sync DiskMaps may cause units to delete contents of partitions (need more info)
Feature Todo:
- TellyScript generation and/or manipulation without external dependancies
- Finish wtv-news, complete with upstream integration support (cross-minisrv usenet)
- Finish wtv-guide
- Add wtv-author (Pagebuilder)
- ~~wtv-setup and bgm support~~ Done v0.9.23
- ~~wtv-cookie full support~~ Done v0.9.13
- ~~Flashrom flashing for bf0app old classic~~ Done v0.9.9
- ~~SSID/IP black/whitelisting (including tying SSID to an IP or multiple IPs)~~ Done v0.9.4
- ~~Flashrom flashing functionality (at least for LC2 and higher)~~ Done v0.8.0
- ~~Implement HTTP proxy (needs to be able to defluff most of the web, think retro WAP converter)~~ Done v0.7.1
How To Use:
- Install node.js v16 or newer. If on Windows, be sure to say
Yes
when asked aboutChocolatey
. - Install git (if on Windows, install from Git for Windows
- 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 runnpm install
- Check any configuration. Create your override
user_config.json
. Especallyservice_ip
. See user_config_README.md and user_config.example.json for more information.-
Note: The intended use is for all custom config to be in
user_config.json
and any custom service files to go inUserServiceVault
. If you do not care about potential issues with futuregit pull
, and will manually add new upstreamconfig.json
entries, you could use the standardServiceVault
andconfig.json
-
Note: The intended use is for all custom config to be in
- Run
npm start
(note: if you are using node version 17 or newer, and are getting errors, trynpm start17
) - If you have trouble running it on Windows, try a Linux machine, Windows may need a full development enviroment or extra steps.
- 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
How to Support the Project
- Report Bugs
- Add a Feature and send a Pull Request
- Write and submit better documentation than I created (see Pull Request above)
- Content Creators: Shout out this project, and my YouTube Channel (https://www.youtube.com/zefievideo)
- Financially Support:
- Companies: Reach out to [email protected] to sponsor this project
- Subscribe on Patreon
- One-Time Support: