update README

This commit is contained in:
zefie
2025-07-15 13:52:50 -04:00
parent 66507c6709
commit b1b8cddbda

View File

@@ -1,22 +1,25 @@
# wtv minisrv node.js # 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. The ***wtv minisrv***, or "***zefie_wtvp_minisrv***" project is a WebTV Server written in node.js.
The project aims to provides an easy-to-use WebTV Server, with full WTVP (WebTV Protocol) support.
This open source server is in beta status. Use at your own risk. This open source server is in beta status. Use at your own risk.
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
### Current status: ### Current status:
- Supports most known WebTV service encryption scenarios, for full trusted box access - DB-less flat file client session store and registration system
- Can handle client "relogin" and "reconnect" events
- Suports `.js` service files with synchronous or asynchronous requests
- Supports multiple simultaneous users - Supports multiple simultaneous users
- Supports all known WebTV service encryption scenarios, for full trusted box access
- Supports nearly all WebTV clients (still some issues with early alpha builds)
- Suports `.js` service files with synchronous or asynchronous requests
- Supports `.cgi` and/or `.php` scripts via CGI system
- WebTV-compatible HTTP(S) Proxy (via minisrv, or using an external proxy for enhanced features (such as [WebOne](https://github.com/atauenis/webone)) - WebTV-compatible HTTP(S) Proxy (via minisrv, or using an external proxy for enhanced features (such as [WebOne](https://github.com/atauenis/webone))
- WebTV cookie support (wtv-cookie) for HTTP(s) - WebTV cookie support (wtv-cookie) for HTTP(s)
- [ProtoWeb](https://protoweb.org/) Support via `proto://`
- Flashrom flashing support for all known units (including bf0app 'Old Classic') - Flashrom flashing support for all known units (including bf0app 'Old Classic')
- Can flash anything on [Ultra Willies](https://wtv.zefie.com/willie.php) with optional `use_zefie_server` flag set on `wtv-flashrom` service. - Can flash anything on [Ultra Willies](https://wtv.zefie.com/willie.php) with optional `use_zefie_server` flag set on `wtv-flashrom` service.
- `wtv-disk:/sync` for Download-o-Rama style file downloading - `wtv-disk:/sync` for Download-o-Rama style file downloading
- Custom Tellyscripts *(not yet customizable though)* - Custom Tellyscript Generation
- Flat file client session store and registration system
- wtv-lzpf compression support by eMac (99.9%) - wtv-lzpf compression support by eMac (99.9%)
- wtv-favorites support - wtv-favorites support
- wtv-news support (WIP) - wtv-news support (WIP)
@@ -24,14 +27,14 @@ This open source server is in beta status. Use at your own risk.
- "PC Services" (node express with minisrv custom script processing) - "PC Services" (node express with minisrv custom script processing)
- "ViewerGen" Generate "WebTV Viewer" (Windows WebTV Sim) with unique SSIDs - "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: ### Feature Todo:
- TellyScript generation and/or manipulation without external dependancies
- Finish wtv-news, complete with upstream integration support (cross-minisrv usenet) - Finish wtv-news, complete with upstream integration support (cross-minisrv usenet)
- Finish wtv-guide - Finish wtv-guide
- Add wtv-author (Pagebuilder) - Finish Scrapbook
- Polish account transfer system (#16)
- MAYBE: Create proper web-slimming proxy (WTVProxy.js?)
- ~~TellyScript generation and/or manipulation without external dependancies~~ ***Done [v0.9.60](https://github.com/zefie/zefie_wtvp_minisrv/releases/tag/v0.9.60)***
- ~~Add wtv-author (Pagebuilder)~~ ***Done [v0.9.59](https://github.com/zefie/zefie_wtvp_minisrv/releases/tag/v0.9.59)***
- ~~wtv-setup and bgm support~~ ***Done [v0.9.23](https://github.com/zefie/zefie_wtvp_minisrv/releases/tag/v0.9.23)*** - ~~wtv-setup and bgm support~~ ***Done [v0.9.23](https://github.com/zefie/zefie_wtvp_minisrv/releases/tag/v0.9.23)***
- ~~wtv-cookie full support~~ ***Done [v0.9.13](https://github.com/zefie/zefie_wtvp_minisrv/releases/tag/v0.9.13)*** - ~~wtv-cookie full support~~ ***Done [v0.9.13](https://github.com/zefie/zefie_wtvp_minisrv/releases/tag/v0.9.13)***
- ~~Flashrom flashing for bf0app old classic~~ ***Done [v0.9.9](https://github.com/zefie/zefie_wtvp_minisrv/releases/tag/v0.9.9)*** - ~~Flashrom flashing for bf0app old classic~~ ***Done [v0.9.9](https://github.com/zefie/zefie_wtvp_minisrv/releases/tag/v0.9.9)***
@@ -42,18 +45,24 @@ This open source server is in beta status. Use at your own risk.
### How To Use: ### How To Use:
- Install [node.js](https://nodejs.org/en/download/) v16 or newer. If on Windows, be sure to say `Yes` when asked about `Chocolatey`. - Install [node.js](https://nodejs.org/en/download/) v16 or newer. If on Windows, be sure to say `Yes` when asked about `Chocolatey`.
- Install git (if on Windows, install from [Git for Windows](https://gitforwindows.org/) - Install git (if on Windows, install from [Git for Windows](https://gitforwindows.org/)
- Download a snapshot (either of master, or of any commit/branch/relase/tag etc) - Clone the repository
- Extract zip somewhere and enter that directory with a command prompt
- Enter `zefie_wtvp_minisrv` subdirectory - Enter `zefie_wtvp_minisrv` subdirectory
- Enter `zefie_wtvp_minisrv` subdirectory again (there are 2 after a git clone)
- Verify you are in the same directory as `app.js`, then run `npm install` - Verify you are in the same directory as `app.js`, then run `npm install`
- Check any configuration. Create your override `user_config.json`. Especally `service_ip`. See [user_config_README.md](user_config_README.md) and [user_config.example.json](zefie_wtvp_minisrv/user_config.example.json) for more information. - Check any configuration. Create your override `user_config.json`. Especally `service_ip`. See [user_config_README.md](user_config_README.md) and [user_config.example.json](zefie_wtvp_minisrv/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 in `UserServiceVault`. If you do not care about potential issues with future `git pull`, and will manually add new upstream `config.json` entries, you could use the standard `ServiceVault` and `config.json` - **Note:** The intended use is for all custom config to be in `user_config.json` and any custom service files to go in `UserServiceVault`. If you do not care about potential issues with future `git pull`, and will manually add new upstream `config.json` entries, you could use the standard `ServiceVault` and `config.json`
- Run `npm start` (**note**: if you are using node version 17 or newer, and are getting errors, try `npm start17`) - Run `npm start`
- 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, MAME, or connect with a real box
- 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) ### Customization:
- See [ServiceVault.md](ServiceVault.md) for a brief introduction to how the service files work - See [ServiceVault.md](ServiceVault.md) for a brief introduction to how the service files work
### Connection notes:
- 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 and 10.0.128.1 to the server)
- To connect with MAME you will need to set up [touchppp](https://github.com/wtvemac/touchppp) (I recommend an Alpine Linux VM).
- Most WebTV connection scenarios can handle a PPP session that doesn't require authentication. However flashing ROMs on the bf0app Old Classic REQUIRES the server accept PPP auth, and the auth must be valid.
- Configuring firewalls and real boxes is outside the scope of this guide, but there are plenty of enthusiasts on the [WebTV Discord](https://zef.pw/wtvdiscord) that will likely help you.
### How to Support the Project ### How to Support the Project
- [Report Bugs](https://github.com/zefie/zefie_wtvp_minisrv/issues) - [Report Bugs](https://github.com/zefie/zefie_wtvp_minisrv/issues)
- [Add a Feature and send a Pull Request](https://github.com/zefie/zefie_wtvp_minisrv/pulls) - [Add a Feature and send a Pull Request](https://github.com/zefie/zefie_wtvp_minisrv/pulls)
@@ -66,4 +75,3 @@ This open source server is in beta status. Use at your own risk.
- [CashApp $altimit](https://cash.app/$altimit) - [CashApp $altimit](https://cash.app/$altimit)
- Chime: $zefie - Chime: $zefie
- [Credit Card or PayPal (powered by StreamElements)](https://zef.pw/ttv-tip) - [Credit Card or PayPal (powered by StreamElements)](https://zef.pw/ttv-tip)
- [Sign up for a service via a referal link](https://zefie.tv/#ad)