Files
R00TS/deploy.sh

88 lines
2.6 KiB
Bash
Executable File

#!/bin/bash
# R00TS Autonomous Deployment Script
# This script automates the deployment of the R00TS application
echo "========================================"
echo "R00TS Autonomous Deployment"
echo "========================================"
# Check if MongoDB is installed
if ! command -v mongod &> /dev/null; then
echo "MongoDB is not installed. Installing MongoDB..."
# Detect OS and install MongoDB accordingly
if [[ "$(uname)" == "Darwin" ]]; then
# macOS
if command -v brew &> /dev/null; then
brew tap mongodb/brew
brew install mongodb-community
brew services start mongodb-community
else
echo "Homebrew is required to install MongoDB on macOS."
echo "Please install Homebrew first: https://brew.sh/"
exit 1
fi
elif [[ "$(uname)" == "Linux" ]]; then
# Linux (Ubuntu/Debian assumed)
sudo apt-get update
sudo apt-get install -y mongodb
sudo systemctl start mongodb
else
echo "Unsupported operating system. Please install MongoDB manually."
echo "Visit: https://www.mongodb.com/docs/manual/installation/"
exit 1
fi
echo "MongoDB installed successfully!"
fi
# Navigate to the project directory
cd "$(dirname "$0")"
# Install PM2 globally if not installed
if ! command -v pm2 &> /dev/null; then
echo "Installing PM2 process manager..."
npm install -g pm2
fi
# Navigate to server directory and install dependencies
echo "Setting up server..."
cd server
# Install server dependencies
npm install
# Check if .env file exists, create if not
if [ ! -f ".env" ]; then
echo "Creating .env file..."
cp .env.example .env
echo "Please update the .env file with your MongoDB connection string if needed."
fi
# Start the server with PM2
echo "Starting R00TS server with PM2..."
npm run prod
# Setup PM2 to start on system boot
pm2 startup
echo "Run the above command if you want PM2 to start on system boot"
# Setup PM2 to save current process list
pm2 save
# Display status
echo "\nR00TS server is now running!"
echo "========================================"
echo "Server Status:"
pm2 status r00ts-server
echo "========================================"
echo "Health Check:"
curl -s http://localhost:5000/api/health | json_pp || echo "Health check endpoint not accessible"
echo "\n========================================"
echo "To view server logs: npm run logs"
echo "To restart server: npm run restart"
echo "To stop server: npm run stop"
echo "\nOpen index.html in your browser to use the application"
echo "========================================"