跨平台 · 聚合搜索 · 即开即用 · 自托管影视聚合播放器
基于 Next.js 14 · TypeScript · Tailwind CSS · 多源聚合 / 播放记录 / 收藏同步 / 跳过片头片尾 / PWA
🚀 快速开始 ·
✨ 功能特性 ·
📋 部署方案 ·
⚙️ 配置说明
本项目自「MoonTV」演进而来,为其二创/继承版本,持续维护与改进功能与体验。保留并致谢原作者与社区贡献者。
[!IMPORTANT] 重要变更:应用户社区建议,为确保项目长期稳定运行和合规性,内置视频源已移除。现需要用户自行配置资源站以使用完整功能。我们提供了经过测试的推荐配置文件,让您快速上手使用。
| 使用场景 | 推荐方案 | 存储类型 | 成人内容过滤 | 多用户 | 部署难度 |
|---|---|---|---|---|---|
| 个人使用 | Docker 单容器 | localstorage | ❌ | ❌ | ⭐ |
| 家庭使用 | Docker + Redis | redis | ✅ | ✅ | ⭐⭐ |
| 免费部署 | Vercel + Upstash | upstash | ✅ | ✅ | ⭐⭐⭐ |
| 生产环境 | Docker + Kvrocks | kvrocks | ✅ | ✅ | ⭐⭐ |
| 全球加速 | Cloudflare Pages | d1 | ✅ | ✅ | ⭐⭐⭐⭐ |
[!NOTE] 重要提示:成人内容过滤功能需要数据库存储支持,不支持
localstorage方式
特点:5 分钟部署,个人使用,无多用户功能
docker run -d \
--name katelyatv \
-p 3000:3000 \
-e PASSWORD=your_password \
--restart unless-stopped \
ghcr.io/katelya77/katelyatv:latest
挂载自定义配置(可选):
docker run -d \
--name katelyatv \
-p 3000:3000 \
-e PASSWORD=your_password \
-v $(pwd)/config.json:/app/config.json:ro \
--restart unless-stopped \
ghcr.io/katelya77/katelyatv:latest
特点:完整功能,多用户支持,成人内容过滤
# 1. 下载配置文件
curl -O https://raw.githubusercontent.com/katelya77/KatelyaTV/main/docker-compose.redis.yml
curl -O https://raw.githubusercontent.com/katelya77/KatelyaTV/main/.env.redis.example
# 2. 配置环境变量
cp .env.redis.example .env
编辑 .env 文件:
# 管理员账号(必填)
USERNAME=admin
PASSWORD=your_secure_password
# 存储配置
NEXT_PUBLIC_STORAGE_TYPE=redis
REDIS_URL=redis://katelyatv-redis:6379
# 功能开关
NEXT_PUBLIC_ENABLE_REGISTER=true
# 3. 启动服务
docker compose -f docker-compose.redis.yml up -d
备份脚本示例:
#!/bin/bash
# backup.sh - 完整备份脚本
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="backups/$DATE"
mkdir -p $BACKUP_DIR
echo "开始备份 KatelyaTV 数据..."
# 备份配置文件
cp config.json $BACKUP_DIR/config.json
echo "✓ 配置文件备份完成"
# 根据存储类型备份数据
if [ -f .env ] && grep -q "REDIS_URL" .env; then
# Redis 数据备份
docker compose exec redis redis-cli --rdb $BACKUP_DIR/dump.rdb
echo "✓ Redis 数据备份完成"
elif [ -f .env ] && grep -q "UPSTASH" .env; then
# Upstash 数据导出
echo "Upstash 数据需手动在控制台导出"
fi
# Kvrocks 数据备份
if docker compose ps | grep -q kvrocks; then
docker run --rm \
-v katelyatv_kvrocks-data:/data:ro \
-v $(pwd)/$BACKUP_DIR:/backup \
alpine tar czf /backup/kvrocks-data.tar.gz /data
echo "✓ Kvrocks 数据备份完成"
fi
# 压缩备份文件
tar -czf "katelyatv-backup-$DATE.tar.gz" -C backups $DATE
rm -rf $BACKUP_DIR
echo "✓ 备份完成: katelyatv-backup-$DATE.tar.gz"
恢复数据:
#!/bin/bash
# restore.sh - 数据恢复脚本
BACKUP_FILE="$1"
if [ -z "$BACKUP_FILE" ]; then
echo "用法: $0 "
exit 1
fi
echo "恢复数据从: $BACKUP_FILE"
tar -xzf $BACKUP_FILE
# 恢复配置文件
BACKUP_DIR=$(tar -tzf $BACKUP_FILE | head -1 | cut -f1 -d"/")
cp $BACKUP_DIR/config.json ./config.json
# 恢复数据库
if [ -f "$BACKUP_DIR/dump.rdb" ]; then
docker compose exec redis redis-cli FLUSHALL
docker cp $BACKUP_DIR/dump.rdb redis:/data/dump.rdb
docker compose restart redis
fi
echo "✓ 数据恢复完成"
常见问题快速排查:
| 问题症状 | 可能原因 | 解决方案 |
|---|---|---|
| 无法访问网站 | 端口未开放/服务未启动 | 检查防火墙和服务状态 |
| 视频无法播放 | 配置文件错误/源失效 | 验证 config.json 格式和源可用性 |
| 登录失败 | 密码错误/环境变量未设置 | 检查 PASSWORD 环境变量 |
| 数据库连接失败 | 连接信息错误/服务未启动 | 验证连接字符串和服务状态 |
| 页面加载缓慢 | 内存不足/缓存失效 | 重启服务或清理缓存 |
诊断命令:
# 系统状态检查
docker compose ps
docker compose logs --tail=50
# 网络连通性测试
curl -I http://localhost:3000
wget --spider http://localhost:3000
# 数据库连接测试
# Redis
redis-cli -u $REDIS_URL ping
# 或者
docker compose exec redis redis-cli ping
# 配置文件验证
cat config.json | jq '.'
# 如果没有 jq,可以用 python
python -m json.tool config.json
# 端口占用检查
netstat -tlnp | grep 3000
ss -tlnp | grep 3000
生产环境安全检查清单:
安全配置示例:
# nginx 配置增强安全性
# /etc/nginx/sites-available/katelyatv
server {
listen 443 ssl http2;
server_name your-domain.com;
# SSL 配置
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
ssl_protocols TLSv1.2 TLSv1.3;
# 安全头
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
# 限制请求大小
client_max_body_size 10M;
# 速率限制
limit_req_zone $binary_remote_addr zone=api:10m rate=10r/m;
location /api/ {
limit_req zone=api burst=5 nodelay;
proxy_pass http://localhost:3000;
}
location /admin {
# 仅允许特定IP访问管理界面
allow 192.168.1.0/24;
deny all;
proxy_pass http://localhost:3000;
}
}
功能配置:
故障排除:
新手快速上手路径:
生产环境推荐方案:
官方资源:
社区支持:
在线演示:
demo123)贡献方式:
开发者指南:
# 本地开发环境搭建
git clone https://github.com/katelya77/KatelyaTV.git
cd KatelyaTV
# 安装依赖
pnpm install
# 启动开发服务器
pnpm dev
# 运行测试
pnpm test
# 构建生产版本
pnpm build
# 代码格式化
pnpm lint --fix
pnpm format
强烈建议:
安全配置:
感谢以下优秀的开源项目和技术社区:
核心依赖:
基础设施:
项目启发:
如果 KatelyaTV 对您有帮助,欢迎通过以下方式支持项目:
免费支持:
赞助支持:
请开发者喝杯咖啡 ☕
您的支持是项目持续发展的动力
企业赞助:
如果您的企业希望赞助 KatelyaTV 项目,请通过 https://github.com/***/katelya77 或发邮件联系我们。
Star History:
本项目基于 MIT License 开源协议发布。
MIT License
Copyright (c) 2025 KatelyaTV & Contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
🎉 感谢您选择 KatelyaTV!
如果项目对您有帮助,请给个 ⭐ Star 支持一下!
🏠 项目首页
•
🐛 问题反馈
•
💬 讨论交流
•
📚 使用文档
❤️ Made with love by KatelyaTV Community ❤️
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务