#!/bin/bash # Ubuntu Server Setup Script for Infoscreen Development set -e echo "🚀 Setting up Ubuntu Server for Infoscreen Development..." # Update system sudo apt update && sudo apt upgrade -y # Install essential tools sudo apt install -y git curl wget vim nano htop # Install Docker (official installation method) echo "📦 Installing Docker..." # Remove old Docker packages sudo apt remove -y docker docker-engine docker.io containerd runc 2>/dev/null || true # Install Docker dependencies sudo apt install -y ca-certificates curl gnupg lsb-release # Add Docker GPG key sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg # Add Docker repository echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # Install Docker sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # Start and enable Docker sudo systemctl enable docker sudo systemctl start docker # Add user to docker group sudo usermod -aG docker $USER # Install Node.js (for dashboard development) echo "📦 Installing Node.js..." curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - sudo apt install -y nodejs # Verify installations echo "✅ Verifying installations..." echo "Docker version: $(docker --version)" echo "Docker Compose version: $(docker compose version)" echo "Node.js version: $(node --version)" echo "npm version: $(npm --version)" echo "" echo "🎉 Server setup complete!" echo "⚠️ Please log out and log back in for Docker group changes to take effect." echo "💡 You can now clone your repository and start development."