82 lines
1.9 KiB
Bash
82 lines
1.9 KiB
Bash
#!/bin/bash
|
|
# 缠论分析系统生产环境部署脚本
|
|
|
|
# 显示执行的命令
|
|
set -x
|
|
|
|
# 确保脚本在错误时停止
|
|
set -e
|
|
|
|
# 项目根目录
|
|
PROJECT_DIR=$(pwd)
|
|
echo "项目将部署在: $PROJECT_DIR"
|
|
|
|
# 创建虚拟环境
|
|
echo "创建Python虚拟环境..."
|
|
python3 -m venv venv
|
|
source venv/bin/activate
|
|
|
|
# 安装依赖
|
|
echo "安装依赖包..."
|
|
pip install --upgrade pip
|
|
pip install flask pandas matplotlib ccxt pytz talib-binary gunicorn
|
|
|
|
# 安装任何额外的系统依赖
|
|
# sudo apt-get update
|
|
# sudo apt-get install -y python3-dev
|
|
|
|
# 检查目录结构
|
|
echo "检查目录结构..."
|
|
mkdir -p web/templates
|
|
|
|
# 创建日志目录
|
|
mkdir -p logs
|
|
|
|
# 创建启动脚本
|
|
echo "创建启动脚本..."
|
|
cat > start_service.sh << 'EOF'
|
|
#!/bin/bash
|
|
# 缠论分析系统启动脚本
|
|
|
|
# 项目根目录
|
|
PROJECT_DIR=$(pwd)
|
|
cd $PROJECT_DIR
|
|
|
|
# 激活虚拟环境
|
|
source venv/bin/activate
|
|
|
|
# 启动服务
|
|
cd web
|
|
echo "启动缠论分析系统服务..."
|
|
gunicorn app:app --bind=0.0.0.0:8123 --workers=4 --timeout=120 --log-level=info --log-file=logs/chanlun.log --daemon
|
|
|
|
echo "服务已启动,端口8123"
|
|
echo "日志文件位置: $PROJECT_DIR/web/logs/chanlun.log"
|
|
EOF
|
|
|
|
# 创建停止脚本
|
|
echo "创建停止脚本..."
|
|
cat > stop_service.sh << 'EOF'
|
|
#!/bin/bash
|
|
# 停止缠论分析系统服务
|
|
|
|
echo "停止缠论分析系统服务..."
|
|
pkill -f "gunicorn app:app"
|
|
echo "服务已停止"
|
|
EOF
|
|
|
|
# 添加执行权限
|
|
chmod +x start_service.sh
|
|
chmod +x stop_service.sh
|
|
|
|
# 修改app.py中的调试模式(生产环境应关闭调试模式)
|
|
if [ -f web/app.py ]; then
|
|
echo "配置app.py为生产环境模式..."
|
|
sed -i 's/app.run(debug=True, host='\''0.0.0.0'\'', port=8123)/# 在生产环境中,使用gunicorn启动服务\n# app.run(debug=False, host='\''0.0.0.0'\'', port=8124)/' user_data/Chan/web/app.py
|
|
else
|
|
echo "警告: 未找到app.py文件"
|
|
fi
|
|
|
|
echo "部署完成!"
|
|
echo "使用 ./start_service.sh 启动服务"
|
|
echo "使用 ./stop_service.sh 停止服务" |