All apps · 0 apps
Vynode
Docker app from Vy's Repository
Overview
Readme
View on GitHubVynode
Docker and Unraid serious testing
Launch the published serious-test image with persistent configuration, or use the included Compose build while developing locally:
openssl rand -base64 32
cp .env.example .env
# Put the generated value in VYNODE_MASTER_KEY, then:
docker pull ghcr.io/minerport/vynodetemplatearr:0.1.0-rc.13
docker compose up -d --build
Open http://SERVER-IP:7171. The container includes Chromium for protected
provider pages plus ffmpeg and yt-dlp for placeholder trailer media. It runs as
PUID 99 / PGID 100 by default and stores all durable application state in the
configured appdata directory.
For Unraid template installation, volume guidance, upgrades, and rollback, see docs/unraid-install.md. The template is unraid/vynode.xml.
Vynode is a self-hosted media automation platform for Plex collections, posters, overlays, watchlists, requests, downloads, and missing media.
Principles
- No capability is removed without an explicit product decision.
- Every external mutation is planned before it is executed.
- Plans are previewable, auditable, resumable, and reversible where the target service permits it.
- Integrations are adapters behind stable contracts.
- Domain logic does not depend on a web framework, database, or vendor SDK.
- Secrets are encrypted at rest and never included in diagnostics.
- SQLite is the durable storage backend for this release candidate.
- Plex is the supported media-server target for this release candidate.
Release validation rejects temporary release markers, development-only versions, incomplete parity entries, and unfinished integration rows.
Workspace
apps/control-plane: API, authentication, configuration, and job control.apps/web: browser interface.apps/worker: durable job execution.packages/contracts: shared domain and API contracts.packages/planner: pure synchronization planning.packages/integrations: source and target adapter SDK.docs: architecture, parity registry, and migration specifications.
User guides
First milestone
The foundation milestone is complete when:
- every legacy capability has a parity identifier;
- the plan/apply/rollback contracts are stable;
- the control plane exposes unauthenticated health information at
/healthand/api/health, and the worker exposes its health information; - a simulated collection sync can produce a deterministic change plan;
- CI runs formatting, linting, type checks, unit tests, and contract tests.
Install Vynode on Unraid in a few clicks.
Find Vynode in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.
Requirements
Categories
Related apps
Explore more like this
Explore allDetails
ghcr.io/minerport/vynodetemplatearr:serious-testRuntime arguments
- Web UI
http://[IP]:[PORT:7171]/- Network
bridge- Shell
sh- Privileged
- false
- Extra Params
--security-opt=no-new-privileges:true --cap-drop=ALL --cap-add=CHOWN --cap-add=SETGID --cap-add=SETUID
Template configuration
Vynode web and API port.
- Target
- 7171
- Default
- 7171
- Value
- 7171
Persistent database, secrets, jobs, assets, and logs.
- Target
- /var/lib/vynode
- Default
- /mnt/user/appdata/vynode
- Value
- /mnt/user/appdata/vynode
Shares allowed for placeholders and local poster folders. Narrow this path when possible.
- Target
- /media
- Default
- /mnt/user
- Value
- /mnt/user
Browser-visible URL, including the selected Web UI host port or reverse-proxy address.
- Target
- VYNODE_PUBLIC_URL
- Default
- http://[IP]:[PORT:7171]
- Value
- http://[IP]:[PORT:7171]
Base64-encoded 32-byte encryption key. Back it up securely; changing it makes stored credentials unreadable.
- Target
- VYNODE_MASTER_KEY
Comma-separated container paths Vynode may browse.
- Target
- VYNODE_MEDIA_ROOTS
- Default
- /media
- Value
- /media
Unraid nobody user ID.
- Default
- 99
- Value
- 99
Unraid users group ID.
- Default
- 100
- Value
- 100
Set true only behind a trusted reverse proxy.
- Target
- VYNODE_TRUST_PROXY
- Default
- false
- Value
- false