Example application of Scramjet which can be deployed in production. https://scramjet.mercurywork.shop
Find a file
percs c0f33a5b45
Some checks failed
Build and Push to Docker Hub / build_and_push_docker_images (push) Has been cancelled
ESLint / Run eslint scanning (push) Has been cancelled
fix: use the create frame api rather than encoding a url
2025-11-02 17:36:41 -06:00
.github migrate to new eslint and prettier + format 2024-10-27 01:07:25 -05:00
public fix: use the create frame api rather than encoding a url 2025-11-02 17:36:41 -06:00
src move to scramjet/path 2025-09-06 20:08:17 -07:00
.dockerignore change docker-compose and add .dockerignore 2024-07-27 11:14:40 +00:00
.gitignore switch to scramjet + rebranding 2025-06-29 23:11:04 -07:00
.prettierignore remove unused SSL certificates 2022-09-11 18:12:29 -04:00
.prettierrc.js migrate to new eslint and prettier + format 2024-10-27 01:07:25 -05:00
.replit use working replit channel 2023-01-25 18:48:48 -05:00
app.json switch to scramjet + rebranding 2025-06-29 23:11:04 -07:00
docker-compose.yml switch to scramjet + rebranding 2025-06-29 23:11:04 -07:00
Dockerfile switch to scramjet + rebranding 2025-06-29 23:11:04 -07:00
eslint.config.mjs migrate to new eslint and prettier + format 2024-10-27 01:07:25 -05:00
LICENSE Switch to AGPL (#108) 2024-12-04 20:38:31 -06:00
package.json chore: bump scramjet release 2025-09-24 15:13:10 -07:00
pnpm-lock.yaml chore: bump scramjet release 2025-09-24 15:13:10 -07:00
README.md chore: update readme 2025-10-28 20:15:30 -07:00
replit.nix upgrade nix channel and node 2023-01-23 23:36:02 -05:00

Scramjet Demo

The demo implementation of Scramjet, the most advanced web proxy.

Scramjet is an experimental interception based web proxy designed with security, developer friendliness, and performance in mind. This project is made to evade internet censorship and bypass arbitrary web browser restrictions.

Refer to browser.js where this project will now receive updates outside of just bypassing internet censorship.

Supported Sites

Scramjet has CAPTCHA support! Some of the popular websites that Scramjet supports include:

Ensure you are not hosting on a datacenter IP for CAPTCHAs to work reliably along with YouTube. Heavy amounts of traffic will make some sites NOT work on a single IP. Consider rotating IPs or routing through Wireguard using a project like wireproxy.

Setup / Usage

You will need Node.js 16.x (and above) and Git installed; below is an example for Debian/Ubuntu setup.

sudo apt update
sudo apt upgrade
sudo apt install curl git nginx

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

nvm install 20
nvm use 20

git clone https://github.com/MercuryWorkshop/Scramjet-App
cd Scramjet-App

Install dependencies

pnpm install

Run the server

pnpm start

Resources for self-hosting:

HTTP Transport

The example uses EpoxyTransport to fetch proxied data encrypted.

You may also want to use CurlTransport, a different way of fetching encrypted data.

This example also now uses wisp-js/server instead of the now outdated wisp-server-node. Please note that this can also be replaced with other wisp implementations like wisp-server-python which is highly recommend for production.

See the bare-mux documentation for more information.