- 添加双 Git remote 配置指南 (GIT_GUIDE.md, GIT_WORKFLOW.md) - 添加 1Panel 环境部署配置 (docker-compose.1panel.yml, .env.1panel) - 添加自动化部署脚本 (deploy-complete.sh, deploy-dev.sh, deploy.sh) - 添加部署说明文档 (README_DEPLOY.md) - 配置端口 2080 映射 - 支持连接现有 1Panel Redis (1Panel-redis-S1KH)
121 lines
3.1 KiB
Bash
121 lines
3.1 KiB
Bash
#!/bin/bash
|
||
|
||
# Sub2API 二次开发部署脚本
|
||
# 使用方法: bash deploy-dev.sh
|
||
|
||
set -e
|
||
|
||
echo "====================================="
|
||
echo " Sub2API 二开版本部署"
|
||
echo " 端口: 2080"
|
||
echo "====================================="
|
||
echo ""
|
||
|
||
# 检查是否在 Git 仓库中
|
||
if [ ! -d ".git" ]; then
|
||
echo "❌ 错误: 当前目录不是 Git 仓库"
|
||
echo "请在项目根目录运行此脚本"
|
||
exit 1
|
||
fi
|
||
|
||
echo "📦 当前 Git 信息:"
|
||
echo " 分支: $(git branch --show-current)"
|
||
echo " 最新提交: $(git log -1 --oneline)"
|
||
echo ""
|
||
|
||
# 进入 deploy 目录
|
||
cd deploy
|
||
|
||
# 检查配置文件
|
||
if [ ! -f "docker-compose.prod.yml" ]; then
|
||
echo "📝 创建生产环境配置..."
|
||
cp docker-compose.yml docker-compose.prod.yml
|
||
|
||
# 修改端口为 2080
|
||
sed -i 's/\${SERVER_PORT:-8080}/2080/' docker-compose.prod.yml
|
||
|
||
# 添加 extra_hosts 配置(连接宿主机 Redis)
|
||
if ! grep -q "extra_hosts" docker-compose.prod.yml; then
|
||
sed -i '/depends_on:/i\ extra_hosts:\n - "host.docker.internal:host-gateway"' docker-compose.prod.yml
|
||
fi
|
||
|
||
# 修改 Redis 配置
|
||
sed -i 's/REDIS_HOST=redis/REDIS_HOST=host.docker.internal/' docker-compose.prod.yml
|
||
sed -i 's/REDIS_PASSWORD=\${REDIS_PASSWORD:-}/REDIS_PASSWORD=redis_bJFKDk/' docker-compose.prod.yml
|
||
sed -i 's/REDIS_DB=\${REDIS_DB:-0}/REDIS_DB=1/' docker-compose.prod.yml
|
||
|
||
echo "✅ docker-compose.prod.yml 已创建"
|
||
fi
|
||
|
||
# 创建 .env 文件
|
||
if [ ! -f ".env" ]; then
|
||
echo "🔐 生成配置文件..."
|
||
|
||
cat > .env << EOF
|
||
# PostgreSQL 配置
|
||
POSTGRES_USER=sub2api
|
||
POSTGRES_PASSWORD=$(openssl rand -base64 24)
|
||
POSTGRES_DB=sub2api
|
||
|
||
# 管理员账号
|
||
ADMIN_EMAIL=admin@example.com
|
||
ADMIN_PASSWORD=admin123
|
||
|
||
# JWT 配置
|
||
JWT_SECRET=$(openssl rand -hex 32)
|
||
JWT_EXPIRE_HOUR=24
|
||
|
||
# 其他配置
|
||
TZ=Asia/Shanghai
|
||
SERVER_MODE=release
|
||
RUN_MODE=standard
|
||
EOF
|
||
|
||
echo "✅ .env 文件已创建"
|
||
echo ""
|
||
echo "📋 生成的配置(请保存):"
|
||
cat .env | grep -E "POSTGRES_PASSWORD|JWT_SECRET"
|
||
echo ""
|
||
else
|
||
echo "⚠️ .env 已存在,跳过创建"
|
||
fi
|
||
|
||
# 拉取镜像
|
||
echo ""
|
||
echo "📥 拉取 Docker 镜像..."
|
||
docker-compose -f docker-compose.prod.yml pull
|
||
|
||
# 启动服务
|
||
echo ""
|
||
echo "🚀 启动服务..."
|
||
docker-compose -f docker-compose.prod.yml up -d
|
||
|
||
# 等待启动
|
||
echo ""
|
||
echo "⏳ 等待服务启动..."
|
||
sleep 10
|
||
|
||
# 显示状态
|
||
echo ""
|
||
echo "📊 服务状态:"
|
||
docker-compose -f docker-compose.prod.yml ps
|
||
|
||
echo ""
|
||
echo "====================================="
|
||
echo " ✅ 部署完成!"
|
||
echo "====================================="
|
||
echo ""
|
||
echo "📝 访问信息:"
|
||
echo " URL: http://$(hostname -I | awk '{print $1}'):2080"
|
||
echo " 管理员: admin@example.com / admin123"
|
||
echo ""
|
||
echo "📋 常用命令:"
|
||
echo " 查看日志: docker-compose -f docker-compose.prod.yml logs -f"
|
||
echo " 重启服务: docker-compose -f docker-compose.prod.yml restart"
|
||
echo " 停止服务: docker-compose -f docker-compose.prod.yml down"
|
||
echo ""
|
||
echo "🔄 同步官方更新:"
|
||
echo " git fetch upstream"
|
||
echo " git merge upstream/main"
|
||
echo ""
|