wrp/README.md

81 lines
4.0 KiB
Markdown
Raw Normal View History

# WRP - Web Rendering Proxy
2019-06-01 01:28:48 +00:00
2019-11-04 07:55:33 +00:00
A browser-in-browser "proxy" server that allows to use historical / vintage web browsers on the modern web. It works by rendering a web page in to a GIF or PNG image with clickable imagemap.
2019-01-08 01:04:07 +00:00
2019-07-17 20:59:44 +00:00
![Internet Explorer 1.5 doing Gmail](wrp.png)
2019-12-24 10:51:44 +00:00
## Usage
2019-06-05 08:42:17 +00:00
2020-04-23 10:30:06 +00:00
1. [Download a WRP binary](https://github.com/tenox7/wrp/releases/) and run it on a machine that will become your WRP gateway/server. Google Chrome Browser is required.
2019-11-04 07:59:22 +00:00
2. Point your legacy browser to `http://address:port` of WRP server. Do not set or use it as a "http proxy server".
2019-12-25 11:35:48 +00:00
3. Type a search string or a http/https URL and click **Go**.
2019-12-24 10:51:44 +00:00
4. Adjust your screen width/height/scale/#colors to fit in your old browser.
2019-07-12 09:04:35 +00:00
5. Scroll web page by clicking on the in-image scroll bar.
2019-12-24 11:14:29 +00:00
6. Do not use client browser history-back, instead use **Bk** button in the app.
2019-12-25 11:35:48 +00:00
7. To send keystrokes, fill **K** input box and press **Go**. There also are buttons for backspace, enter and arrow keys.
2019-12-25 11:42:15 +00:00
8. You can set height **H** to `0` to render pages in to one tall image without the vertical scrollbar. This feature is experimental and your mileage will vary depending ong many factors.
2019-12-25 11:39:07 +00:00
9. Prefer PNG over GIF if your browser supports it. PNG is much faster, whereas GIF requires a lot of additional processing on both client and server.
2019-06-05 08:42:17 +00:00
2019-08-04 08:14:31 +00:00
## Docker
2019-08-04 07:51:55 +00:00
2019-10-15 05:26:32 +00:00
docker hub:
2019-12-24 10:51:44 +00:00
```shell
2019-08-05 07:22:19 +00:00
docker run -d -p 8080:8080 tenox7/wrp
2019-06-04 09:20:43 +00:00
```
2019-10-15 05:26:32 +00:00
gcr.io:
2019-12-24 10:51:44 +00:00
```shell
2019-10-15 05:26:32 +00:00
docker run -d -p 8080:8080 gcr.io/tenox7/wrp:latest
```
2019-08-04 08:14:31 +00:00
## Flags
2019-08-04 07:51:55 +00:00
2019-12-24 10:51:44 +00:00
```flags
2019-08-04 08:14:31 +00:00
-l listen address:port, default :8080
2019-12-24 10:56:36 +00:00
-t image type gif (default) or png, when using PNG number of colors is ignored
2019-12-25 11:35:48 +00:00
-g image geometry, WxHXC, height can be 0 for unlimited, default 1152x600x256
2019-12-24 11:14:29 +00:00
-h headed mode, display browser window on the server
2019-08-04 08:14:31 +00:00
-d chromedp debug logging
-n do not free maps and gif images after use
2019-08-04 07:51:55 +00:00
```
2019-07-17 07:49:36 +00:00
## Minimal Requirements
2019-12-24 11:14:29 +00:00
* Server Gateway should run on a modern hardware/os that supports memory hungry Chrome.
2019-12-25 11:35:48 +00:00
* Client Browser needs to support `HTML FORMs` and `ISMAP`. Typically Mosaic 2.0 would be minimum version for forms. However ISMAP was supported since 0.6B, so if you manually enter url using `?url=...`, you can use the earlier version.
2019-07-17 07:49:36 +00:00
## Troubleshooting
### I can't get it to open
2020-03-24 02:47:35 +00:00
This program does not have a GUI and is run from the command line. You may need to enable executable bit, for example on Mac:
```bash
$ cd ~/your-download-directory
$ chmod +x wrp-amd64-macos
$ ./wrp-amd64-macos -t png
```
2019-07-13 08:23:34 +00:00
## History
2019-12-24 10:51:44 +00:00
2019-12-24 11:14:29 +00:00
* In 2014, version 1.0 started as a *cgi-bin* script, adaptation of `webkit2png.py` and `pcidade.py`, [blog post](https://virtuallyfun.com/2014/03/03/surfing-modern-web-with-ancient-browsers/).
2019-07-13 08:25:35 +00:00
* Later in 2014, version 2.0 became a stand alone http-proxy server, also support for both Linux/MacOS, [another post](https://virtuallyfun.com/wordpress/2014/03/11/web-rendering-proxy-update//).
2019-07-13 08:23:34 +00:00
* In 2016 the whole internet migrated to HTTPS/SSL/TLS and WRP largely stopped working. Python code became unmaintainable and mostly unportable (especially to Windows, even WSL).
* In 2019 WRP 3.0 has been rewritten in Golang/Chromedp as browser-in-browser instead of http proxy.
2020-03-24 02:47:35 +00:00
* Later in 2019, WRP 4.0 has been completely refactored to use mouse clicks via imagemap instead parsing a href nodes. Also in 4.1 added sending keystrokes in to input boxes. You can now login to Gmail. Also now runs as a Docker container. Version 4.5 introduces rendering whole pages in to one tall image image.
2019-06-06 23:46:40 +00:00
2019-12-25 11:35:48 +00:00
## Credits
2019-12-24 10:51:44 +00:00
2019-06-10 22:14:17 +00:00
* Uses [chromedp](https://github.com/chromedp), thanks to [mvdan](https://github.com/mvdan) for dealing with my issues
2019-06-18 21:46:19 +00:00
* Uses [go-quantize](https://github.com/ericpauley/go-quantize), thanks to [ericpauley](https://github.com/ericpauley) for developing the missing go quantizer
2019-06-10 22:14:17 +00:00
* Thanks to Jason Stevens of [Fun With Virtualization](https://virtuallyfun.com/) for graciously hosting my rumblings
2019-07-14 08:40:17 +00:00
* Thanks to [claunia](https://github.com/claunia/) for help with the Python/Webkit version in the past
2019-06-18 21:48:39 +00:00
## Legal Stuff
2019-12-24 10:51:44 +00:00
2019-06-18 21:49:32 +00:00
License: Apache 2.0
Copyright (c) 2013-2018 Antoni Sawicki
2020-03-24 02:54:03 +00:00
Copyright (c) 2019-2020 Google LLC