#!/bin/bash # SolarBank Deployment to Server Script # Run this on your LOCAL machine to deploy to the server SERVER_IP="172.104.237.108" SERVER_USER="root" SERVER_PASSWORD="6eqWiHHX4bNTPg" echo "🚀 Deploying SolarBank IoT Dashboard to server..." # Create deployment package excluding unnecessary files echo "📦 Creating deployment package..." tar --exclude='./frontend/node_modules' \ --exclude='./.git' \ --exclude='./backend/__pycache__' \ --exclude='./logs' \ --exclude='./backups' \ --exclude='*.pyc' \ --exclude='*.log' \ -czf solarbank-deploy.tar.gz . echo "📤 Uploading files to server..." scp solarbank-deploy.tar.gz root@$SERVER_IP:/tmp/ echo "🔧 Connecting to server and setting up..." ssh root@$SERVER_IP << 'EOF' # Update system apt update && apt upgrade -y # Install Docker and Docker Compose curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh rm get-docker.sh # Install Docker Compose curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose # Install other required packages apt install -y git curl wget htop ufw fail2ban # Configure firewall ufw --force reset ufw default deny incoming ufw default allow outgoing ufw allow ssh ufw allow 80/tcp ufw allow 443/tcp ufw --force enable # Create application directory mkdir -p /opt/solarbank cd /opt/solarbank # Extract application files tar -xzf /tmp/solarbank-deploy.tar.gz rm /tmp/solarbank-deploy.tar.gz # Make scripts executable chmod +x scripts/*.sh echo "✅ Server setup completed!" echo "📋 Next steps:" echo "1. Configure your domain and environment variables" echo "2. Run the deployment script" EOF echo "🎉 Upload completed! Now connect to your server to finish setup:" echo "ssh root@$SERVER_IP" echo "cd /opt/solarbank" echo "cp environment.prod.example .env.prod" echo "nano .env.prod # Edit with your values" echo "./scripts/deploy.sh" # Clean up local files rm solarbank-deploy.tar.gz echo "✅ Deployment script completed!"