VynodeIPTV

VynodeIPTV

Docker app from IPTV's Repository

Overview

Preview release for x86-64 Unraid. Native Shield companion with Xtream providers, guide grids, custom channel groups, independent browser video walls, output health diagnostics and server-side HLS remux or CPU conversion. GPU transcoding not implemented. Create a username and password in the WebUI. Existing installations use their previous key once to authorize account setup. Appdata and transcode directories must be writable by UID/GID 10001.

Install VynodeIPTV on Unraid

Target: x86-64 Unraid with Docker enabled. Image: ghcr.io/minerport/vynodeiptv:latest (current numbered version: 0.9.0).

1. Prepare persistent storage

In the Unraid terminal, create dedicated folders. Replace /mnt/cache with your existing SSD pool path if different:

install -d -m 700 -o 10001 -g 10001 /mnt/user/appdata/vynodeiptv
install -d -m 700 -o 10001 -g 10001 /mnt/cache/appdata/vynodeiptv-transcode

For migration, back up the existing configuration and key together, and point /config to that existing directory instead. Starting with an empty configuration opens account setup and requires re-entering providers and pairing devices.

2. Install the template

mkdir -p /boot/config/plugins/dockerMan/templates-user
curl -fSL https://raw.githubusercontent.com/minerport/VynodeIPTV/main/deploy/unraid/iptv-server.xml \
  -o /boot/config/plugins/dockerMan/templates-user/my-VynodeIPTV.xml

Open Docker → Add Container, select VynodeIPTV from the user templates, check both paths, and apply. Keep bridge networking, port 8580 mapped to container port 8080, privileged mode off, and the supplied security options. Choose another host port if 8580 is occupied. The template is not yet listed in Community Applications.

3. Sign in and pair Android

Open http://YOUR_UNRAID_IP:8580 and create a username and password (12–256 characters). Future visits use that account.

For an existing installation, the already signed-in browser tab authorizes account creation automatically. If using another tab, retrieve the previous key privately with docker exec VynodeIPTV cat /config/admin.token and enter it in the one-time upgrade key field. This prevents another LAN user from claiming your saved providers. The key is disabled for API access after account creation. Passwords are stored as salted PBKDF2-SHA256 hashes; browser sessions expire after 24 hours or a server restart. Paired Android devices remain paired.

Add your provider, set its permitted connection limit, and refresh EPG. Enable HTTP only when the provider requires it.

On Android, choose Companion mode and enter the same LAN URL. For HTTP, enable the connection's HTTP option. Approve the matching pairing code in the dashboard. Android then chooses its own channel; its session is independent of any stream running in the browser.

4. Verify and maintain

  • Check Docker reports healthy and the dashboard loads channels and guide data.
  • Enable IPTV_DEMO=1 temporarily for the synthetic test channel if useful; default is off.
  • Try a single channel before adding wall tiles. Every tile uses a connection and browser conversion uses CPU.
  • Back up all of /config, including state.enc, encryption.key, admin-login.json and admin.token. Never upload that directory to GitHub.
  • To update, back up config and use Unraid Check for Updates → Update with :latest. Existing installations pinned to :0.6.1 must edit Repository to ghcr.io/minerport/vynodeiptv:latest once and Apply. Keep config and scratch mappings. To roll back, select the previous tested tag; keep your backup for any future incompatible state migration.
  • A health check proves the HTTP service responds; session diagnostics separately show media freshness and worker recovery.

No PUID/PGID support, GPU devices, privileged access or Docker socket mount is needed. Physical Unraid/Shield operation and long-duration stability are not yet claimed. Keep access on your trusted LAN or an authenticated private network.

References: Unraid container configuration and GitHub Container Registry.

Install from the release archive instead

The 0.6.1 release also includes the container archive, checksum and XML template. Download VynodeIPTV-0.6.1-linux-amd64.tar.gz and SHA256SUMS-server-0.6.1.txt into the same directory, then run:

sha256sum -c SHA256SUMS-server-0.6.1.txt
docker load -i VynodeIPTV-0.6.1-linux-amd64.tar.gz

This is an older release using token authentication. When installing its archive, change the template Repository to ghcr.io/minerport/vynodeiptv:0.6.1. Normal registry installation is public and requires no GitHub login.

Password recovery

With local Unraid administrator access, stop the container and back up /config first. Rename only admin-login.json to admin-login.json.backup in the mapped appdata folder, then restart. Open account setup and authorize with the original admin.token key if providers or devices are present. Create a new password. Keep the encryption key and provider state intact. A corrupt account file fails closed instead of reopening setup.

Guide navigation

The guide opens at the current half-hour containing Now. On browser rows, use left/right arrows, horizontal trackpad scrolling, Shift+wheel or drag the programme area. On Android, focus the programme area and use D-pad left/right; touch dragging also scrolls. All rows share an aligned timeline. Now returns to live listings, and backing out of fullscreen preserves your guide position. Listings depend on the EPG supplied by the provider; browsing past programmes does not enable catch-up playback.

Requirements

x86-64 CPU; configuration and scratch directories writable by UID/GID 10001; authorized IPTV provider account for live channels. Read the installation guide before first launch.

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/minerport/vynodeiptv:latest
Last Updated2026-10-12
First Seen2026-10-12

Runtime arguments

Web UI
http://[IP]:[PORT:8080]/
Network
bridge
Shell
sh
Privileged
false
Extra Params
--security-opt=no-new-privileges --cap-drop=ALL --pids-limit=128

Template configuration

Web and media portPorttcp

LAN web admin and authenticated media

Target
8080
Default
8580
Value
8580
ConfigurationPathrw

Encrypted state and administrator account; UID 10001 must have write access

Target
/config
Default
/mnt/user/appdata/vynodeiptv
Value
/mnt/user/appdata/vynodeiptv
ScratchPathrw

Use an existing SSD pool path, writable by UID 10001

Target
/transcode
Default
/mnt/cache/appdata/vynodeiptv-transcode
Value
/mnt/cache/appdata/vynodeiptv-transcode
Demo channelVariable

Set 1 to enable synthetic signal testing

Target
IPTV_DEMO
Default
0
Value
0
TimezoneVariable

Timezone

Target
TZ
Default
America/New_York
Value
America/New_York