Preface
Regarding the fact that I can only watch IPTV using various clients (although I barely watch it), I feel a bit annoyed. What if one day I suddenly want to watch IPTV while outside, but didn't bring my phone, iPad, or MacBook? Well, that possibility is too small; I mainly want to set up a web version IPTV playback solution, so that anyone can watch my home Telecom IPTV directly through a web page (which probably carries some legal risks). So after searching for a while, I found IPTVnator, a cross-platform IPTV player. Since it has a web version deployed via Docker, I wanted to try and see if this player's web version could meet my small requirement.
IPTVnator features introduction:
- M3u and M3u8 playlist support
- Upload playlists from file system
- Add remote playlists via URL
- Playlist auto-update feature
- Open playlist from file system
- Search for channels
- EPG support (TV Guide) and detailed information
- TV archive/catch-up/timeshift
- Group-based channel list
- Save channels as favorites
- Global favorites aggregated from all playlists
- Support HTML video player or Video.js-based player
- Internationalization, currently supporting 7 languages (en, ru, de, ko, es, zh, fr)
- Set custom “User-Agent” header for playlists
- Re-fetch/auto-update playlists
- Light and dark themes
“Both ”M3u and M3u8 playlist support” and ”EPG support (TV Guide) and detailed information" are what I need, so I started the following scientific research attempt journey.
Deployment
IPTVnator consists of two parts: frontend (external web client) and backend.
Backend deployment:
The backend docker run command is as follows:
docker run --name iptvnator-backend -d --restart=always \
-p 7333:3000 \
-e CLIENT_URL=http://localhost:4333 \
4gray/iptvnator-backend:latest
-p 7333:3000 \
-e CLIENT_URL=http://localhost:4333 \
4gray/iptvnator-backend:latest
Explanation of key parameters:
-p 7333:3000
Map port 7333 of the host machine to port 3000 of the container
-e CLIENT_URL=http://localhost:4333
Specify the address and port of the frontend
docker run --name iptvnator-web -d --restart=always --network=public-net \
-p 4333:80 \
-e BACKEND_URL=http://localhost:7333 \
4gray/iptvnator:latest
-p 7333:3000 \
Frontend deployment:
The frontend docker run command is as follows:
docker run --name iptvnator-web -d --restart=always --network=public-net \
-p 4333:80 \
-e BACKEND_URL=http://localhost:7333 \https://github.com/4gray/iptvnator/blob/electron/docker/docker-compose.yml
4gray/iptvnator:latest
version: '3'
services:
backend:
image: 4gray/iptvnator-backend:latest
ports:
- "7333:3000"
environment:
- CLIENT_URL=http://localhost:4333 #this one should match with the address and port in frontend CLIENT_URL env
frontend:
image: 4gray/iptvnator:latest
ports:
- "4333:80"
environment:
- BACKEND_URL=http://localhost:7333 # this one should match with the address of the backend service
Initial configuration and usage
Change language to Chinese
Map port 4333 of the host machine to port 80 of the container

-e BACKEND_URL=http://localhost:7333


Add playlist
Specify the address and port of the backend. If both the backend and frontend are on the same host, you can just use localhost when specifying addresses for each other.

The docker-compose.yml address on GitHub is as follows:

Conclusion
If you cannot open GitHub, the specific content of docker-compose.yml is as follows:iKuai Soft Router Series: Achieving Telecom IPTV All-Media Playbackversion: '3'

services:
So I have to admit that this attempt did not achieve the effect I really wanted, and I can only wait for the front end to be upgraded in the future to try again.
IPTVnator provides an address for the experience, so everyone can go and try it first:
IPTV Experience Site Address
Have you found a web player that can play m3u8 perfectly now? I am also looking for something similar but haven't found it.
I didn't find one, I've already given up.
when i go to web gui front end i add list and it sasy something about the backend not reachable now i have the backend url in front end and front end in back end oh im in docker unraid im not getting it sorry to bug
Is it related to the backend address specified in the frontend configuration during deployment? When I deployed the frontend, the backend address I pointed to was the physical IP address of the host machine, as per the official instructions. However, I just checked the official docker-compose.yml, and it has now been unified to localhost:
![image.png]()
Show Image