1+ #! /bin/bash
2+
3+ echo " 🚀 MyNest 一键部署脚本"
4+ echo " ========================="
5+
6+ # 检查 Docker 和 Docker Compose
7+ if ! command -v docker & > /dev/null; then
8+ echo " ❌ Docker 未安装,请先安装 Docker"
9+ exit 1
10+ fi
11+
12+ if ! command -v docker-compose & > /dev/null; then
13+ echo " ❌ Docker Compose 未安装,请先安装 Docker Compose"
14+ exit 1
15+ fi
16+
17+ # 创建必要的目录
18+ echo " 📁 创建必要目录..."
19+ mkdir -p downloads logs
20+
21+ # 设置环境变量(如果不存在 .env 文件)
22+ if [ ! -f .env ]; then
23+ echo " ⚙️ 创建默认配置文件..."
24+ cat > .env << EOF
25+ # 数据库密码
26+ POSTGRES_PASSWORD=mynest123
27+
28+ # Aria2 密钥
29+ ARIA2_SECRET=mynest123
30+
31+ # 服务端口
32+ PORT=3001
33+
34+ # 下载目录
35+ DOWNLOAD_DIR=./downloads
36+
37+ # 日志目录
38+ LOG_DIR=./logs
39+
40+ # Docker 镜像配置
41+ DOCKER_USERNAME=sunxiao0721
42+ VERSION=latest
43+
44+ # 代理配置(可选)
45+ # HTTP_PROXY=http://proxy.example.com:8080
46+ # HTTPS_PROXY=http://proxy.example.com:8080
47+ # NO_PROXY=localhost,127.0.0.1
48+ EOF
49+ echo " ✅ 已创建默认 .env 配置文件"
50+ echo " 您可以编辑此文件来自定义配置"
51+ fi
52+
53+ # 停止现有服务(如果存在)
54+ echo " 🛑 停止现有服务..."
55+ docker-compose down 2> /dev/null || true
56+
57+ # 拉取最新镜像
58+ echo " 📦 拉取最新镜像..."
59+ docker-compose pull
60+
61+ # 启动服务
62+ echo " 🚀 启动 MyNest 服务..."
63+ echo " 这可能需要几分钟时间,请耐心等待..."
64+ docker-compose up -d
65+
66+ # 显示启动状态
67+ echo " "
68+ echo " ⏳ 等待服务启动..."
69+ sleep 10
70+
71+ # 检查服务状态
72+ echo " "
73+ echo " 📊 服务状态:"
74+ docker-compose ps
75+
76+ echo " "
77+ echo " 🎉 部署完成!"
78+ echo " "
79+ echo " 📍 访问地址:"
80+ echo " • MyNest Web界面: http://localhost:$( grep PORT= .env | cut -d' =' -f2 | head -1) "
81+ echo " • Aria2 WebUI: http://localhost:6801 (密钥: $( grep ARIA2_SECRET= .env | cut -d' =' -f2) )"
82+ echo " "
83+ echo " 📂 重要目录:"
84+ echo " • 下载目录: $( realpath $( grep DOWNLOAD_DIR= .env | cut -d' =' -f2 | head -1) ) "
85+ echo " • 日志目录: $( realpath $( grep LOG_DIR= .env | cut -d' =' -f2 | head -1) ) "
86+ echo " "
87+ echo " 🔧 管理命令:"
88+ echo " • 查看日志: docker-compose logs -f"
89+ echo " • 重启服务: docker-compose restart"
90+ echo " • 停止服务: docker-compose down"
91+ echo " • 更新服务: $0 "
92+ echo " "
93+
94+ # 检查服务健康状态
95+ echo " 🏥 正在进行健康检查..."
96+ sleep 30
97+ healthy_services=$( docker-compose ps --filter " status=running" --format " table {{.Service}}\t{{.Status}}" | grep -c " healthy" || echo " 0" )
98+ if [ " $healthy_services " -gt 0 ]; then
99+ echo " ✅ 服务运行正常"
100+ else
101+ echo " ⚠️ 服务可能还在启动中,请稍等并查看日志:"
102+ echo " docker-compose logs -f"
103+ fi
0 commit comments