# 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.