新建部署目录、创建yml文件
mkdir -p /opt/lunatv
cd /opt/lunatv
nano docker-compose.yml
version: '3.8'
services:
moontv-core:
image: ghcr.io/moontechlab/lunatv:latest
container_name: moontv-core
restart: unless-stopped
ports:
- '3000:3000'
environment:
- USERNAME=admin # 登录账号
- PASSWORD=your_password # 登录密码(改成强密码)
- NEXT_PUBLIC_STORAGE_TYPE=redis
- REDIS_URL=redis://moontv-redis:6379
networks:
- moontv-network
depends_on:
- moontv-redis
moontv-redis:
image: redis:alpine
container_name: moontv-redis
restart: unless-stopped
networks:
- moontv-network
volumes:
- ./data:/data # 持久化存储
networks:
moontv-network:
driver: bridge
启动 LunaTV
docker compose up -d
浏览器打开:http://服务器IP:3000
其他指令(在你保存 docker-compose.yml 的目录执行)
重启
docker compose restart
更新:
docker compose pull && docker compose up -d
单独重启某个容器
如果只想重启 LunaTV 主程序:
docker restart moontv-core
如果只想重启 Redis:
docker restart moontv-redis
Nginx 配置
多源自动代理版,避免跨域(CORS)配置
这样 LunaTV 在浏览器端就不会因为跨域报“请检查网络连接”了
server {
listen 80;
server_name yourdomain.com;
# 反代 LunaTV 前端
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# 多源自动 API 反代
location ~ ^/proxy/(.*) {
resolver 8.8.8.8 ipv6=off; # DNS 解析器,可换成你本地DNS
proxy_pass $1$is_args$args;
# CORS 头
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Headers 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header Access-Control-Expose-Headers 'Content-Length,Content-Range';
# 预检请求直接返回
if ($request_method = OPTIONS) {
return 204;
}
}
}
重载 Nginx
nginx -t
systemctl reload nginx
LunaTV 后台配置示例
比如你的资源站 API 是:https://xxx.com/xxx/vod
那在 LunaTV 里填:
{
"api_site": {
"zy": {
"api": "http://yourdomain.com/proxy/https://xxx.com/xxx/vod",
"name": "资源网",
"detail": "https://zyapi.cn"
}
}
}
配置订阅
可以使用这个订阅
https://gist.githubusercontent.com/senshinya/5a5cb900dfa888fd61d767530f00fc48/raw/gistfile1.txt
有自己的订阅地址可以更换