#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 |