# IPTV Web Docker 版 基于 Node.js + Express 的 IPTV Web 服务端,提供: - 📺 频道列表 API - 🔀 M3U8/HLS 流代理(解决跨域) - 📦 Docker 一键部署 - 🚀 可选 Nginx 反向代理 ## 快速开始 ### 1. 构建并启动 ```bash # 基础版本 docker-compose up -d # 带 Nginx 的版本 docker-compose --profile nginx up -d ``` ### 2. 访问 ``` http://localhost:3000 # 直接访问 Node 服务 http://localhost # 通过 Nginx(如果启用) ``` ## API 接口 | 接口 | 说明 | |------|------| | `GET /health` | 健康检查 | | `GET /api/channels` | 获取频道列表 | | `GET /proxy/m3u8?url=xxx` | 代理 M3U8 播放列表 | | `GET /proxy/ts?url=xxx` | 代理 TS 视频片段 | | `GET /proxy/stream?url=xxx` | 通用流代理 | ## 目录结构 ``` web/ ├── src/ │ └── index.js # Express 服务端 ├── nginx/ │ └── nginx.conf # Nginx 配置 ├── public/ # 前端静态文件(构建时复制) ├── Dockerfile # Docker 构建 ├── docker-compose.yml # 编排配置 └── README.md ``` ## 更新频道数据 频道数据来自 `ui/dist-web/api/result.txt`,更新方式: ```bash # 方法1:重新构建 docker-compose up -d --build # 方法2:挂载数据卷(已配置) # 修改 ui/dist-web/api/result.txt 后自动生效 ``` ## 环境变量 | 变量 | 默认值 | 说明 | |------|--------|------| | `PORT` | 3000 | 服务端口号 | | `NODE_ENV` | production | 运行环境 | ## 单独运行(不依赖 Docker) ```bash cd web npm install npm start ``` ## 注意事项 1. **跨域问题** - 所有流媒体通过 `/proxy/*` 接口代理,解决浏览器 CORS 限制 2. **性能优化** - 静态资源使用 Nginx 缓存,API 请求直连 Node 3. **HTTPS** - 生产环境建议启用 HTTPS(配置 `nginx/ssl/` 目录)