name: 部署到群晖 on: push: branches: [main, master] jobs: deploy: runs-on: ubuntu-latest steps: - name: 安装 Docker CLI run: | sed -i 's|deb.debian.org|mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list /etc/apt/sources.list.d/*.list 2>/dev/null || true sed -i 's|security.debian.org|mirrors.tuna.tsinghua.edu.cn/debian-security|g' /etc/apt/sources.list /etc/apt/sources.list.d/*.list 2>/dev/null || true apt-get update -qq apt-get install -y -qq docker.io - name: 拉取代码 uses: actions/checkout@v4 - name: 构建镜像 run: docker build -t birthday-server:latest ./server - name: 停止旧容器 run: | docker stop birthday-server 2>/dev/null || true docker rm birthday-server 2>/dev/null || true - name: 准备持久化目录(在宿主上创建) run: | docker run --rm -v /volume1/docker/apps:/apps birthday-server:latest \ mkdir -p /apps/birthday-server/data - name: 启动新容器 env: WX_APPID: ${{ secrets.WX_APPID }} WX_APPSECRET: ${{ secrets.WX_APPSECRET }} WX_TEMPLATE_ID: ${{ secrets.WX_TEMPLATE_ID }} WX_MINIPROGRAM_STATE: ${{ secrets.WX_MINIPROGRAM_STATE }} REMINDER_CRON: ${{ secrets.REMINDER_CRON }} run: | docker run -d \ --name birthday-server \ --restart unless-stopped \ -p 15002:3000 \ -v /volume1/docker/apps/birthday-server/data:/app/data \ -e TZ=Asia/Shanghai \ -e WX_APPID="$WX_APPID" \ -e WX_APPSECRET="$WX_APPSECRET" \ -e WX_TEMPLATE_ID="${WX_TEMPLATE_ID:-6J7Stt-lu7DKU6jblJ0nZGq_D81z5glnksf7qWfy5Yw}" \ -e WX_MINIPROGRAM_STATE="${WX_MINIPROGRAM_STATE:-formal}" \ -e REMINDER_CRON="${REMINDER_CRON:-0 9 * * *}" \ birthday-server:latest - name: 部署完成提示 run: echo "部署完成,访问 http://192.168.1.66:15002/api/health"