#!/usr/bin/env bash clear ## FEDORA BASEOS FILES osrel="/usr/bin/zypper" ###################### ## COLORS # Reset Color_Off='\033[0m' # Text Reset # Regular Colors Black='\033[0;30m' # Black Red='\033[0;31m' # Red Green='\033[0;32m' # Green Yellow='\033[0;33m' # Yellow Blue='\033[0;34m' # Blue Purple='\033[0;35m' # Purple Cyan='\033[0;36m' # Cyan White='\033[0;37m' # White # Bold BBlack='\033[1;30m' # Black BRed='\033[1;31m' # Red BGreen='\033[1;32m' # Green BYellow='\033[1;33m' # Yellow BBlue='\033[1;34m' # Blue BPurple='\033[1;35m' # Purple BCyan='\033[1;36m' # Cyan BWhite='\033[1;37m' # White # Underline UBlack='\033[4;30m' # Black URed='\033[4;31m' # Red UGreen='\033[4;32m' # Green UYellow='\033[4;33m' # Yellow UBlue='\033[4;34m' # Blue UPurple='\033[4;35m' # Purple UCyan='\033[4;36m' # Cyan UWhite='\033[4;37m' # White # Background On_Black='\033[40m' # Black On_Red='\033[41m' # Red On_Green='\033[42m' # Green On_Yellow='\033[43m' # Yellow On_Blue='\033[44m' # Blue On_Purple='\033[45m' # Purple On_Cyan='\033[46m' # Cyan On_White='\033[47m' # White # High Intensity IBlack='\033[0;90m' # Black IRed='\033[0;91m' # Red IGreen='\033[0;92m' # Green IYellow='\033[0;93m' # Yellow IBlue='\033[0;94m' # Blue IPurple='\033[0;95m' # Purple ICyan='\033[0;96m' # Cyan IWhite='\033[0;97m' # White # Bold High Intensity BIBlack='\033[1;90m' # Black BIRed='\033[1;91m' # Red BIGreen='\033[1;92m' # Green BIYellow='\033[1;93m' # Yellow BIBlue='\033[1;94m' # Blue BIPurple='\033[1;95m' # Purple BICyan='\033[1;96m' # Cyan BIWhite='\033[1;97m' # White # High Intensity backgrounds On_IBlack='\033[0;100m' # Black On_IRed='\033[0;101m' # Red On_IGreen='\033[0;102m' # Green On_IYellow='\033[0;103m' # Yellow On_IBlue='\033[0;104m' # Blue On_IPurple='\033[0;105m' # Purple On_ICyan='\033[0;106m' # Cyan On_IWhite='\033[0;107m' # White ###################### ## HEADER echo -e "${On_Green}==================================================================== ==== Tyleo Next Generation Script - Fedora Interactive Deployer ==== ====================================================================${Color_Off}" ## HOST DETAILS # SHOW echo -e "${On_Green}= Host Informations${Color_Off}" echo -e " Hostname : ${BGreen}$HOSTNAME${Color_Off}" echo -e " Primary IP : ${BGreen}$(hostname -I | cut -d' ' -f1)$Color_Off" echo -e " Time : ${BGreen}$(date)${Color_Off}" echo -e " User : ${BGreen}$(whoami)${Color_Off}" echo -e " UID/GID : ${BGreen}$UID${Color_Off}" echo -e " HomeDir : ${BGreen}$HOME${Color_Off}" echo -e " Language : ${BGreen}$LANG${Color_Off}" echo -e "${On_Green}= ${Color_Off}" ###################### ## BASE (UI) prefix="Run |>" errors="Error |>" succes="Success |>" compat="Compat |>" askfor="Question |>" ###################### if [[ -f "$osrel" ]]; then echo -e "${BCyan}$compat${Color_Off} OpenSUSE or Zypper Based OS was detected." echo -e "${BYellow}$prefix${Color_Off} Continue Execution." else echo -e "${BCyan}$compat${Color_Off} Another OS is active on this machine. Incompatibility identified." echo -e "${BYellow}$prefix${Color_Off} Exiting." exit fi ## RANDOM PIN pincode=$(shuf -i 1000-9999 -n 1) ####################### ## CONFIRMATION echo -n -e "${BBlue}$askfor${Color_Off} Type this code to execute ($pincode) : " read -r pinentered if [[ "$pinentered" -ne "$pincode" ]] then echo -e "${BRed}$errors Pincode $pinentered received, there is an error here. Good Bye.${Color_Off}" echo -e "${BRed}$errors Exiting...${Color_Off}" exit fi echo -e "${BGreen}$succes Pincode $pinentered received, Accepted.${Color_Off}" ####################### sleep 2 clear echo -e "${On_Blue}== Interactive Deployment Started - OpenSUSE Edition - Welcome $(whoami) ==${Color_Off}" ## Updating System echo -e "${BYellow}$prefix${Color_Off} ZyPP:Updating Packages..." echo -e "$BPurple" zypper up -y --refresh echo -e "$Color_Off" echo -e "$Color_Off" ## Specific Fixes zypper rm -y xscreensaver ## Firewall Control clear echo -e "${On_Blue}== FirewallD Control ==${Color_Off}" accept="Y" if [[ $accept = Y ]] || [[ $accept = y ]] ; then systemctl stop firewalld systemctl disable firewalld echo -e "${BYellow}$prefix${Color_Off} FirewallD is now stopped and disabled." sleep 3 else echo -e "${BYellow}$prefix${Color_Off} FirewallD was ${BRed}not${Color_Off} disabled." sleep 3 fi accept="n" ## BASIC PACKAGES BY TYLEO (With auto mode) clear echo -e "${On_Blue}== Basic Package by Tyleo Dv. Delaware - Installation Processing ==${Color_Off}" accept="Y" if [[ $accept = Y ]] || [[ $accept = y ]] ; then echo -e "${On_Blue}== htop btop duf fish zsh git nano glances terminator ncdu ==${Color_Off}" echo -e "${BYellow}$prefix${Color_Off} Installing Base Packages (recommended by Tyleo)..." echo -e "${BYellow}$prefix${Color_Off} ZyPP:Installing Packages..." echo -e "$BPurple" zypper in -y htop btop duf fish zsh git nano glances terminator ncdu icewm-themes echo -e "$Color_Off" echo -e "${BYellow}$prefix${Color_Off} SYS:Enabling Glances..." systemctl enable glances systemctl start glances clear echo -e "${On_Blue}== YaST Everything ==${Color_Off}" sudo zypper in -y yast2-adcommon-python yast2-add-on yast2-adsi yast2-aduc yast2-alternatives yast2-apparmor yast2-audit-laf yast2-auth-client yast2-auth-server yast2-boot-server yast2-bootloader yast2-buildtools yast2-caasp yast2-cluster yast2-configuration-management yast2-control-center yast2-control-center-qt yast2-core yast2-core-devel yast2-country yast2-country-data yast2-devtools yast2-dns-manager yast2-drbd yast2-fcoe-client yast2-firewall yast2-firstboot yast2-firstboot-wsl yast2-ftp-server yast2-geo-cluster yast2-gpmc yast2-hardware-detection yast2-installation yast2-installation-control yast2-instserver yast2-iplb yast2-iscsi-client yast2-iscsi-lio-server yast2-isns yast2-journal yast2-kdump yast2-ldap yast2-logs yast2-mail yast2-metapackage-handler yast2-multipath yast2-network yast2-nfs-client yast2-nfs-common yast2-nfs-server yast2-ntp-client yast2-online-update yast2-online-update-configuration yast2-online-update-frontend yast2-packager yast2-pam yast2-perl-bindings yast2-pkg-bindings yast2-printer yast2-proxy yast2-python3-bindings yast2-qt-branding-openSUSE yast2-rdp yast2-rear yast2-rmt yast2-ruby-bindings yast2-samba-client yast2-samba-provision yast2-samba-server yast2-scanner yast2-schema-collection yast2-schema-default yast2-security yast2-services-manager yast2-slp yast2-slp-server yast2-snapper yast2-squid yast2-storage-ng yast2-sudo yast2-support yast2-sysconfig yast2-testsuite yast2-tftp-server yast2-theme yast2-theme-breeze yast2-theme-oxygen yast2-trans yast2-trans-af yast2-trans-allpacks yast2-trans-ar yast2-trans-ast yast2-trans-bg yast2-trans-bn yast2-trans-bs yast2-trans-ca yast2-trans-cs yast2-trans-cy yast2-trans-da yast2-trans-de yast2-trans-el yast2-trans-en_GB yast2-trans-eo yast2-trans-es yast2-trans-es_AR yast2-trans-et yast2-trans-eu yast2-trans-fa yast2-trans-fi yast2-trans-fr yast2-trans-gl yast2-trans-gu yast2-trans-he yast2-trans-hi yast2-trans-hr yast2-trans-hu yast2-trans-id yast2-trans-it yast2-trans-ja yast2-trans-jv yast2-trans-ka yast2-trans-kab yast2-trans-km yast2-trans-kn yast2-trans-ko yast2-trans-ku yast2-trans-lo yast2-trans-lt yast2-trans-lv yast2-trans-mk yast2-trans-mr yast2-trans-nb yast2-trans-nds yast2-trans-ne yast2-trans-nl yast2-trans-nn yast2-trans-pa yast2-trans-pl yast2-trans-ps yast2-trans-pt yast2-trans-pt_BR yast2-trans-ro yast2-trans-ru yast2-trans-si yast2-trans-sk yast2-trans-sl yast2-trans-sq yast2-trans-sr yast2-trans-sr-latin yast2-trans-stats yast2-trans-sv yast2-trans-sw yast2-trans-ta yast2-trans-tg yast2-trans-th yast2-trans-tr yast2-trans-uk yast2-trans-vi yast2-trans-wa yast2-trans-xh yast2-trans-zh_CN yast2-trans-zh_TW yast2-trans-zu yast2-transfer yast2-tune yast2-update yast2-usbauth yast2-users yast2-vm yast2-vpn yast2-widget-demo yast2-x11 yast2-xml yast2-ycp-ui-bindings yast2-ycp-ui-bindings-devel fi accept="n" ## BASIC PACKAGES BY TYLEO (With auto mode) clear echo -e "${On_Blue}== Cockpit Admin Panel - Installation Processing ==${Color_Off}" accept="Y" if [[ $accept = Y ]] || [[ $accept = y ]] ; then echo -e "$BPurple" zypper ref zypper up zypper in -y cockpit zypper in -y https://github.com/45Drives/cockpit-navigator/releases/download/v0.5.8/cockpit-navigator-0.5.8-1.el8.noarch.rpm echo -e "$Color_Off" echo -e "${Purple} [9090/https] Enabling Now Cockpit Services..." systemctl enable --now cockpit.socket cockpit accept="n" fi clear echo -e "${On_Blue}== Basic System Configuration ==${Color_Off}" accept="Y" if [[ $accept = Y ]] || [[ $accept = y ]] ; then echo -n -e "${BBlue}$askfor${Color_Off} New Pretty Hostname (spaces,maj) : " read -r pHost echo -n -e "${BBlue}$askfor${Color_Off} New Static Hostname (no-space,no-maj) : " read -r sHost echo -e "${Purple} Setting Hostname (Pretty)${BGreen} [OK]${Color_Off}" hostnamectl set-hostname "$pHost" --pretty echo -e "${Purple} Setting Hostname (Static)${BGreen} [OK]${Color_Off}" hostnamectl set-hostname "$sHost" --static sleep 3 fi accept="n" ## DOCKER clear echo -e "${On_Blue}== Docker - Installation Processing ==${Color_Off}" accept="Y" if [[ $accept = Y ]] || [[ $accept = y ]] ; then echo -e "${BYellow}$prefix${Color_Off} ZyPP:Updating Index..." echo -e "$BPurple" zypper ref zypper up -y echo -e "$Color_Off" echo -e "$Color_Off" echo -e "${BYellow}$prefix${Color_Off} ZyPP:Installing docker-ce with YaST Module..." echo -e "$BPurple" zypper in -y docker docker-compose ctop yast2-docker echo -e "$Color_Off" wget http://s.tyleodev.fr/host-binary/lazydocker -O /usr/local/bin/lzd chmod +x /usr/local/bin/lzd echo -e "${BYellow}$prefix${Color_Off} SYS:Enabling Docker and Docker Socket..." systemctl enable docker.socket --now sleep 3 fi accept="n" ## XRDP (RDS Mode, not recommended for Docker enabled host) clear echo -e "${On_Blue}== X-Server Remote Desktop Services - Installation Processing ==${Color_Off}" accept="Y" if [[ $accept = Y ]] || [[ $accept = y ]] ; then zypper up -y echo -e "$Color_Off" echo -e "$BPurple" zypper in -y xrdp echo -e "$Color_Off" firewall-cmd --permanent --add-port=3389/tcp firewall-cmd --reload systemctl enable xrdp xrdp-sesman --now sleep 3 fi accept="n" # TERMINATED clear echo -e "${On_Green}== Script Finished - Reboot is Recommended ==${Color_Off}" accept="Y" if [[ $accept = Y ]] || [[ $accept = y ]] ; then echo -e "${BPurple}${BYellow}$prefix${Color_Off} Rebooting ...${Color_Off}" sleep 1 sudo reboot fi accept="n"