Record IPTV with GridStreamr DVR on Docker and Synology NAS
Step-by-step guide to run GridStreamr DVR in Docker on Synology DSM, Unraid or Linux — volumes, port 8787, pairing from the app and scheduling from Smart Collections.

Responsible use
GridStreamr does not provide IPTV channels, VOD, or playlists. You bring your own authorized Xtream Codes or M3U sources. You are responsible for complying with applicable terms, licenses, and local law.
Running GridStreamr Home DVR in Docker on a Synology NAS (or any Linux host) keeps IPTV recordings on your volumes, schedulable from the GridStreamr app, without leaving a desktop PC powered on 24/7. This guide walks through image selection, compose file, Synology Container Manager setup, LAN pairing and day-to-day scheduling from Smart Collections.
What you need before starting
| Requirement | Notes |
|---|---|
| Synology NAS with Container Manager | Formerly Docker package; enable in Package Center |
| Premium GridStreamr account | Pricing / trial |
| IPTV Smart Collection | At least one curated lineup with channels to record |
| Storage volume | Dedicated shared folder for recordings (TB-scale for HD sports) |
| LAN access | Phone/TV on same network for initial pairing |
| Architecture know-how | amd64 vs arm64 image selection |
Download page with compose snippets: /download/dvr
Feature overview: Home IPTV DVR
Choose the correct Docker image
GridStreamr publishes two images on Docker Hub:
| CPU architecture | Image | Typical hardware |
|---|---|---|
| linux/amd64 | gridstreamr/gridstreamr-dvr-amd64:latest | Intel Synology (DS918+, DS920+, etc.), most x86 NAS |
| linux/arm64 | gridstreamr/gridstreamr-dvr-arm64:latest | ARM Synology models, Raspberry Pi, Apple Silicon Linux VMs |
Check architecture:
uname -m
x86_64 → amd64. aarch64 → arm64.
On Synology without SSH: read DSM Control Panel → Info → Model and vendor specs, or inspect Container Manager when pulling multi-arch manifests.
Sample Docker Compose file
Create docker-compose.yml on the NAS (or paste into Container Manager project):
services:
gridstreamr-dvr:
image: gridstreamr/gridstreamr-dvr-amd64:latest
container_name: gridstreamr-dvr
restart: unless-stopped
environment:
GRIDSTREAMR_BIND_ADDRESS: "0.0.0.0:8787"
GRIDSTREAMR_DATABASE_PATH: "/data/dvr.db"
GRIDSTREAMR_RECORDINGS_PATH: "/recordings"
TZ: "America/New_York"
ports:
- "8787:8787"
volumes:
- ./data:/data
- ./recordings:/recordings
ARM Synology: replace image with gridstreamr/gridstreamr-dvr-arm64:latest.
Timezone: set TZ to your locale so schedules match programme times in EPG.
Volumes:
./data→ SQLite job database (dvr.db)./recordings→ finished media files
On Synology prefer absolute paths to shared folders:
volumes:
- /volume1/docker/gridstreamr-dvr/data:/data
- /volume1/video/dvr-recordings:/recordings
Create folders in File Station first; grant the container user read/write (often via high-privilege container user or ACL adjustment on DSM 7).
Synology Container Manager setup
Option A — Project from compose (DSM 7.2+)
- Open Container Manager → Project → Create
- Name project
gridstreamr-dvr - Paste compose YAML (adjust paths and image arch)
- Build/Deploy — pull image and start container
- Confirm container Running and port 8787 published
Option B — GUI container create
- Registry → search
gridstreamr/gridstreamr-dvr-amd64→ Download - Container → Create from image
- General settings — enable auto-restart
- Port settings — map local 8787 → container 8787
- Volume — mount
/dataand/recordingsto shared folders - Environment — add variables from compose (
GRIDSTREAMR_BIND_ADDRESS, paths,TZ) - Start container
Firewall
If Synology firewall enabled, allow 8787/tcp from LAN subnets so phones can pair.
Verify the dashboard
On a PC browser on the same LAN:
http://YOUR-SYNOLOGY-IP:8787
You should see the GridStreamr DVR dashboard with pairing code area and job list (empty initially).
Closing the browser does not stop the background service — same as desktop installs.
Default port constant: 8787 (see dvr-downloads.ts reference implementation on site).
Pair from GridStreamr app (Premium)
On iPhone or Android (same Wi‑Fi):
- Open Settings → DVR → LAN
- Tap Find on Wi‑Fi or enter
http://192.168.x.x:8787manually - Enter one-time pairing code from dashboard
- Select recordings storage path if prompted (container path
/recordingsmaps to your volume) - Confirm paired status in app and dashboard
mDNS caveat: Docker bridge networking often fails Bonjour/mDNS discovery. If Find on Wi‑Fi misses the NAS, always fall back to static LAN IP — documented on /download/dvr.
Schedule your first recording
- Open a Smart Collection with live channels from your Xtream or M3U source
- Tune into a channel or pick from guide (EPG mapping helps titles)
- Choose Record or Schedule (wording varies by version)
- Set start/end or duration; save job
- Watch dashboard — active jobs show FFmpeg progress
- Files appear under
/volume1/video/dvr-recordings(or your mount)
GridStreamr bundles pinned FFmpeg inside the image — no separate FFmpeg install on Synology.
Cloud Relay for remote job control
Away from home, enable Cloud Relay in dashboard and link under Settings → DVR → Cloud in app. This maintains an outbound secure tunnel for scheduling without port forwarding.
Important: Cloud Relay does not stream recordings over the internet by itself. Playback or download still needs LAN access, VPN home, or your own public reverse proxy you trust.
Documentation: Home DVR setup
Desktop alternatives (Windows and Mac)
Not using NAS? Native installers from /download/dvr:
| Platform | File |
|---|---|
| macOS Apple silicon | GridStreamrDVR-arm64.pkg |
| macOS Intel | GridStreamrDVR-amd64.pkg |
| Windows x64 | GridStreamrDVR-Setup-x64.exe |
Installers register launchd or Windows Service, same port 8787, same pairing flow. Recordings land on local disk paths you choose during setup.
Linux without Docker: build from gridstreamr-dvr-releases and install systemd unit (advanced).
Storage and retention tips
HD IPTV recordings consume ~2–4 GB/hour depending on bitrate — plan volumes accordingly.
- Use ** BTRFS free space alerts** on Synology
- Rotate recordings with Hyper Backup or simple cron move to cold storage
- Separate SSD for metadata (
/data) and HDD volume for recordings if hybrid NAS
Pair with Jellyfin on same NAS to browse finished files — optional workflow outside GridStreamr player.
Troubleshooting Synology Docker
Container exits immediately
- Check logs in Container Manager → gridstreamr-dvr → Log
- Verify volume paths exist and permissions allow write
- Confirm correct amd64/arm64 image
App cannot find DVR
- Use
http://nas-ip:8787not hostname - Same subnet — guest Wi‑Fi isolation blocks LAN
- Firewall rule missing 8787
Recordings empty or zero bytes
- Upstream IPTV stream offline — GridStreamr records provider stream, not synthetic content
- Job ended before FFmpeg connected — retry live channel first in player
Clock skew
- Set DSM NTP sync and correct
TZenv var — EPG schedules rely on accurate time
High CPU during record
- Expected for transcode-heavy streams; prefer direct record when provider codec matches container settings
Security checklist
- Do not expose port 8787 to
0.0.0.0on the public internet without hardening - Use VPN (Synology VPN Server, Tailscale, WireGuard) for remote admin
- Treat dashboard like admin credentials — pairing codes grant schedule control
- Record only content your provider terms allow personal recording of
Unraid and generic Linux
This Synology guide transfers directly:
- Create appdata and recordings paths on array/cache
- Paste same compose in Compose Plugin or Portainer
- Pair with LAN IP of Unraid server
ARM home servers (Pi 4/5) use arm64 image — adequate for one concurrent HD job; scale expectations for 4K.
Next steps after DVR works
- Schedule recurring series from EPG alerts
- Organize recordings in Jellyfin library folder
- Read IPTV DVR feature page for TimeShift vs DVR differences
- Share live lineup separately via Smart Collection tokens — recordings stay local
Download DVR images and installers
Start Docker on NAS or install on desktop — pair on Premium to schedule from the app.
Related reading
Frequently asked questions
Which Docker image should Synology use?
Intel/AMD Synology models: gridstreamr/gridstreamr-dvr-amd64:latest. ARM-based models (some J series): gridstreamr/gridstreamr-dvr-arm64:latest. Run uname -m on SSH or check Synology specs.
What port must be open on the LAN?
8787/tcp by default for the DVR dashboard and app pairing. Docker bridge often breaks mDNS — use the NAS LAN IP in GridStreamr Settings → DVR, not a hostname.
Do I need Premium to record?
Yes. Pairing, scheduling and job management require Premium. Docker images and installers are free to download from gridstreamr.com/download/dvr.
Where do recording files land?
In the host folder you map to /recordings inside the container — for example /volume1/video/dvr-recordings on Synology. GridStreamr does not cloud-upload your files.
Can I record channels I do not have in a Smart Collection?
Scheduling targets channels and titles from Smart Collections backed by your own Xtream or M3U sources. GridStreamr does not provide streams to record.
Does this work on macOS or Windows instead of NAS?
Yes. Use native .pkg or .exe installers from the DVR download page for desktop setups. This guide focuses on Docker/Synology; steps transfer to Unraid and generic Linux compose.
Get started
Download gridstreamr free
Add your sources, build a Smart Collection, then upgrade to Premium in-app when you need more.
Related
Keep reading
Export a Smart Collection to TiviMate
Export a Smart Collection to TiviMate — practical GridStreamr guidance for export playlist to tivimate. Bring your own Xtream or M3U sources; we handle organisation, EPG and playback tools.
Readarrow_forwardJellyfin + IPTV in One App
Jellyfin + IPTV in One App — practical GridStreamr guidance for jellyfin iptv together. Bring your own Xtream or M3U sources; we handle organisation, EPG and playback tools.
Readarrow_forwardHow to Record IPTV on Linux
How to Record IPTV on Linux — practical GridStreamr guidance for record iptv linux. Bring your own Xtream or M3U sources; we handle organisation, EPG and playback tools.
Readarrow_forward