No description
Find a file
2026-08-31 01:32:09 +02:00
apps Fix McButton parameter order for Compose trailing lambdas. 2026-08-31 01:32:09 +02:00
deploy Fail loudly on subtitle download and write sidecar with retry (media-node 1.3.2). 2026-08-30 21:33:00 +02:00
docs Add Synology media-node install script for multi-NAS enrollments. 2026-08-26 04:25:23 +02:00
node/media-node Fail loudly on subtitle download and write sidecar with retry (media-node 1.3.2). 2026-08-30 21:33:00 +02:00
packages Fail loudly on subtitle download and write sidecar with retry (media-node 1.3.2). 2026-08-30 21:33:00 +02:00
.gitignore Initial commit: Distributed Stremio Media Cluster V1 2026-08-25 00:17:04 +02:00
package.json Initial commit: Distributed Stremio Media Cluster V1 2026-08-25 00:17:04 +02:00
pnpm-lock.yaml Add Synology Download Station search and 4K import pipeline. 2026-08-30 17:42:12 +02:00
pnpm-workspace.yaml Initial commit: Distributed Stremio Media Cluster V1 2026-08-25 00:17:04 +02:00
README.md Initial commit: Distributed Stremio Media Cluster V1 2026-08-25 00:17:04 +02:00

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

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:

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

  1. Admin UI → Instellingen → addon token
  2. 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 ./...