Initial commit
This commit is contained in:
Executable
+118
@@ -0,0 +1,118 @@
|
||||
#!/bin/bash
|
||||
# 新服务器初始化脚本 - 152.136.182.184 (stock.allbyai.cn)
|
||||
# 在服务器上执行此脚本完成环境配置
|
||||
|
||||
set -e
|
||||
|
||||
echo "=========================================="
|
||||
echo "股票投资分析系统 - 服务器初始化"
|
||||
echo "服务器: 152.136.182.184"
|
||||
echo "域名: stock.allbyai.cn"
|
||||
echo "=========================================="
|
||||
|
||||
# 更新系统
|
||||
echo "[1/8] 更新系统包..."
|
||||
apt-get update && apt-get upgrade -y
|
||||
|
||||
# 安装依赖
|
||||
echo "[2/8] 安装系统依赖..."
|
||||
apt-get install -y python3 python3-pip python3-venv nginx postgresql postgresql-contrib
|
||||
|
||||
# 配置PostgreSQL
|
||||
echo "[3/8] 配置PostgreSQL..."
|
||||
sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'stock_password_2025';" || true
|
||||
sudo -u postgres createdb stock_app || echo "数据库已存在"
|
||||
|
||||
# 创建应用目录
|
||||
echo "[4/8] 创建应用目录..."
|
||||
mkdir -p /opt/stock-app
|
||||
chown -R root:root /opt/stock-app
|
||||
|
||||
# 创建Python虚拟环境
|
||||
echo "[5/8] 创建Python虚拟环境..."
|
||||
cd /opt/stock-app
|
||||
python3 -m venv venv
|
||||
source venv/bin/activate
|
||||
pip install --upgrade pip
|
||||
|
||||
# 安装Python依赖
|
||||
echo "[6/8] 安装Python依赖..."
|
||||
if [ -f requirements.txt ]; then
|
||||
pip install -r requirements.txt
|
||||
else
|
||||
pip install flask flask-cors akshare pandas numpy schedule psycopg2-binary
|
||||
fi
|
||||
|
||||
# 初始化数据库
|
||||
echo "[7/8] 初始化数据库..."
|
||||
if [ -f init_db.sql ]; then
|
||||
sudo -u postgres psql -d stock_app -f init_db.sql || true
|
||||
fi
|
||||
if [ -f init_sim_trade.sql ]; then
|
||||
sudo -u postgres psql -d stock_app -f init_sim_trade.sql || true
|
||||
fi
|
||||
if [ -f init_smart_trade.sql ]; then
|
||||
sudo -u postgres psql -d stock_app -f init_smart_trade.sql || true
|
||||
fi
|
||||
if [ -f init_stock_data_db.sql ]; then
|
||||
sudo -u postgres psql -d stock_app -f init_stock_data_db.sql || true
|
||||
fi
|
||||
|
||||
# 配置systemd服务
|
||||
echo "[8/8] 配置systemd服务..."
|
||||
cat > /etc/systemd/system/stock-app.service << 'EOF'
|
||||
[Unit]
|
||||
Description=Stock Investment Analysis Web Application
|
||||
After=network.target postgresql.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=root
|
||||
WorkingDirectory=/opt/stock-app
|
||||
Environment="DB_HOST=localhost"
|
||||
Environment="DB_PORT=5432"
|
||||
Environment="DB_NAME=stock_app"
|
||||
Environment="DB_USER=postgres"
|
||||
Environment="DB_PASSWORD=stock_password_2025"
|
||||
ExecStart=/opt/stock-app/venv/bin/python app.py
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
cat > /etc/systemd/system/stock-data-service.service << 'EOF'
|
||||
[Unit]
|
||||
Description=Stock Data Collection Service
|
||||
After=network.target postgresql.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=root
|
||||
WorkingDirectory=/opt/stock-app
|
||||
Environment="DB_HOST=localhost"
|
||||
Environment="DB_PORT=5432"
|
||||
Environment="DB_NAME=stock_app"
|
||||
Environment="DB_USER=postgres"
|
||||
Environment="DB_PASSWORD=stock_password_2025"
|
||||
ExecStart=/opt/stock-app/venv/bin/python stock_data_service.py daemon
|
||||
Restart=always
|
||||
RestartSec=30
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
systemctl daemon-reload
|
||||
systemctl enable stock-app
|
||||
systemctl enable stock-data-service
|
||||
|
||||
echo "=========================================="
|
||||
echo "初始化完成!"
|
||||
echo ""
|
||||
echo "后续步骤:"
|
||||
echo "1. 从本地同步代码到服务器"
|
||||
echo "2. 配置Nginx反向代理"
|
||||
echo "3. 启动服务"
|
||||
echo "=========================================="
|
||||
Reference in New Issue
Block a user