v0.1/infrastructure #51

Merged
lamacchinadesiderante merged 3 commits from v0.1/infrastructure into main 2024-04-27 19:31:43 +00:00
3 changed files with 85 additions and 22 deletions

23
Dockerfile Normal file
View File

@ -0,0 +1,23 @@
# Usa la versione alpine più recente di Node.js compatibile con Next.js 14 come base
FROM node:alpine
# Imposta la directory di lavoro nel container
WORKDIR /app
# Copia i file esistenti nella root del progetto nel container
COPY . .
# Rimuovi la cartella node_modules (se presente)
RUN rm -rf node_modules
# Installa le dipendenze
RUN npm install
# Esegui la build del progetto
RUN npm run build
# Esponi la porta 3000
EXPOSE 3000
# Avvia il server in modalità di produzione
CMD ["npm", "run", "start"]

View File

@ -1,36 +1,62 @@
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
# Proxy Raye
## Getting Started
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!
First, run the development server:
## 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:
```bash
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
```
docker-compose up -d
```
And head browser to `localhost:8069`.
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
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`.
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
### 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) will be shown.
This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
Using a VPN can avoid such issue.
## Learn More
# Modify
If you want to edit the project you can start development mode by opening root folder via console and running:
To learn more about Next.js, take a look at the following resources:
```
npm install
npm run dev
```
The project uses following tech stack:
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
- NextJS 14 (w/App router)
- Typescript
- Redux
- Pico CSS with Sass
- Next/Intl
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
It scrapes data server-side and return treated data to the frontend to be rendered.
# Deploy
## Deploy on Vercel
## Vercel
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
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.
Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
Due to Vercel's *serverless* nature (which makes every request to XVideos and other platforms come from a different IP) it becomes very hard to *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.

14
docker-compose.yaml Normal file
View File

@ -0,0 +1,14 @@
version: '3.8'
services:
proxyraye:
# image: lamacchinadesiderante/proxyraye:latest
restart: always
build: .
ports:
- "8069:3000"