Browsing
A proxy you control.
Three ways to browse: the hosted RedProxy, the Infrared UBG site, or the reference deployment on your own edge. RedProxy uses a Bare relay on Cloudflare; Redline uses Epoxy over WISP on a host you control.
Browsing services
Hosted and self-hosted options, maintained by RedWire.
Hosted
-
RedProxyThe hosted browsing proxy. Ultraviolet rewrites the page, a Cloudflare Worker speaks Bare v3 for HTTP and WebSockets, and there is no account.
UBG
-
InfraredThe UBG site. An experimental proxy with a game library, app shortcuts, tab cloaking and ad-free deployment.
Self-hosted
-
RedlineThe reference UBG deployment: static shell, Ultraviolet service worker, BareMux transport, Epoxy over WISP and a Node relay. One command.
Request path
What happens
What happens
when you browse.
Redline keeps the stack small and inspectable. Every layer has one job and can be replaced.
- ShellThe page registers a service worker at
/service/. - RewriteUltraviolet fetches and rewrites HTML, CSS and JavaScript in your origin.
- TransportBareMux hands the request to Epoxy, which opens an encrypted stream over WISP.
- RelayThe Node relay opens the upstream TCP connection and pipes bytes back.
bash — deploy redline
$ git clone https://github.com/RRedwire/red-wire $ cd red-wire/services/redline $ npm install $ npm start > redline listening on :8080 > wisp relay at /wisp/ # open http://localhost:8080
Hosting notes
HTTPS is required.
Service workers only register on secure origins. Use HTTPS in production, or localhost for development.
RedProxy runs on a Worker.
Cloudflare blocks outbound TCP to ports 80 and 443, so RedProxy uses a Bare relay over fetch() instead of WISP.
The relay needs WebSockets.
Cloudflare Pages can host the static shell but not a WISP relay. Run Redline on a container host with WebSocket support.
No upstream dependency.
Redline serves every byte itself. The only external dependency is the site you choose to visit.