Delete DOCKER_DEPLOYMENT.md
parent
a4fd8a78d5
commit
146ed3d7b5
|
@ -1,251 +0,0 @@
|
||||||
# KatelyaTV Docker 部署指南
|
|
||||||
|
|
||||||
> 本文档提供 KatelyaTV 的完整 Docker 部署指南,确保用户能够成功拉取和部署镜像。
|
|
||||||
|
|
||||||
## 📦 镜像信息
|
|
||||||
|
|
||||||
- **镜像地址**: `ghcr.io/katelya77/katelyatv:latest`
|
|
||||||
- **支持架构**: linux/amd64, linux/arm64
|
|
||||||
- **基础镜像**: node:20-alpine
|
|
||||||
- **暴露端口**: 3000
|
|
||||||
|
|
||||||
## 🚀 快速部署
|
|
||||||
|
|
||||||
### 1. 单容器部署(推荐新手)
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# 拉取最新镜像
|
|
||||||
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` 文件:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
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
|
|
||||||
```
|
|
||||||
|
|
||||||
启动服务:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# 启动服务
|
|
||||||
docker-compose up -d
|
|
||||||
|
|
||||||
# 查看状态
|
|
||||||
docker-compose ps
|
|
||||||
|
|
||||||
# 查看日志
|
|
||||||
docker-compose logs -f
|
|
||||||
```
|
|
||||||
|
|
||||||
## 🗄️ 数据持久化部署(Redis)
|
|
||||||
|
|
||||||
对于需要多用户支持和数据同步的场景:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
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` |
|
|
||||||
|
|
||||||
## 🔍 故障排查
|
|
||||||
|
|
||||||
### 常见问题
|
|
||||||
|
|
||||||
1. **容器启动失败**
|
|
||||||
```bash
|
|
||||||
# 查看详细错误信息
|
|
||||||
docker logs katelyatv
|
|
||||||
|
|
||||||
# 检查端口占用
|
|
||||||
netstat -tulpn | grep :3000
|
|
||||||
```
|
|
||||||
|
|
||||||
2. **镜像拉取失败**
|
|
||||||
```bash
|
|
||||||
# 确认镜像地址正确
|
|
||||||
docker pull ghcr.io/katelya77/katelyatv:latest
|
|
||||||
|
|
||||||
# 如果是私有仓库,需要先登录
|
|
||||||
docker login ghcr.io
|
|
||||||
```
|
|
||||||
|
|
||||||
3. **数据丢失问题**
|
|
||||||
- localStorage 模式:数据存储在浏览器,清除缓存会丢失
|
|
||||||
- 建议使用 Redis 模式进行数据持久化
|
|
||||||
|
|
||||||
### 健康检查
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# 检查容器状态
|
|
||||||
docker ps
|
|
||||||
|
|
||||||
# 检查容器健康状态
|
|
||||||
docker inspect katelyatv | grep -A 5 "Health"
|
|
||||||
|
|
||||||
# 测试应用响应
|
|
||||||
curl -I http://localhost:3000
|
|
||||||
```
|
|
||||||
|
|
||||||
## 🔄 更新升级
|
|
||||||
|
|
||||||
### 更新到最新版本
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# 停止旧容器
|
|
||||||
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 更新
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# 拉取最新镜像
|
|
||||||
docker-compose pull
|
|
||||||
|
|
||||||
# 重新创建容器
|
|
||||||
docker-compose up -d --force-recreate
|
|
||||||
```
|
|
||||||
|
|
||||||
## 🔐 安全建议
|
|
||||||
|
|
||||||
1. **设置强密码**: 使用复杂密码保护访问
|
|
||||||
2. **限制访问**: 配置防火墙或反向代理限制访问来源
|
|
||||||
3. **定期更新**: 保持镜像版本最新
|
|
||||||
4. **数据备份**: 定期备份 Redis 数据(如果使用)
|
|
||||||
5. **监控日志**: 关注异常访问和错误日志
|
|
||||||
|
|
||||||
## 📊 性能优化
|
|
||||||
|
|
||||||
### 资源限制
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
services:
|
|
||||||
katelyatv:
|
|
||||||
image: ghcr.io/katelya77/katelyatv:latest
|
|
||||||
deploy:
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
memory: 512M
|
|
||||||
cpus: '0.5'
|
|
||||||
reservations:
|
|
||||||
memory: 256M
|
|
||||||
cpus: '0.25'
|
|
||||||
```
|
|
||||||
|
|
||||||
### 反向代理(Nginx)
|
|
||||||
|
|
||||||
```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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## 🆘 获取帮助
|
|
||||||
|
|
||||||
- 📖 [项目文档](README.md)
|
|
||||||
- 🐛 [问题反馈](https://github.com/katelya77/KatelyaTV/issues)
|
|
||||||
- 💬 [讨论区](https://github.com/katelya77/KatelyaTV/discussions)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**注意**: 本项目仅供学习和个人使用,请遵守当地法律法规。
|
|
Loading…
Reference in New Issue