92 lines
2.1 KiB
Bash
Executable File
92 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# mulTmux Deployment Script for AI Server
|
|
# This script sets up mulTmux on your existing droplet
|
|
|
|
set -e
|
|
|
|
echo "🚀 mulTmux Deployment Script"
|
|
echo "============================"
|
|
echo ""
|
|
|
|
# Check if tmux is installed
|
|
if ! command -v tmux &> /dev/null; then
|
|
echo "📦 Installing tmux..."
|
|
sudo apt-get update
|
|
sudo apt-get install -y tmux
|
|
else
|
|
echo "✅ tmux is already installed"
|
|
fi
|
|
|
|
# Check if Node.js is installed
|
|
if ! command -v node &> /dev/null; then
|
|
echo "📦 Installing Node.js..."
|
|
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
|
|
sudo apt-get install -y nodejs
|
|
else
|
|
echo "✅ Node.js is already installed ($(node --version))"
|
|
fi
|
|
|
|
# Check if npm is installed
|
|
if ! command -v npm &> /dev/null; then
|
|
echo "❌ npm is not installed. Please install npm first."
|
|
exit 1
|
|
else
|
|
echo "✅ npm is already installed ($(npm --version))"
|
|
fi
|
|
|
|
# Build the server
|
|
echo ""
|
|
echo "🔨 Building mulTmux..."
|
|
cd "$(dirname "$0")/.."
|
|
npm install
|
|
npm run build
|
|
|
|
echo ""
|
|
echo "📝 Setting up PM2 for process management..."
|
|
if ! command -v pm2 &> /dev/null; then
|
|
sudo npm install -g pm2
|
|
fi
|
|
|
|
# Create PM2 ecosystem file
|
|
cat > ecosystem.config.js << EOF
|
|
module.exports = {
|
|
apps: [{
|
|
name: 'multmux-server',
|
|
script: './packages/server/dist/index.js',
|
|
instances: 1,
|
|
autorestart: true,
|
|
watch: false,
|
|
max_memory_restart: '500M',
|
|
env: {
|
|
NODE_ENV: 'production',
|
|
PORT: 3000,
|
|
WS_PORT: 3001
|
|
}
|
|
}]
|
|
};
|
|
EOF
|
|
|
|
echo ""
|
|
echo "🚀 Starting mulTmux server with PM2..."
|
|
pm2 start ecosystem.config.js
|
|
pm2 save
|
|
pm2 startup | tail -n 1 | bash || true
|
|
|
|
echo ""
|
|
echo "✅ mulTmux deployed successfully!"
|
|
echo ""
|
|
echo "Server is running on:"
|
|
echo " HTTP API: http://localhost:3000"
|
|
echo " WebSocket: ws://localhost:3001"
|
|
echo ""
|
|
echo "Useful PM2 commands:"
|
|
echo " pm2 status - Check server status"
|
|
echo " pm2 logs multmux-server - View logs"
|
|
echo " pm2 restart multmux-server - Restart server"
|
|
echo " pm2 stop multmux-server - Stop server"
|
|
echo ""
|
|
echo "To install the CLI globally:"
|
|
echo " cd packages/cli && npm link"
|
|
echo ""
|