#Terminal filé https://blog.rocketseat.com.br/terminal-com-oh-my-zsh-spaceship-dracula-e-mais/
#Certificado ssl localhost https://medium.com/internshala-tech/adding-self-trusted-ssl-certificate-for-localhost-on-ubuntu-nginx-c66d70b22e4b
| #!/bin/bash | |
| # Function check user root | |
| f_check_root() { | |
| if (($EUID == 0)); then | |
| # If user is root, continue to function f_sub_main | |
| f_sub_main | |
| else | |
| # If user not is root, print message and exit script | |
| echo "Please run this script by user root !" | |
| exit | |
| fi | |
| } | |
| # Function update os | |
| f_update_os() { | |
| echo "Starting update os ..." | |
| echo "" | |
| sleep 1 | |
| apt-get update | |
| apt-get upgrade -y | |
| echo "" | |
| sleep 1 | |
| } | |
| f_install_curl_and_git() { | |
| ########## INSTALL Curl and Git ########## | |
| echo "Start install curl and git" | |
| echo "" | |
| sleep 1 | |
| sudo apt install -y curl git unzip | |
| } | |
| f_install_fira_code() { | |
| ########## INSTALL FIRA CODE ########## | |
| echo "Start install fira code" | |
| echo "" | |
| sleep 1 | |
| sudo add-apt-repository universe | |
| sudo apt install fonts-firacode | |
| } | |
| f_install_oh_my_zsh() { | |
| ########## INSTALL OH-MY-ZSH ########## | |
| echo "Start install oh-my-zsh ..." | |
| echo "" | |
| sleep 1 | |
| sudo apt install zsh | |
| echo "ZSH VERSION: $(zsh --version)" | |
| sleep 1 | |
| sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" | |
| sed -i '1 i\exec zsh' .bashrc | |
| } | |
| f_install_mysql_8_0() { | |
| MYSQL_PASSWORD="123!imparavel#mudar" | |
| MYSQL_PASSWORD_ROOT="123!imparavel#mudar" | |
| MYSQL_USER=admin | |
| ########## INSTALL MYSQL-SERVER ########## | |
| echo "Start install MYSQL-SERVER" | |
| echo "" | |
| sleep 1 | |
| sudo debconf-set-selections <<<"mysql-server mysql-server/root_password password ${MYSQL_PASSWORD_ROOT}" | |
| sudo debconf-set-selections <<<"mysql-server mysql-server/root_password_again password ${MYSQL_PASSWORD_ROOT}" | |
| sudo apt-get -y install mysql-server | |
| echo "" | |
| mysql -u root --password=${MYSQL_PASSWORD_ROOT} <<MYSQL_SCRIPT | |
| CREATE USER ${MYSQL_USER}@localhost IDENTIFIED BY "${MYSQL_PASSWORD}"; | |
| GRANT ALL PRIVILEGES ON *.* TO ${MYSQL_USER}@localhost; | |
| FLUSH PRIVILEGES; | |
| ALTER USER ${MYSQL_USER}@localhost IDENTIFIED WITH mysql_native_password BY "${MYSQL_PASSWORD}"; | |
| MYSQL_SCRIPT | |
| echo "" | |
| echo "MySQL user created." | |
| echo "Username: ${MYSQL_USER}" | |
| echo "Password: ${MYSQL_PASSWORD}" | |
| } | |
| f_install_dbeaver() { | |
| sudo apt -y install openjdk-11-jdk openjdk-11-jre | |
| wget -O - https://dbeaver.io/debs/dbeaver.gpg.key | sudo apt-key add - | |
| echo "deb https://dbeaver.io/debs/dbeaver-ce /" | sudo tee /etc/apt/sources.list.d/dbeaver.list | |
| sudo apt update | |
| sudo apt -y install dbeaver-ce | |
| apt policy dbeaver-ce | |
| } | |
| f_install_node_js() { | |
| echo "Start install NODE JS" | |
| echo "" | |
| sleep 1 | |
| curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - | |
| sudo apt install -y nodejs | |
| echo "NODE VERSION: $(node -v)" | |
| echo "NPM VERSION: $(npm -v)" | |
| } | |
| f_install_nginx() { | |
| sudo apt install -y nginx | |
| sudo ufw enable | |
| sudo ufw allow 'Nginx HTTP' | |
| systemctl status nginx | |
| } | |
| f_install_php() { | |
| echo "Start install PHP 7 ..." | |
| echo "" | |
| sleep 1 | |
| sudo apt install -y php7.4 php-xml php-imagick php7.4-{cli,common,fpm,bcmath,bz2,intl,gd,mbstring,mysql,zip,curl,xdebug} | |
| } | |
| f_install_composer() { | |
| echo "Start install composer" | |
| echo "" | |
| sleep 1 | |
| curl -sS https://getcomposer.org/installer -o composer-setup.php | |
| HASH=$(curl -sS https://composer.github.io/installer.sig) | |
| echo "$HASH" | |
| php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" | |
| sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer | |
| echo "" | |
| sleep 1 | |
| composer global require hirak/prestissimo | |
| } | |
| f_self_trusted_local_host() { | |
| echo "Configure trusted localhost" | |
| echo "" | |
| sleep 1 | |
| FILE="open_ssl.conf" | |
| mkdir local_ssl && cd local_ssl || exit; | |
| touch ${FILE} | |
| echo "" | |
| echo "Working in dir ... $(pwd)" | |
| sleep 1 | |
| echo "" | |
| cat > "${FILE}" <<EOF | |
| distinguished_name = req_distinguished_name | |
| x509_extensions = v3_req | |
| prompt = no | |
| [req_distinguished_name] | |
| C = BR | |
| ST = São Paulo | |
| L = São Paulo | |
| O = Tupy | |
| OU = TI | |
| CN = LocalHost_Server | |
| [v3_req] | |
| keyUsage = keyEncipherment, dataEncipherment | |
| extendedKeyUsage = serverAuth | |
| subjectAltName = @alt_names | |
| [alt_names] | |
| DNS.1 = localhost | |
| DNS.2 = *.test | |
| EOF | |
| openssl req -x509 -nodes -days 1024 -newkey rsa:2048 -keyout localhost.key -out localhost.crt -config "${FILE}" -extensions 'v3_req' | |
| sudo cp localhost.crt /etc/ssl/certs/localhost.crt | |
| sudo cp localhost.key /etc/ssl/private/localhost.key | |
| sudo nginx -t | |
| sudo service nginx reload | |
| sudo apt-get update | |
| sudo apt-get install -y libnss3-tools | |
| certutil -d sql:$HOME/.pki/nssdb -A -t "CT,c,c" -n "localhost" -i localhost.crt | |
| cd .. | |
| echo "Working in dir ... $(pwd)" | |
| } | |
| f_install_redis() { | |
| sudo apt install -y redis-server | |
| sed 's/supervised no/supervised systemd/g' /etc/redis/redis.conf | |
| sudo systemctl restart redis.service | |
| systemctl status redis | |
| sudo netstat -lnp | grep redis | |
| } | |
| f_install() { | |
| f_install_curl_and_git | |
| f_install_fira_code | |
| f_install_oh_my_zsh | |
| f_install_mysql_8_0 | |
| f_install_dbeaver | |
| f_install_node_js | |
| f_install_nginx | |
| f_install_php | |
| f_install_composer | |
| f_self_trusted_local_host | |
| f_install_redis | |
| } | |
| # The sub main function, use to call neccessary functions of installation | |
| f_sub_main() { | |
| # f_update_os | |
| f_install | |
| } | |
| # The main function | |
| f_main() { | |
| f_check_root | |
| # f_sub_main | |
| } | |
| f_main | |
| exit |