-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathmytube.conf
More file actions
90 lines (79 loc) · 2.42 KB
/
Copy pathmytube.conf
File metadata and controls
90 lines (79 loc) · 2.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# --- 基础信息 / Basic Information ---
local app_id="mytube"
local app_name="MyTube"
local app_text="私人视频收藏与管理工具(支持 YouTube BiliBli 下载)"
local app_url="https://github.com/franklioxygen/MyTube"
local docker_name="mytube-frontend" # 主容器名称
local docker_port="5556" # 默认前端访问端口
local app_size="2" # 建议预留更多空间用于视频下载
# --- 核心逻辑 / Core Logic ---
docker_app_install() {
# 1. 环境准备
local base_dir="/home/docker/mytube"
mkdir -p "$base_dir/data" "$base_dir/uploads" && cd "$base_dir"
# 2. 写入 Docker Compose 配置文件
# 这里整合了前后端服务,并根据变量动态配置端口
cat <<EOF > docker-compose.yml
services:
backend:
image: franklioxygen/mytube:backend-latest
container_name: mytube-backend
pull_policy: always
restart: unless-stopped
ports:
- "5551:5551"
networks:
- mytube-network
environment:
- PORT=5551
volumes:
- ./uploads:/app/uploads
- ./data:/app/data
frontend:
image: franklioxygen/mytube:frontend-latest
container_name: mytube-frontend
pull_policy: always
restart: unless-stopped
ports:
- "${docker_port}:5556"
depends_on:
- backend
networks:
- mytube-network
environment:
- VITE_API_URL=/api
- VITE_BACKEND_URL=
networks:
mytube-network:
driver: bridge
driver_opts:
com.docker.network.bridge.enable_ip_masquerade: "true"
com.docker.network.bridge.enable_icc: "true"
EOF
# 3. 权限修正 (针对常见权限拒绝问题)
chmod -R 777 "$base_dir/uploads" "$base_dir/data"
# 4. 启动容器
echo "正在拉取镜像并启动 MyTube..."
docker compose up -d
echo "安装完成 / Install Complete"
# 提示:前端访问端口为 ${docker_port},后端 API 端口固定为 5551
check_docker_app_ip
}
docker_app_update() {
cd /home/docker/mytube
echo "正在更新镜像..."
docker compose pull
docker compose up -d
echo "更新完成 / Update Complete"
}
docker_app_uninstall() {
cd /home/docker/mytube
echo "正在卸载 MyTube..."
# 停止容器并删除镜像
docker compose down --rmi all
# 清理物理文件 (注意:这会删除所有已下载的视频!)
rm -rf /home/docker/mytube
echo "卸载完成 / Uninstall Complete"
}
# --- 注册 / Registration ---
docker_app_plus