Files
sub2api/deploy/deploy-dev.sh
huangzhenpc e4db851b31
Some checks failed
CI / test (push) Has been cancelled
CI / golangci-lint (push) Has been cancelled
feat: 添加二次开发部署配置和文档
- 添加双 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)
2026-01-04 10:25:36 +08:00

121 lines
3.1 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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 ""