ai-chatbot/setup-server.sh
Your Name 53ddb7e585
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
Initial commit - clean repository
2025-12-17 20:15:18 +08:00

83 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
# 服务器初始化脚本
# 在服务器上运行此脚本来设置环境
set -e
echo "开始设置服务器环境..."
# 更新系统
echo "更新系统..."
apt update && apt upgrade -y
# 安装基础工具
echo "安装基础工具..."
apt install -y curl wget git build-essential
# 安装 Node.js (使用 nvm)
echo "安装 Node.js..."
if [ ! -d "$HOME/.nvm" ]; then
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
fi
source ~/.bashrc
nvm install 20
nvm use 20
nvm alias default 20
# 安装 pnpm
echo "安装 pnpm..."
npm install -g pnpm
# 安装 PM2
echo "安装 PM2..."
npm install -g pm2
# 安装 PostgreSQL
echo "安装 PostgreSQL..."
if ! command -v psql &> /dev/null; then
apt install -y postgresql postgresql-contrib
systemctl start postgresql
systemctl enable postgresql
fi
# 安装 Nginx
echo "安装 Nginx..."
if ! command -v nginx &> /dev/null; then
apt install -y nginx
systemctl start nginx
systemctl enable nginx
fi
# 创建项目目录
echo "创建项目目录..."
mkdir -p /var/www/ai-chatbot
chown -R $USER:$USER /var/www/ai-chatbot
# 创建日志目录
mkdir -p /var/log/pm2
chown -R $USER:$USER /var/log/pm2
# 创建备份目录
mkdir -p /root/backups/ai-chatbot
# 设置防火墙
echo "配置防火墙..."
ufw --force enable
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 5204/tcp
echo "服务器环境设置完成!"
echo ""
echo "下一步:"
echo "1. 配置 PostgreSQL 数据库"
echo "2. 上传项目代码到 /var/www/ai-chatbot"
echo "3. 配置环境变量 (.env.local)"
echo "4. 运行 pnpm install && pnpm db:migrate && pnpm build"
echo "5. 使用 PM2 启动应用"