docs: 添加云服务器部署指南和自动化脚本
- 新增 CLOUD_DEPLOYMENT.md 详细部署文档 - 新增 deploy-to-cloud.sh 自动化部署脚本 - 包含 SSH 配置、环境要求、部署步骤 - 包含故障排除和监控指南
This commit is contained in:
82
city-manual/scripts/deploy-to-cloud.sh
Executable file
82
city-manual/scripts/deploy-to-cloud.sh
Executable file
@@ -0,0 +1,82 @@
|
||||
#!/bin/bash
|
||||
# 城市手册 - 云服务器部署脚本
|
||||
# 用法:./deploy-to-cloud.sh
|
||||
|
||||
set -e
|
||||
|
||||
# 配置
|
||||
SERVER_HOST="cssc.datalibstar.com"
|
||||
SERVER_USER="mashen"
|
||||
SERVER_PASS="825670@MashenClaw"
|
||||
PROJECT_PATH="/root/.openclaw/workspace/city-manual"
|
||||
|
||||
echo "🚀 开始部署到云服务器..."
|
||||
echo "服务器:$SERVER_USER@$SERVER_HOST"
|
||||
echo ""
|
||||
|
||||
# 检查 sshpass
|
||||
if ! command -v sshpass &> /dev/null; then
|
||||
echo "❌ 错误:sshpass 未安装"
|
||||
echo "请运行:sudo apt install sshpass"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 1. 提交本地更改
|
||||
echo "📝 提交本地更改..."
|
||||
cd $PROJECT_PATH
|
||||
git add -A
|
||||
git commit -m "deploy: 准备部署到云服务器" || echo "无更改需要提交"
|
||||
git push origin master
|
||||
|
||||
# 2. SSH 到服务器并部署
|
||||
echo "🔌 连接到服务器..."
|
||||
sshpass -p "$SERVER_PASS" ssh -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_HOST << 'ENDSSH'
|
||||
echo "📦 拉取最新代码..."
|
||||
cd /root/.openclaw/workspace/city-manual || {
|
||||
echo "❌ 项目目录不存在"
|
||||
exit 1
|
||||
}
|
||||
git pull origin master
|
||||
|
||||
echo "🐍 激活虚拟环境..."
|
||||
source /root/.openclaw/workspace/city-manual/backend/venv/bin/activate || {
|
||||
echo "❌ 虚拟环境不存在,请先手动创建"
|
||||
exit 1
|
||||
}
|
||||
|
||||
echo "📦 安装依赖..."
|
||||
pip install -r requirements.txt -q
|
||||
|
||||
echo "🗄️ 数据库迁移..."
|
||||
cd backend
|
||||
python manage.py migrate --noinput
|
||||
|
||||
echo "📁 收集静态文件..."
|
||||
python manage.py collectstatic --noinput --clear
|
||||
|
||||
echo "⚙️ 重启 Gunicorn..."
|
||||
sudo systemctl restart city-manual || {
|
||||
echo "⚠️ Gunicorn 服务不存在,请手动创建"
|
||||
}
|
||||
|
||||
echo "🌐 检查 Nginx..."
|
||||
sudo nginx -t && sudo systemctl reload nginx || {
|
||||
echo "⚠️ Nginx 配置有问题"
|
||||
}
|
||||
|
||||
echo ""
|
||||
echo "✅ 部署完成!"
|
||||
echo ""
|
||||
echo "📍 访问地址:http://cssc.datalibstar.com"
|
||||
echo "📍 Admin: http://cssc.datalibstar.com/admin"
|
||||
echo "📍 测试账号:demo / demo123"
|
||||
ENDSSH
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo ""
|
||||
echo "🎉 部署成功!"
|
||||
else
|
||||
echo ""
|
||||
echo "❌ 部署失败,请检查服务器日志"
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user