FICHIERS COMPLET DE MOVIX
Ce que contient le repo
| Zone | Rôle | Documentation |
|---|---|---|
src/ | Frontend Vite + React + TypeScript | Frontend |
API/Mainapi/ | Backend principal clusterisé | Main API |
API/watchpartyAPI/ | Service temps réel WatchParty | WatchParty API |
API/proxiesembed/ | Proxy aiohttp pour embeds, flux et DRM | Proxies Embed |
API/miscs/ | Micro-service Flask pour certains 403 | bypass403 |
extension/ + userscript/ | Outils navigateur Movix | Movix OS |
wasm/watchparty-sync/ | Moteur Rust/WASM de la Sync Pro | WatchParty Sync WASM |
cloudflareproxy/ | Worker Cloudflare CORS/proxy | Cloudflare Proxy |
Architecture du monorepo
Code:
movix-main/
|-- src/ # Frontend principal
|-- public/ # Assets statiques et artefacts WASM publiés
|-- API/
| |-- Mainapi/ # Backend actif
| |-- watchpartyAPI/ # Temps réel WatchParty
| |-- proxiesembed/ # Proxy Python haute charge
| `-- miscs/ # Micro-services annexes
|-- extension/ # Extension Chrome / Firefox
|-- userscript/ # Variante Tampermonkey
|-- wasm/watchparty-sync/ # Sync Pro en Rust/WASM
|-- cloudflareproxy/ # Worker Cloudflare
|-- functions/ # Handlers serverless annexes
|-- PreMid/ # Présence PreMiD
`-- RivestreamCloudflareProxy/ # Variante de worker pour Rivestream
Démarrage rapide
Prérequis
- Node.js 18+ et npm
- Python 3.10+ pour les services Python
- MySQL et Redis pour
API/Mainapi - Rust +
wasm-bindgenseulement si tu touches la Sync Pro WASM
Installer les dépendances utiles
Code:
npm install
[COLOR=rgb(250, 189, 47)]cd[/COLOR] API/Mainapi
npm install
API/watchpartyAPI/ n'a pas son propre package.json : il consomme les dépendances du node_modulesracine.Configurer les .env avant de lancer quoi que ce soit
Ne saute pas cette étape. Une bonne partie du monorepo dépend des variables d'environnement pour les URLs, la base de données, Redis, les proxys, TMDB, Turnstile et plusieurs intégrations de lecture.
Code:
[COLOR=rgb(119, 126, 148)]# Frontend[/COLOR]
cp .env.example .env
[COLOR=rgb(119, 126, 148)]# API principale[/COLOR]
cp API/Mainapi/.env.example API/Mainapi/.env
[COLOR=rgb(119, 126, 148)]# WatchParty[/COLOR]
cp API/watchpartyAPI/.env.example API/watchpartyAPI/.env
[COLOR=rgb(119, 126, 148)]# Proxy embed[/COLOR]
cp API/proxiesembed/.env.example API/proxiesembed/.env
[COLOR=rgb(119, 126, 148)]# bypass403[/COLOR]
cp API/miscs/.env.example API/miscs/.env
Lancer le minimum utile en local
Code:
[COLOR=rgb(119, 126, 148)]# Frontend - http://localhost:3000[/COLOR]
npm run dev
Code:
[COLOR=rgb(119, 126, 148)]# Backend principal - http://localhost:25565[/COLOR]
[COLOR=rgb(250, 189, 47)]cd[/COLOR] API/Mainapi
npm run dev
Code:
[COLOR=rgb(119, 126, 148)]# WatchParty - http://localhost:25566[/COLOR]
node API/watchpartyAPI/watchparty.js
Code:
[COLOR=rgb(119, 126, 148)]# Proxy embed[/COLOR]
[COLOR=rgb(250, 189, 47)]cd[/COLOR] API/proxiesembed
pip install -r requirements.txt
python server.py
Code:
[COLOR=rgb(119, 126, 148)]# bypass403[/COLOR]
[COLOR=rgb(250, 189, 47)]cd[/COLOR] API/miscs
pip install flask requests python-dotenv
python bypass403.py
Configuration
Les fichiers d'exemple ou de config existants sont déjà dans le repo :- Frontend :
.env.example - API principale :
API/Mainapi/.env.example - WatchParty :
API/watchpartyAPI/.env.example - Proxy embed :
API/proxiesembed/.env.example - bypass403 :
API/miscs/.env.example
VITE_MAIN_API, VITE_WATCHPARTY_API, VITE_PROXY_BASE_URL, VITE_API_PROXY_BASE_URL, VITE_PROXIES_EMBED_API et VITE_SITE_URL.Pour un premier lancement local, configure au minimum :
/.envAPI/Mainapi/.envAPI/watchpartyAPI/.env
Comment s'orienter vite
- Feature frontend : commence par
src/App.tsx, puis la page cible danssrc/pages/. - Auth, profils, persistance : regarde
src/context/,src/App.tsx,API/Mainapi/routes/authRoutes.jsetAPI/Mainapi/routes/sync.js. - Lecture vidéo et proxies : recoupe
src/pages/Watch/, les composants player,API/Mainapi/liveTvRoutes.js,API/proxiesembed/et parfoisextension/. - WatchParty : vérifie à la fois
API/watchpartyAPI/watchparty.js,src/pages/WatchParty*.tsx,src/hooks/useWatchParty.ts,src/utils/watchparty*.tsetsrc/workers/watchpartySync.worker.ts. - Browser tooling : si tu modifies l'extension, compare toujours
extension/Chrome/etextension/Firefox/, puis vérifie si le userscript doit suivre. - Sync Rust/WASM : modifie
wasm/watchparty-sync/, puis rebuildpublic/wasm/watchparty-sync/.
Points importants avant de contribuer
- Le backend actif est
API/Mainapi/. Le vieux contenu directement sousAPI/n'est plus la référence. - Ce monorepo n'utilise pas de workspace tooling : chaque sous-projet garde ses scripts.
- Une partie importante de l'état produit vit dans
localStorageet dans la sync backend. Ne raisonne pas "base de données only". - Le lint frontend se lance à la racine avec
npm run lint. - Il n'y a pas de suite de tests globale fiable pour tout le repo. Vérifie au minimum les scripts touchés et le comportement manuel.