5.3 KiB
5.3 KiB
KatelyaTV Docker 部署指南
本文档提供 KatelyaTV 的完整 Docker 部署指南,确保用户能够成功拉取和部署镜像。
📦 镜像信息
- 镜像地址:
ghcr.io/katelya77/katelyatv:latest
- 支持架构: linux/amd64, linux/arm64
- 基础镜像: node:20-alpine
- 暴露端口: 3000
🚀 快速部署
1. 单容器部署(推荐新手)
# 拉取最新镜像
docker pull ghcr.io/katelya77/katelyatv:latest
# 启动容器
docker run -d \
--name katelyatv \
-p 3000:3000 \
--env PASSWORD=your_secure_password \
--restart unless-stopped \
ghcr.io/katelya77/katelyatv:latest
# 查看运行状态
docker ps | grep katelyatv
# 查看日志
docker logs katelyatv
2. Docker Compose 部署(推荐生产环境)
创建 docker-compose.yml
文件:
version: '3.8'
services:
katelyatv:
image: ghcr.io/katelya77/katelyatv:latest
container_name: katelyatv
restart: unless-stopped
ports:
- "3000:3000"
environment:
- PASSWORD=your_secure_password
- SITE_NAME=KatelyaTV
volumes:
# 可选:挂载自定义配置
# - ./config.json:/app/config.json:ro
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000"]
interval: 30s
timeout: 10s
retries: 3
启动服务:
# 启动服务
docker-compose up -d
# 查看状态
docker-compose ps
# 查看日志
docker-compose logs -f
🗄️ 数据持久化部署(Redis)
对于需要多用户支持和数据同步的场景:
version: '3.8'
services:
katelyatv:
image: ghcr.io/katelya77/katelyatv:latest
container_name: katelyatv
restart: unless-stopped
ports:
- "3000:3000"
environment:
- USERNAME=admin
- PASSWORD=admin_password
- NEXT_PUBLIC_STORAGE_TYPE=redis
- REDIS_URL=redis://redis:6379
- NEXT_PUBLIC_ENABLE_REGISTER=true
depends_on:
- redis
networks:
- katelyatv-network
redis:
image: redis:7-alpine
container_name: katelyatv-redis
restart: unless-stopped
volumes:
- redis_data:/data
networks:
- katelyatv-network
command: redis-server --appendonly yes
volumes:
redis_data:
networks:
katelyatv-network:
driver: bridge
🔧 环境变量配置
变量名 | 描述 | 默认值 | 示例 |
---|---|---|---|
PASSWORD |
访问密码 | - | my_secure_password |
USERNAME |
管理员用户名(Redis模式) | - | admin |
SITE_NAME |
站点名称 | KatelyaTV |
我的影视站 |
NEXT_PUBLIC_STORAGE_TYPE |
存储类型 | localstorage |
redis , d1 , upstash |
REDIS_URL |
Redis连接地址 | - | redis://redis:6379 |
NEXT_PUBLIC_ENABLE_REGISTER |
开放注册 | false |
true |
NEXT_PUBLIC_SEARCH_MAX_PAGE |
搜索最大页数 | 5 |
10 |
🔍 故障排查
常见问题
-
容器启动失败
# 查看详细错误信息 docker logs katelyatv # 检查端口占用 netstat -tulpn | grep :3000
-
镜像拉取失败
# 确认镜像地址正确 docker pull ghcr.io/katelya77/katelyatv:latest # 如果是私有仓库,需要先登录 docker login ghcr.io
-
数据丢失问题
- localStorage 模式:数据存储在浏览器,清除缓存会丢失
- 建议使用 Redis 模式进行数据持久化
健康检查
# 检查容器状态
docker ps
# 检查容器健康状态
docker inspect katelyatv | grep -A 5 "Health"
# 测试应用响应
curl -I http://localhost:3000
🔄 更新升级
更新到最新版本
# 停止旧容器
docker stop katelyatv
docker rm katelyatv
# 拉取最新镜像
docker pull ghcr.io/katelya77/katelyatv:latest
# 启动新容器(使用相同配置)
docker run -d \
--name katelyatv \
-p 3000:3000 \
--env PASSWORD=your_secure_password \
--restart unless-stopped \
ghcr.io/katelya77/katelyatv:latest
Docker Compose 更新
# 拉取最新镜像
docker-compose pull
# 重新创建容器
docker-compose up -d --force-recreate
🔐 安全建议
- 设置强密码: 使用复杂密码保护访问
- 限制访问: 配置防火墙或反向代理限制访问来源
- 定期更新: 保持镜像版本最新
- 数据备份: 定期备份 Redis 数据(如果使用)
- 监控日志: 关注异常访问和错误日志
📊 性能优化
资源限制
services:
katelyatv:
image: ghcr.io/katelya77/katelyatv:latest
deploy:
resources:
limits:
memory: 512M
cpus: '0.5'
reservations:
memory: 256M
cpus: '0.25'
反向代理(Nginx)
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://localhost: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;
}
}
🆘 获取帮助
注意: 本项目仅供学习和个人使用,请遵守当地法律法规。