proxyraye-nextjs/README.md

145 lines
4.5 KiB
Markdown
Raw Permalink Normal View History

2024-04-27 19:30:28 +00:00
# Proxy Raye
2024-04-21 14:56:08 +00:00
2024-05-13 17:43:43 +00:00
Proxy Raye is an alternative front-end for adult websites. Watch videos on a clean UI without tracking and without annoying ads popping up from everywhere!
## Currently supported platforms:
- XVideos
- XNXX
- PornHub (experimental)
- YouPorn
2024-05-26 07:13:12 +00:00
- RedTube
### How to switch between platforms
Click on settings icon (gear icon on top-right corner). A pop-up menu will let you choose platform and orientation.
2024-04-21 14:56:08 +00:00
2024-04-27 19:30:28 +00:00
## Working demos
Vercel hosted demo can be found [here](https://proxyraye.vercel.app).
Self-hosted demo can be found [here](https://proxyraye.copyriot.xyz).
2024-05-26 18:39:41 +00:00
# Roadmap
This is the list of features that will be implemented in the future:
- [ ] Search pagination
- [ ] Search filters
- [ ] Add support for *bellesa.co*
- [ ] Add support for *ohentai.org*
- [ ] Add support for *iamsissy.com*
- [ ] Video results API
- [ ] Favourite videos
- [ ] Embed videos
- [ ] Download videos
- [ ] Share link button for videos
2024-04-27 19:30:28 +00:00
# Quickstart
You can run the project on local by cloning the repo.
## IMPORTANT: encoding key generation:
Since version `0.4.0` server-side video streaming is supported and mandatory for some platforms (like PornHub) in order to work properly. In order to avoid random video url injection, urls get encrypted/decrypted by using an encoding key.
For security reasons it's better to generate a new encoding key. It can be done via console/terminal by running `pwgen 20 1` command. Make sure `pwgen` command is installed. This will generate an alphanumeric string.
Paste the string to `ENCODING_KEY` environment variable inside `docker-compose.yaml` if you are using Docker, or inside `.env` file if you run the project with npm. See detailed instructions below.
In case variable is not set, a default encoding key will be used (not recommended!).
2024-05-18 10:41:16 +00:00
## Docker
2024-04-27 19:30:28 +00:00
You can run project via Docker with docker-compose by opening root folder via console and running:
2024-04-21 14:56:08 +00:00
```
2024-04-27 19:30:28 +00:00
docker-compose up -d
```
2024-05-18 10:41:16 +00:00
2024-04-27 19:30:28 +00:00
And head browser to `localhost:8069`.
2024-05-18 10:41:16 +00:00
### Caching
Starting from version `0.3.0` caching is enabled by default inside `docker-compose.yaml`.
A base Redis image will be added to the network.
However, Proxy Raye can still work without Redis by setting `ENABLE_REDIS=false` under `environment:`.
### Encoding urls
Please uncomment `ENCODING_KEY=` related line inside `docker-compose.yaml` (under `environment:`) and set value to the string obtained by running `pwgen 20 1`.
2024-05-18 10:41:16 +00:00
## Node.js
You can also run project outside Docker via npm (tested with NodeJS `20.11` and above).
You can run the project by opening root folder via console and running:
2024-04-27 19:30:28 +00:00
```
npm install
npm run build
npm run start
```
2024-05-18 10:41:16 +00:00
2024-04-27 19:30:28 +00:00
And head browser to `localhost:3000`.
2024-04-21 14:56:08 +00:00
### Encoding urls
Please rename `.env.example` to `.env` file inside root folder.
Please uncomment `ENCODING_KEY=` related line inside `.env` file and set value to the string obtained by running `pwgen 20 1`.
2024-05-16 15:38:48 +00:00
2024-05-18 10:41:16 +00:00
### (optional) Enable caching
If you want to enable caching, please rename `.env.example` to `.env` file inside root folder. Inside `.env` file you will find following variables:
```
ENABLE_REDIS=true
REDIS_URL='redis://127.0.0.1:6379'
```
These values assume a basic Redis instance running on local machine. If your local setup is different, or your Redis instance is somewhere else, please change `REDIS_URL` accordingly.
2024-04-27 19:30:28 +00:00
# Modify
2024-04-27 19:40:35 +00:00
If you want to edit the project you can start development mode by opening root folder via console and running:
2024-04-21 14:56:08 +00:00
2024-04-27 19:30:28 +00:00
```
npm install
npm run dev
```
The project uses following tech stack:
2024-04-21 14:56:08 +00:00
2024-04-27 19:30:28 +00:00
- NextJS 14 (w/App router)
- Typescript
- Redux
- Pico CSS with Sass
- Next/Intl
2024-04-21 14:56:08 +00:00
2024-04-27 19:30:28 +00:00
It scrapes data server-side and return treated data to the frontend to be rendered.
2024-05-26 18:39:41 +00:00
2024-04-27 19:30:28 +00:00
# Deploy
2024-04-21 14:56:08 +00:00
2024-04-27 19:30:28 +00:00
## Vercel
2024-04-21 14:56:08 +00:00
2024-04-27 19:30:28 +00:00
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.
2024-04-21 14:56:08 +00:00
2024-04-27 19:40:35 +00:00
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.
2024-04-21 14:56:08 +00:00
2024-04-27 19:30:28 +00:00
## Self-host
2024-05-26 12:22:52 +00:00
You can self host the project on your local server via docker-compose and reverse-proxy exposed port to nginx.
### Disabling platforms (both Vercel / Self-host)
For several reason you might want to disable some platforms. You can do it by adding `DISABLED_PLATFORMS` environment variable.
List of platform values can be found in Platforms enum inside `src/meta/settings.ts`
Please add platforms list comma separated. Example:
```
DISABLED_PLATFORMS='pornhub, xnxx'
```