Files
iptvnator/docker
4gray 32cc0b74e8 feat: add self-hosted PWA backend runtime (#944)
* feat(web-backend): add self-hosted proxy app

* feat(web): enable runtime PWA configuration

* test(web-e2e): cover self-hosted backend proxy

* test(web-e2e): clean self-hosted lint warnings

* fix(web-backend): validate proxied provider URLs

* fix(web-backend): proxy through registered provider targets

* fix(web-backend): document CodeQL SSRF validation boundary

* test(web-e2e): mock provider target registration

* fix(web): address self-hosted review feedback
2026-05-16 00:10:03 +02:00
..
2026-02-19 23:08:36 +01:00

Self-hosted version of IPTVnator

You can deploy and run the PWA version of IPTVnator on your own machine with docker-compose using the following command:

$ cd docker
$ docker-compose up -d

This command will launch the frontend and backend applications. By default, the application will be available at: http://localhost:4333/. The ports can be configured in the docker-compose.yml file.

The web backend proxy accepts only http and https provider URLs. The PWA first registers provider URLs through /provider-targets, then uses the returned targetId for playlist, Xtream, and Stalker proxy calls. The backend blocks loopback, private, link-local, and reserved network targets by default to avoid exposing the self-hosted server as a generic internal-network fetcher. If you intentionally need to test against local mock servers or LAN-only IPTV sources, set IPTVNATOR_PROXY_ALLOW_PRIVATE_NETWORKS=1 on the backend container and avoid exposing that instance to untrusted users.

For providers that use private certificate authorities, keep TLS validation enabled and pass the CA bundle to Node with NODE_EXTRA_CA_CERTS=/path/to/ca.pem.

Build frontend

$ docker build -t 4gray/iptvnator -f docker/Dockerfile .

Build backend

You can find the backend app with all instructions in a separate GitHub repository - https://github.com/4gray/iptvnator-backend