后端版本服务器部署成功

This commit is contained in:
2025-09-11 15:46:43 +08:00
parent 068b7887a9
commit cb55ee2714
4 changed files with 4 additions and 254 deletions

View File

@@ -1,78 +0,0 @@
#!/bin/bash
# 结伴客后端生产环境启动脚本
# 此脚本用于直接使用生产环境MySQL数据库不使用Redis和RabbitMQ
# 设置脚本执行时的选项:出错时退出,未定义变量时出错
set -euo pipefail
# 生产环境环境变量配置
export NODE_ENV="production"
export PORT="3200"
export HOST="0.0.0.0"
# MySQL数据库配置 - 生产环境
# 请根据实际情况修改以下配置
export DB_HOST="nj-cdb-3pwh2kz1.sql.tencentcdb.com"
export DB_PORT="20784"
export DB_NAME="jbkdata"
export DB_USER="jiebanke"
export DB_PASSWORD='aiot741$12346'
export DATABASE_URL="mysql://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_NAME}"
# 禁用Redis缓存
export USE_REDIS="false"
export REDIS_URL=""
# 禁用RabbitMQ消息队列
export USE_RABBITMQ="false"
export RABBITMQ_URL=""
# 应用特定配置
export JWT_SECRET="your-production-jwt-secret"
export JWT_EXPIRES_IN="30d"
export CRYPTO_SECRET="your-production-crypto-secret"
# 上传文件配置
export UPLOAD_DIR="./uploads"
export MAX_FILE_SIZE="10485760" # 10MB
export ENABLE_SWAGGER="true" # 生产环境启用Swagger文档
export NO_DB_MODE="false" # 必须使用数据库
# 显示启动信息
echo "========================================"
echo "🚀 结伴客后端生产环境启动脚本"
echo "📅 时间: $(date)"
echo "========================================"
echo ""
echo "🔍 环境变量配置:"
echo "🔹 NODE_ENV: $NODE_ENV"
echo "🔹 PORT: $PORT"
echo "🔹 HOST: $HOST"
echo "🔹 DATABASE_URL: $(echo $DATABASE_URL | sed 's/:.*/:******@/')"
echo "🔹 USE_REDIS: $USE_REDIS"
echo "🔹 USE_RABBITMQ: $USE_RABBITMQ"
echo "🔹 NO_DB_MODE: $NO_DB_MODE"
echo "🔹 ENABLE_SWAGGER: $ENABLE_SWAGGER"
echo ""
# 检查是否已安装依赖
echo "🔍 检查依赖安装..."
if [ ! -d "node_modules" ]; then
echo "⚠️ 依赖未安装,开始安装..."
npm install --production
echo "✅ 依赖安装完成"
else
echo "✅ 依赖已安装"
fi
echo ""
# 启动服务器
echo "========================================"
echo "🚀 启动服务器..."
echo "========================================"
# 使用node直接启动服务器不使用PM2等进程管理器
node src/server.js

1
backend/start-production.sh Symbolic link
View File

@@ -0,0 +1 @@
start-server.sh

View File

@@ -1,20 +0,0 @@
#!/bin/bash
# 无数据库模式启动脚本
# 确保脚本可执行
echo "🔧 正在准备无数据库模式启动..."
# 设置NODE_ENV为development
export NODE_ENV=development
# 设置NO_DB_MODE为true
export NO_DB_MODE=true
# 启动服务器
echo "🚀 以无数据库模式启动服务器..."
echo "⚠️ 注意:在无数据库模式下,许多功能将不可用"
echo "📝 查看 /health 和 /system-stats 端点获取服务器状态"
echo "📚 Swagger文档可在 /api-docs 访问"
npm run dev

1
backend/start-without-db.sh Symbolic link
View File

@@ -0,0 +1 @@
start-server.sh

View File

