92 lines
2.9 KiB
Bash
92 lines
2.9 KiB
Bash
|
#!/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 <<EOF > $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
|