63 lines
1.6 KiB
Bash
Executable File
63 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
echo "🚀 开始部署 Remix 项目..."
|
||
|
||
# 清理旧的构建文件
|
||
echo "🧹 清理旧的构建文件..."
|
||
rm -rf build/
|
||
rm -rf public/build/
|
||
|
||
# 安装依赖(确保 dotenv 在生产环境中可用)
|
||
echo "📦 安装依赖..."
|
||
npm install
|
||
|
||
# 构建项目
|
||
echo "🔨 构建项目..."
|
||
npm run build
|
||
|
||
# 检查 .env 文件是否存在
|
||
if [ ! -f .env ]; then
|
||
echo "⚠️ 警告: .env 文件不存在!"
|
||
echo "请确保 .env 文件包含以下变量:"
|
||
echo "NEXT_PUBLIC_API_URL="
|
||
echo "NEXT_PUBLIC_APP_ID="
|
||
echo "NEXT_PUBLIC_APP_KEY="
|
||
echo "JWT_SECRET="
|
||
exit 1
|
||
fi
|
||
|
||
# 检查 JWT_SECRET 是否配置
|
||
if ! grep -q "^JWT_SECRET=" .env; then
|
||
echo "⚠️ 警告: .env 文件中未配置 JWT_SECRET!"
|
||
echo "JWT_SECRET 用于签名和验证 JWT token,是必需的安全配置。"
|
||
echo "请在 .env 文件中添加:"
|
||
echo "JWT_SECRET=your-strong-random-secret-key"
|
||
echo ""
|
||
echo "可以使用以下命令生成强随机密钥:"
|
||
echo "npm run generate:jwt-secret"
|
||
exit 1
|
||
fi
|
||
|
||
echo "✅ 环境变量检查通过"
|
||
|
||
# 创建日志目录
|
||
mkdir -p logs
|
||
|
||
# 打包部署文件
|
||
echo "📦 打包部署文件..."
|
||
tar -czvf docreview-frontend-deploy.tar.gz \
|
||
.env \
|
||
build/ \
|
||
public/build/ \
|
||
node_modules/ \
|
||
package.json \
|
||
package-lock.json \
|
||
ecosystem.config.cjs \
|
||
logs/
|
||
|
||
echo "✅ 部署包创建完成: docreview-frontend-deploy.tar.gz"
|
||
echo ""
|
||
echo "📋 部署说明:"
|
||
echo "1. 将 docreview-frontend-deploy.tar.gz 上传到服务器"
|
||
echo "2. 解压: tar -xzvf docreview-frontend-deploy.tar.gz"
|
||
echo "3. 启动方式: ./node_modules/.bin/pm2 start ecosystem.config.cjs" |