@@ -1,155 +0,0 @@
#!/bin/bash
# 结伴客后端服务简化启动脚本
# 不依赖PM2直接使用Node.js运行
# 设置颜色输出
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# 配置参数
APP_DIR="$(pwd)"
NODE_ENV=${NODE_ENV:-"development"}
PORT=${PORT:-"3110"} # 使用3110端口
# 数据库配置 - 使用生产环境MySQL数据库
DB_HOST="nj-cdb-3pwh2kz1.sql.tencentcdb.com"
DB_PORT="20784"
DB_USER="jiebanke"
DB_PASSWORD='aiot741$12346'
DB_NAME="jbkdata"
DATABASE_URL="mysql://$DB_USER:$DB_PASSWORD@$DB_HOST:$DB_PORT/$DB_NAME"
# 其他配置
USE_REDIS="false"
USE_RABBITMQ="false"
ENABLE_SWAGGER="true"
# 检查Node.js环境
check_node() {
if ! command -v node &> /dev/null; then
echo -e "${RED}错误Node.js环境未安装${NC}"
exit 1
fi
echo -e "${GREEN}Node.js版本: $(node -v)${NC}"
}
# 检查npm环境
check_npm() {
if ! command -v npm &> /dev/null; then
echo -e "${RED}错误npm环境未安装${NC}"
exit 1
fi
echo -e "${GREEN}npm版本: $(npm -v)${NC}"
}
# 安装依赖
install_dependencies() {
echo -e "${BLUE}正在安装依赖...${NC}"
cd "$APP_DIR"
npm install
if [ $? -ne 0 ]; then
echo -e "${RED}依赖安装失败!${NC}"
exit 1
fi
echo -e "${GREEN}依赖安装完成!${NC}"
}
# 启动服务
start_service() {
echo -e "${BLUE}正在启动结伴客后端服务...${NC}"
cd "$APP_DIR"
# 设置环境变量
export NODE_ENV=$NODE_ENV
export PORT=$PORT
export DB_HOST=$DB_HOST
export DB_PORT=$DB_PORT
export DB_USER=$DB_USER
export DB_PASSWORD=$DB_PASSWORD
export DB_NAME=$DB_NAME
export DATABASE_URL=$DATABASE_URL
export USE_REDIS=$USE_REDIS
export USE_RABBITMQ=$USE_RABBITMQ
export ENABLE_SWAGGER=$ENABLE_SWAGGER
# 打印启动信息
echo -e "${BLUE}启动配置:${NC}"
echo -e "${BLUE} NODE_ENV: $NODE_ENV${NC}"
echo -e "${BLUE} PORT: $PORT${NC}"
echo -e "${BLUE} DB_HOST: $DB_HOST${NC}"
echo -e "${BLUE} DB_PORT: $DB_PORT${NC}"
echo -e "${BLUE} DB_NAME: $DB_NAME${NC}"
echo -e "${BLUE} USE_REDIS: $USE_REDIS${NC}"
echo -e "${BLUE} USE_RABBITMQ: $USE_RABBITMQ${NC}"
echo -e "${BLUE} ENABLE_SWAGGER: $ENABLE_SWAGGER${NC}"
# 使用node直接启动服务
node src/server.js
if [ $? -ne 0 ]; then
echo -e "${RED}服务启动失败!${NC}"
exit 1
fi
}
# 显示帮助信息
show_help() {
echo ""
echo "结伴客后端服务简化启动脚本"
echo ""
echo "用法: $0 [命令] [环境]"
echo ""
echo "命令选项:"
echo " start - 启动服务(默认)"
echo " install - 仅安装依赖"
echo " help - 显示此帮助信息"
echo ""
echo "环境选项:"
echo " development - 开发环境(默认)"
echo " production - 生产环境"
echo " test - 测试环境"
echo ""
}
# 主函数
handle_command() {
# 解析命令和环境参数
COMMAND="start"
if [ $# -ge 1 ]; then
case $1 in
start|install|help) COMMAND=$1 ;;
*) echo -e "${RED}未知命令:$1${NC}"; show_help; exit 1 ;;
esac
fi
if [ $# -ge 2 ]; then
case $2 in
development|production|test) NODE_ENV=$2 ;;
*) echo -e "${RED}未知环境:$2${NC}"; show_help; exit 1 ;;
esac
fi
# 执行相应的命令
case $COMMAND in
start)
check_node
check_npm
start_service
;;
install)
check_node
check_npm
install_dependencies
;;
help)
show_help
;;
esac
}
# 执行主函数
handle_command "$@"

View File

@@ -0,0 +1 @@
start-server.sh

View File

@@ -1 +1 @@
start_server.sh
start-server.sh