stremio/README.md
Jos Vooges | STH b5fc140e9f Rewrite README as Vonas Media Cluster for store-friendly positioning.
Describe a personal/self-hosted library (Emby/Plex-style) instead of the old Stremio-centric framing.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-10 03:51:13 +02:00

135 lines
3.9 KiB
Markdown

# Vonas Media Cluster (VMC)
Private media software for **your own** movies and TV shows — comparable to Emby or Plex.
You host the library on your NAS, home server, or VPS. Native apps (Android TV, Android, iOS, and more) connect to **your** instance. You keep the files; VMC provides the catalog, accounts, and playback.
> This repository is the self-host / server stack and related client apps. Store apps are meant to connect to a server you control (or one provided for your household).
## What it is
- **Master** — API, admin console, viewer accounts, library metadata, playback sessions
- **Media nodes** — scan local storage and serve video directly to clients (no VPN/SMB between sites required)
- **Apps** — lean clients for TV and mobile that talk to your Master URL
Typical use: family or personal library you already own, organized once, watched on the couch or on the go.
## Architecture (high level)
```
VMC apps ──HTTPS──► Master (catalog, accounts, play sessions)
▲
│ control channel
Media nodes
│
VMC apps ◄──HTTPS video───┘ (via your reverse proxy / HTTPS)
```
Design goals:
- Direct play from the node that holds the file
- No public raw filesystem paths
- Server-side playback sessions
- Optional TMDB metadata for posters and details
## Repository layout
```
apps/master-api/ Master API
apps/admin-ui/ Admin console
apps/android-tv/ Android TV + Android phone apps
apps/ios/ iOS app
apps/tizen-tv/ Samsung Tizen client
node/media-node/ Go media node
packages/ Shared types / protocol
deploy/docker/ Docker Compose for Master
deploy/node/ Node installer + systemd
docs/ Deployment guides
```
## Quick start (development)
```bash
npx pnpm install
# Postgres + Redis
cd deploy/docker
docker compose up -d postgres redis
# Master
cd ../../apps/master-api
cp .env.example .env
npx prisma migrate deploy
npx pnpm db:seed
npx pnpm dev
# Admin UI
cd ../admin-ui
npx pnpm dev
```
- API: http://localhost:3000
- Admin: http://localhost:3001
- Default seed login: see `.env` / seed output (`ADMIN_EMAIL` / `ADMIN_PASSWORD`)
## Production
See:
- [docs/deployment.md](docs/deployment.md)
- [docs/dokploy.md](docs/dokploy.md) — Master on Dokploy (recommended)
- [docs/npm-setup.md](docs/npm-setup.md)
```bash
cd deploy/docker
cp ../master/.env.example ../master/.env
# Set SESSION_SECRET, ADMIN_*, PUBLIC_URL, database passwords
docker compose up -d --build
```
Or in Dokploy: Compose app with `deploy/docker/docker-compose.dokploy.yml`.
Public self-host overview (when enabled on your Master): `/install` on the admin/site host.
## Media node
On Linux:
```bash
cd node/media-node
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o media-node ./cmd/media-node
sudo ./media-node install
```
CLI: `install | register | run | scan | diagnostics | config | start | stop | restart | status | version`
## Apps
Point each app at your Master base URL (for example `https://media.example.com`), sign in with a viewer account, and pick a profile.
| Client | Location |
|--------|----------|
| Android TV | `apps/android-tv` (TV module) |
| Android phone | `apps/android-tv` (mobile module) |
| iOS | `apps/ios` |
| Tizen | `apps/tizen-tv` |
## Features (overview)
- Multi-node library scan and sync
- Movies / series matching and admin tools
- Viewer accounts, profiles, device linking
- Direct play with HTTP Range
- Optional live TV (IPTV) when configured for a viewer
- Admin: nodes, library, users, settings
## Tests
```bash
cd apps/master-api && npx pnpm test
cd node/media-node && go test ./...
```
## Privacy & intent
VMC is built for **personal / household libraries** under your control. Operators are responsible for using only content they are entitled to store and stream. See the in-app / site privacy policy where published.