#!/bin/bash # Script to install Docker and set up EmulatorJS # Works on Debian/Ubuntu, Fedora, and CentOS/RHEL # Function to install Docker install_docker() { echo "Installing Docker..." if command -v apt &> /dev/null; then # Debian/Ubuntu sudo apt update sudo apt install -y curl apt-transport-https ca-certificates software-properties-common sudo apt update sudo apt install -y docker docker-compose sudo usermod -aG docker $USER elif command -v dnf &> /dev/null; then # Fedora sudo dnf install -y dnf-plugins-core sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo sudo dnf install -y docker-ce docker-ce-cli containerd.io sudo systemctl start docker docker-compose sudo systemctl enable docker docker-compose sudo usermod -aG docker $USER elif command -v yum &> /dev/null; then # CentOS/RHEL sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install -y docker-ce docker-ce-cli containerd.io sudo systemctl start docker docker-compose sudo systemctl enable docker docker-compose sudo usermod -aG docker $USER else echo "Unsupported distribution. Exiting." exit 1 fi echo "Docker installed successfully." } # Function to create directories for EmulatorJS create_directories() { echo "Creating directories for EmulatorJS..." mkdir -p $HOME/emulatorjs/config mkdir -p $HOME/emulatorjs/data echo "Directories created at $HOME/emulatorjs/config and $HOME/emulatorjs/data." } # Function to deploy EmulatorJS using Docker Compose deploy_emulatorjs() { echo "Deploying EmulatorJS..." cat < $HOME/emulatorjs/docker-compose.yml services: emulatorjs: image: lscr.io/linuxserver/emulatorjs:latest container_name: emulatorjs environment: - PUID=1000 - PGID=1000 - TZ=Etc/UTC volumes: - $HOME/emulatorjs/config:/config - $HOME/emulatorjs/data:/data ports: - 3000:3000 - 80:80 - 4001:4001 restart: unless-stopped EOF cd $HOME/emulatorjs docker-compose up -d echo "EmulatorJS deployed successfully!" echo "Access it at http://localhost:3000" } # Main script if ! command -v docker &> /dev/null; then install_docker echo "Please log out and log back in to apply Docker group changes." echo "Then re-run this script to continue." exit 0 fi if ! command -v docker-compose &> /dev/null; then echo "Installing Docker Compose..." sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose echo "Docker Compose installed successfully." fi create_directories deploy_emulatorjs