# Proxy Raye Proxy Raye is an alternative front-end for **XVideos** and (soon) other adult sites. Watch videos on a clean UI without annoying ads popping up from everywhere! ## Working demos Vercel hosted demo can be found [here](https://proxyraye.vercel.app). Self-hosted demo can be found [here](https://proxyraye.copyriot.xyz). # Quickstart You can run the project on local by cloning the repo. Project requires no configuration. You can run it via Docker with docker-compose by opening root folder via console and running: ``` docker-compose up -d ``` And head browser to `localhost:8069`. Or you can run it outside Docker via npm (tested with NodeJS `20.11`) by opening root folder via console and running: ``` npm install npm run build npm run start ``` And head browser to `localhost:3000`. ### WARNING: Proxy Raye tries to avoid ip blacklisting by setting random human-request-like headers at every call. But in the long run (after several hours of continuous requests) XVideos might **temporarily blacklist** your IP address. When this happen, it will stop returning HD videos from pages. Only low quality (SD) videos will be shown. Using a VPN can avoid such issue. # Modify If you want to edit the project you can start development mode by opening root folder via console and running: ``` npm install npm run dev ``` The project uses following tech stack: - NextJS 14 (w/App router) - Typescript - Redux - Pico CSS with Sass - Next/Intl It scrapes data server-side and return treated data to the frontend to be rendered. # Deploy ## Vercel You can deploy the app on Vercel by cloning this repo on your GitHub/Gitlab and making it private. Than create a new Vercel account and import it there. Vercel deploy doesn't need particular configuration. Due to Vercel's *serverless* nature (which makes every request to XVideos and other platforms come from a different IP) it becomes very hard for *web application firewalls* to ban addresses effectively. ## Self-host You can self host the project on your local server via docker-compose and reverse-proxy exposed port to nginx.