No description
Prefetch now-playing titles for every channel when a category opens so program info is visible immediately, not only on row focus. Co-authored-by: Cursor <cursoragent@cursor.com> |
||
|---|---|---|
| apps | ||
| deploy | ||
| docs | ||
| node/media-node | ||
| packages | ||
| .gitignore | ||
| GOOGLE_PLAY_ACCESS_SETUP.md | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
Distributed Stremio Media Cluster
Privé gedistribueerd mediaplatform voor Stremio: één Master, onbeperkt Media Nodes, video rechtstreeks van node naar player.
Architectuur
Stremio ──HTTPS──► Master (catalog / meta / stream)
▲
│ WSS control
Media Nodes
│
Stremio ◄──HTTPS video──┘ (via Nginx Proxy Manager)
Harde eisen:
- geen VPN / WireGuard / SMB / NFS tussen locaties
- geen Docker op nodes
- geen transcoding in V1
- geen raw filesystem paths publiek
- server-side playback sessions (geen simpele 1-uur signed URLs)
Stack
| Component | Techniek |
|---|---|
| Master API | TypeScript, Fastify, Prisma, PostgreSQL, Redis |
| Admin UI | Next.js |
| Media Node | Go binary + SQLite + systemd |
| Proxy | Nginx Proxy Manager (GUI only) |
Repository
apps/master-api/ Master + Stremio addon
apps/admin-ui/ Admin dashboard
node/media-node/ Go media node
packages/ Gedeelde types + protocol
deploy/docker/ Docker Compose Master
deploy/node/ Installer + systemd
docs/ Deployment + NPM setup
Snel starten (dev)
npx pnpm install
# Postgres + Redis
cd deploy/docker
docker compose up -d postgres redis
# Master
cd ../../apps/master-api
cp .env.example .env
# DATABASE_URL=postgresql://media:media_secret@localhost:5432/media_cluster
npx prisma migrate deploy
npx pnpm db:seed
npx pnpm dev
# Admin UI
cd ../admin-ui
npx pnpm dev
- API: http://localhost:3000
- UI: http://localhost:3001
- Login:
admin@localhost/changeme123
Media Node
Op Linux (productie):
cd node/media-node
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o media-node ./cmd/media-node
sudo ./media-node install
CLI:
media-node install|register|run|scan|diagnostics|config|start|stop|restart|status|version
Productie
Zie:
- docs/deployment.md
- docs/dokploy.md — Master op Dokploy (aanbevolen)
- docs/npm-setup.md
cd deploy/docker
cp ../master/.env.example ../master/.env
docker compose up -d --build
Of in Dokploy: Compose-app met pad deploy/docker/docker-compose.dokploy.yml.
Stremio installeren
- Admin UI → Instellingen → addon token
- URL in Stremio:
https://master.example.com/stremio/<token>/manifest.json
V1 features
- Node enrollment + unieke credentials
- WebSocket control channel + heartbeat + reconnect
- Movies/Series scanner + library sync
- Filename parsing + TMDB matching (optioneel)
- Stremio catalogs / meta / streams
- Playback sessions met idle + absolute expiry
- HTTP Range streaming (direct play)
- Offline node detectie + duplicate media
- Admin: dashboard, nodes, library, streams, matching ignore/refresh
- Rate limits, security headers, redacted token logs
- Backup script + release build script
Tests
cd apps/master-api && npx pnpm test
cd node/media-node && go test ./...