From 4f021673003daf9a0b13dcf0b6ba2a11615fd281 Mon Sep 17 00:00:00 2001 From: sina <92541374+sinnayuh@users.noreply.github.com> Date: Fri, 23 Aug 2024 07:43:50 +0100 Subject: [PATCH] Update install.sh & README.md (#37) * Update install.sh Add support for more Linux distros as opposed to only being Debian. Now supports: Debian/Ubuntu, Fedora, CentOS & Arch Linux. * Update README.md * Update install.sh Added a repository update before installing on all platforms, added output for what the script is doing i.e installing docker, compose, git etc --- README.md | 52 +++++++++++++++++++++++++----- install.sh | 93 ++++++++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 128 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index fe5c8ed..42e0ce5 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,16 @@ # wand -Wand makes it easy to configure dash, houdini and a media server. +Wand makes it easy to configure dash, houdini and a media server utilizing docker & docker-compose. -## Install script +> [!NOTE] +> This can also be ran on Windows using WSL. + +## Installation script **Step 1** run the script ```bash bash <(curl -s https://raw.githubusercontent.com/solero/wand/master/install.sh) ``` -**Step 2** Answer Questions -the questions are: +**Step 2** Answer Questions which are: * Database password (Leave blank for random password) * Hostname (example: `clubpenguin.com`) (Leave empty for localhost) * External IP Address (Leave empty for localhost) @@ -17,23 +19,57 @@ Run this command: ```bash $ cd wand && sudo docker-compose up ``` -## Basic setup +## Manual setup -**Step 1** Install git, docker & docker-compose +> [!IMPORTANT] +> This is not recommended for beginners. If you're not sure what you're doing, use the install script. + +**Step 1** Choose your Linux Distribution + +
+ Debian/Ubuntu ```bash $ sudo apt update -$ sudo apt install docker.io git curl +$ sudo apt install git curl +$ curl -fsSL https://get.docker.com -o get-docker.sh +$ sh get-docker.sh $ sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose $ sudo chmod +x /usr/local/bin/docker-compose ``` +
+ +
+ Fedora/RHEL + +```bash +$ sudo dnf update +$ sudo dnf install git curl +$ curl -fsSL https://get.docker.com -o get-docker.sh +$ sh get-docker.sh +$ sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose +$ sudo chmod +x /usr/local/bin/docker-compose +``` +
+ +
+ Arch based distros + +```bash +$ sudo pacman -Syu +$ sudo pacman -S docker docker-compose git curl +$ systemctl start docker.service +$ systemctl enable docker.service +``` +
+ **Step 2** Clone the repository & submodules ```bash $ git clone --recurse-submodules https://github.com/solero/wand && cd wand ``` -**Step 3** Edit the config file +**Step 3** Edit the config file (optional, default values are fine for a local setup) ```bash $ nano .env ``` diff --git a/install.sh b/install.sh index 39fa16c..328ffd9 100644 --- a/install.sh +++ b/install.sh @@ -1,5 +1,20 @@ #!/bin/bash clear + +print_banner() { + echo ' + __ __ _ _ _____ + \ \ / /\ | \ | | __ \ + \ \ /\ / / \ | \| | | | | + \ \/ \/ / /\ \ | . ` | | | | + \ /\ / ____ \| |\ | |__| | + \/ \/_/ \_\_| \_|_____/ + + Wand Installation Script + ' +} +print_banner + echo "Please answer these questions to set up the game:" echo "Enter password for the database (leave empty for a random password):" dbpass="" @@ -36,20 +51,80 @@ fi read -p "Do you want to run the game when the installation ends? (y/N): " run_game +install_docker_official() { + echo "Installing Docker..." + curl -fsSL https://get.docker.com -o get-docker.sh + sudo sh get-docker.sh + sudo systemctl start docker + sudo systemctl enable docker +} + if [[ $(uname) == "Linux" ]]; then - echo "Setting up the environment." - sudo apt update - sudo apt install docker.io git curl -y - sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose - sudo chmod +x /usr/local/bin/docker-compose -elif [[$(uname) == "Darwin" ]]; then - echo "Installing homebrew" - sudo curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh + echo "Setting up the environment for Linux." + + # Detect the package manager + if command -v apt &> /dev/null || command -v dnf &> /dev/null || command -v yum &> /dev/null; then + if command -v apt &> /dev/null; then + PKG_MANAGER="apt" + INSTALL_CMD="sudo apt" + elif command -v dnf &> /dev/null; then + PKG_MANAGER="dnf" + INSTALL_CMD="sudo dnf" + elif command -v yum &> /dev/null; then + PKG_MANAGER="yum" + INSTALL_CMD="sudo yum" + fi + + echo "Detected package manager: $PKG_MANAGER" + + # Update the system + echo "Updating system repositories..." + $INSTALL_CMD update + + # Install git and curl + echo "Installing Curl and Git..." + $INSTALL_CMD install -y git curl + + # Install Docker using the official script supports Debian, Ubuntu, and CentOS + install_docker_official + + # Installer for Arch because they do it a little differently over there + elif command -v pacman &> /dev/null; then + PKG_MANAGER="pacman" + INSTALL_CMD="sudo pacman -S --noconfirm" + + echo "Detected package manager: $PKG_MANAGER" + + # Update the system + echo "Updating system repositories..." + sudo pacman -Syu --noconfirm + + # Install Docker, git, and curl + echo "Installing Curl and Git, Docker and Docker Compose..." + $INSTALL_CMD docker docker-compose git curl + sudo systemctl start docker + sudo systemctl enable docker + else + echo "This operating system isn't supported yet. Feel free to join the Discord and ask questions." + exit 1 + fi + + # Install Docker Compose for non-Arch systems + if [[ $PKG_MANAGER != "pacman" ]]; then + echo "Installing Docker Compose..." + sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose + sudo chmod +x /usr/local/bin/docker-compose + fi + +elif [[ $(uname) == "Darwin" ]]; then + echo "Installing Homebrew..." + /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" + echo "Installing Docker, git, and Docker Compose..." brew install docker brew install git brew install docker-compose@2.20.3 else - echo "This operating system isn't supported yet. feel free to join the discord and ask questions." + echo "This operating system isn't supported yet. Feel free to join the Discord and ask questions." exit 1 fi