feat: 添加生产环境配置,重构 API 请求,更新部署脚本和配置

This commit is contained in:
richarjiang
2026-03-15 23:00:51 +08:00
parent 3c35f1982f
commit 441cc8dd48
14 changed files with 131 additions and 20 deletions

47
deploy.sh Executable file
View File

@@ -0,0 +1,47 @@
#!/usr/bin/env bash
set -euo pipefail
# ─── 配置 ───────────────────────────────────────────
SERVER="root@119.91.211.52"
REMOTE_DIR="/root/apps/meme-studio"
APP_NAME="meme-studio"
# ─── 颜色 ───────────────────────────────────────────
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
RED='\033[0;31m'
NC='\033[0m'
step() { echo -e "\n${GREEN}$1${NC}"; }
warn() { echo -e "${YELLOW}$1${NC}"; }
fail() { echo -e "${RED}$1${NC}"; exit 1; }
START_TIME=$(date +%s)
# ─── 1. 本地构建 ────────────────────────────────────
step "构建项目..."
pnpm run build || fail "构建失败"
# ─── 2. 创建远程目录 ────────────────────────────────
step "初始化远程目录..."
ssh "$SERVER" "mkdir -p $REMOTE_DIR/.next/static $REMOTE_DIR/public"
# ─── 3. 同步文件(排除 node_modules由服务器安装───
step "同步文件到服务器..."
rsync -az --delete --exclude='node_modules' .next/standalone/ "$SERVER:$REMOTE_DIR/"
rsync -az .next/static/ "$SERVER:$REMOTE_DIR/.next/static/"
rsync -az public/ "$SERVER:$REMOTE_DIR/public/"
rsync -az prisma/ "$SERVER:$REMOTE_DIR/prisma/"
rsync -az .env.production "$SERVER:$REMOTE_DIR/.env"
rsync -az ecosystem.config.js "$SERVER:$REMOTE_DIR/"
rsync -az package.json package-lock.json "$SERVER:$REMOTE_DIR/"
# ─── 4. 远程安装依赖 & 重启 ─────────────────────────
step "安装依赖并重启服务..."
ssh "$SERVER" "cd $REMOTE_DIR && npm install --production && npx prisma generate && (pm2 restart $APP_NAME 2>/dev/null || pm2 start ecosystem.config.js)"
# ─── 完成 ───────────────────────────────────────────
END_TIME=$(date +%s)
ELAPSED=$((END_TIME - START_TIME))
echo -e "\n${GREEN}✔ 部署完成!耗时 ${ELAPSED}s${NC}"