79 lines
2.0 KiB
Bash
Executable File
79 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# SolarBank Deployment to Server Script
|
|
# Run this on your LOCAL machine to deploy to the server
|
|
|
|
SERVER_IP="172.105.69.178"
|
|
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!" |