mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-11 02:46:16 -08:00
1.9 KiB
1.9 KiB
Self-hosted IPTVnator
The self-hosted image contains both pieces required for the browser PWA:
- Angular PWA static files served by nginx
- The monorepo
web-backendExpress app proxied under/api
The historical standalone 4gray/iptvnator-backend image is no longer needed
for the default Docker deployment.
Run With Docker Compose
docker compose -f docker/docker-compose.yml up --build -d
By default the app is available at http://localhost:4333.
Build The Image
docker build -t 4gray/iptvnator -f docker/Dockerfile .
The image build runs:
pnpm nx build web --configuration=pwa
pnpm nx build web-backend
Runtime Configuration
The container writes /usr/share/nginx/html/assets/app-config.js on startup.
That file sets window.__IPTVNATOR_CONFIG__.BACKEND_URL, which the PWA reads
before it creates PwaService.
| Variable | Default | Purpose |
|---|---|---|
BACKEND_URL |
/api |
Browser-facing backend URL used by the PWA. Keep /api for the bundled nginx proxy. |
CLIENT_URL |
http://localhost:4333 |
Allowed browser origin for backend CORS. Use the public URL when hosting behind a reverse proxy. |
PORT |
3000 |
Internal Express backend port. nginx proxy config is patched to match it at container startup. |
The nginx config serves the PWA with SPA fallback, avoids caching
assets/app-config.js, and proxies /api/* to the internal backend.
Local Validation
pnpm nx test web-backend
pnpm nx build web --configuration=pwa --skip-nx-cache
pnpm nx build web-backend
pnpm nx run web-e2e:e2e -- --project=chromium --grep @self-hosted
docker compose -f docker/docker-compose.yml config