diff --git a/.gitea/workflows/docker.yml b/.gitea/workflows/docker.yml index 42eb4bb..e356bab 100644 --- a/.gitea/workflows/docker.yml +++ b/.gitea/workflows/docker.yml @@ -5,23 +5,22 @@ on: push: branches: - main - - internal pull_request: branches: - main - - internal env: # Docker镜像仓库 REPO: ${{ vars.REPO || 'registry.kxsw.us/vpn-server' }} - # SSH连接信息 (根据分支自动选择) + # SSH连接信息 (根据分支自动选择服务器和用户) SSH_HOST: ${{ github.ref_name == 'main' && vars.SSH_HOST || vars.DEV_SSH_HOST }} SSH_PORT: ${{ vars.SSH_PORT }} - SSH_USER: ${{ vars.SSH_USER }} - SSH_PASSWORD: ${{ github.ref_name == 'main' && vars.SSH_PASSWORD || vars.DEV_SSH_PASSWORD }} + SSH_USER: ${{ github.ref_name == 'main' && 'ubuntu' || 'root' }} + # SSH私钥(Gitea Secret 名称:AWS) + SSH_KEY: ${{ secrets.AWS }} # TG通知 TG_BOT_TOKEN: 8114337882:AAHkEx03HSu7RxN4IHBJJEnsK9aPPzNLIk0 - TG_CHAT_ID: "-4940243803" + TG_CHAT_ID: "-49402438031" # Go构建变量 SERVICE: vpn SERVICE_STYLE: vpn @@ -49,7 +48,7 @@ jobs: if [ "${{ github.ref_name }}" = "main" ]; then echo "DOCKER_TAG_SUFFIX=latest" >> $GITHUB_ENV echo "CONTAINER_NAME=ppanel-server" >> $GITHUB_ENV - echo "DEPLOY_PATH=/root/hifast" >> $GITHUB_ENV + echo "DEPLOY_PATH=/opt/ppanel" >> $GITHUB_ENV echo "为 main 分支设置生产环境变量" elif [ "${{ github.ref_name }}" = "internal" ]; then echo "DOCKER_TAG_SUFFIX=internal" >> $GITHUB_ENV @@ -137,17 +136,15 @@ jobs: echo "镜像推送完成" - # 调试: 打印 SSH 连接信息 - - name: 🔍 调试 - 打印 SSH 连接信息 + # 调试: 打印部署目标(不输出敏感信息) + - name: 🔍 调试 - 打印部署目标 run: | - echo "========== SSH 连接信息调试 ==========" + echo "========== 部署目标调试 ==========" echo "当前分支: ${{ github.ref_name }}" echo "SSH_HOST: ${{ env.SSH_HOST }}" echo "SSH_PORT: ${{ env.SSH_PORT }}" echo "SSH_USER: ${{ env.SSH_USER }}" - echo "SSH_PASSWORD 长度: ${#SSH_PASSWORD}" - echo "SSH_PASSWORD 前3位: $(echo "$SSH_PASSWORD" | cut -c1-3)***" - echo "SSH_PASSWORD 完整值: ${{ env.SSH_PASSWORD }}" + echo "SSH认证方式: 私钥 (AWS)" echo "DEPLOY_PATH: ${{ env.DEPLOY_PATH }}" echo "=====================================" @@ -157,10 +154,10 @@ jobs: with: host: ${{ env.SSH_HOST }} username: ${{ env.SSH_USER }} - password: ${{ env.SSH_PASSWORD }} + key: ${{ env.SSH_KEY }} port: ${{ env.SSH_PORT }} source: "docker-compose.cloud.yml" - target: "${{ env.DEPLOY_PATH }}/" + target: "/tmp/ppanel-deploy/" # 步骤6: 连接服务器更新并启动 - name: 🚀 连接服务器更新并启动 @@ -168,7 +165,7 @@ jobs: with: host: ${{ env.SSH_HOST }} username: ${{ env.SSH_USER }} - password: ${{ env.SSH_PASSWORD }} + key: ${{ env.SSH_KEY }} port: ${{ env.SSH_PORT }} timeout: 300s command_timeout: 600s @@ -176,23 +173,27 @@ jobs: echo "连接服务器成功,开始部署..." echo "部署目录: ${{ env.DEPLOY_PATH }}" echo "部署标签: ${{ env.DOCKER_TAG_SUFFIX }}" + echo "登录用户: ${{ env.SSH_USER }}" - # 进入部署目录 - cd ${{ env.DEPLOY_PATH }} - - # 创建/更新环境变量文件 - # echo "PPANEL_SERVER_TAG=${{ env.DOCKER_TAG_SUFFIX }}" > .env - - # 拉取最新镜像 - echo "📥 拉取镜像..." - docker-compose -f docker-compose.cloud.yml pull ppanel-server - - # 启动服务 - echo "🚀 启动服务..." - docker-compose -f docker-compose.cloud.yml up -d ppanel-server - - # 清理未使用的镜像 - docker image prune -f || true + if [ "${{ github.ref_name }}" = "main" ]; then + sudo mkdir -p ${{ env.DEPLOY_PATH }} + sudo cp /tmp/ppanel-deploy/docker-compose.cloud.yml ${{ env.DEPLOY_PATH }}/docker-compose.cloud.yml + cd ${{ env.DEPLOY_PATH }} + echo "📥 拉取镜像..." + sudo docker-compose -f docker-compose.cloud.yml pull ppanel-server + echo "🚀 启动服务..." + sudo docker-compose -f docker-compose.cloud.yml up -d ppanel-server + sudo docker image prune -f || true + else + mkdir -p ${{ env.DEPLOY_PATH }} + cp /tmp/ppanel-deploy/docker-compose.cloud.yml ${{ env.DEPLOY_PATH }}/docker-compose.cloud.yml + cd ${{ env.DEPLOY_PATH }} + echo "📥 拉取镜像..." + docker-compose -f docker-compose.cloud.yml pull ppanel-server + echo "🚀 启动服务..." + docker-compose -f docker-compose.cloud.yml up -d ppanel-server + docker image prune -f || true + fi echo "✅ 部署命令执行完成" @@ -233,4 +234,4 @@ jobs: ⚠️ 请检查构建日志获取详细信息 parse_mode: Markdown - \ No newline at end of file +