Skip to content

Instantly share code, notes, and snippets.

@emilas44
Last active July 22, 2026 14:22
Show Gist options
  • Select an option

  • Save emilas44/569116cf652066a53ab9a450d51672d8 to your computer and use it in GitHub Desktop.

Select an option

Save emilas44/569116cf652066a53ab9a450d51672d8 to your computer and use it in GitHub Desktop.
#!/bin/bash
PHP_VERSION=8.5
export OS_USER_PASSWORD="password"
export MYSQL_ROOT_PASSWORD="password"
export MYSQL_USER_PASSWORD="password"
echo "
███████╗███████╗████████╗ ██╗ ██████╗ ██████╗ █████╗ ██╗ ███████╗███████╗
██╔════╝██╔════╝╚══██╔══╝ ██║ ██╔═══██╗██╔════╝██╔══██╗██║ ██╔════╝██╔════╝
███████╗█████╗ ██║█████╗██║ ██║ ██║██║ ███████║██║ █████╗ ███████╗
╚════██║██╔══╝ ██║╚════╝██║ ██║ ██║██║ ██╔══██║██║ ██╔══╝ ╚════██║
███████║███████╗ ██║ ███████╗╚██████╔╝╚██████╗██║ ██║███████╗███████╗███████║
╚══════╝╚══════╝ ╚═╝ ╚══════╝ ╚═════╝ ╚═════╝╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝
"
#sudo dpkg-reconfigure locales
sudo tee -a /etc/locale.gen << EOF
de_DE.UTF-8 UTF-8
EOF
sudo locale-gen
sudo dpkg-reconfigure tzdata
#sudo ln -fs /usr/share/zoneinfo/Europe/Berlin /etc/localtime
#sudo dpkg-reconfigure -f noninteractive tzdata
echo "APT-GET UPDATE"
sudo apt-get update
echo "NANO-ZIP-GIT-CURL"
sudo apt-get install -y nano git zip curl zsh redis-server openssh-server
sudo apt-get install -y software-properties-common gnupg2 ca-certificates lsb-release ubuntu-keyring
sudo mkdir -p /etc/apt/keyrings
echo "
███╗ ██╗ ██████╗ ██╗███╗ ██╗██╗ ██╗
████╗ ██║██╔════╝ ██║████╗ ██║╚██╗██╔╝
██╔██╗ ██║██║ ███╗██║██╔██╗ ██║ ╚███╔╝
██║╚██╗██║██║ ██║██║██║╚██╗██║ ██╔██╗
██║ ╚████║╚██████╔╝██║██║ ╚████║██╔╝ ██╗
╚═╝ ╚═══╝ ╚═════╝ ╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝
"
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
https://nginx.org/packages/ubuntu $(lsb_release -cs) nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
sudo apt-get update
sudo apt-get install -y nginx
echo "
██████╗ ██╗ ██╗██████╗
██╔══██╗██║ ██║██╔══██╗
██████╔╝███████║██████╔╝
██╔═══╝ ██╔══██║██╔═══╝
██║ ██║ ██║██║
╚═╝ ╚═╝ ╚═╝╚═╝
"
sudo apt-get install -y --no-install-recommends \
"php${PHP_VERSION}-fpm" \
"php${PHP_VERSION}-bcmath" \
"php${PHP_VERSION}-cgi" \
"php${PHP_VERSION}-common" \
"php${PHP_VERSION}-curl" \
"php${PHP_VERSION}-gd" \
"php${PHP_VERSION}-mbstring" \
"php${PHP_VERSION}-mysql" \
"php${PHP_VERSION}-xml" \
"php${PHP_VERSION}-zip" \
echo "
███████╗███████╗██╗ ██╗ ██████╗ ███████╗██████╗ ██╗███████╗ ██████╗ ██████╗ ███████╗███╗ ██╗███████╗███████╗██╗ ██╗
╚══███╔╝██╔════╝██║ ██║ ██╔══██╗██╔════╝██╔══██╗██║██╔════╝ ██╔═══██╗██╔══██╗██╔════╝████╗ ██║██╔════╝██╔════╝██║ ██║
███╔╝ ███████╗███████║█████╗██████╔╝█████╗ ██║ ██║██║███████╗█████╗██║ ██║██████╔╝█████╗ ██╔██╗ ██║███████╗███████╗███████║
███╔╝ ╚════██║██╔══██║╚════╝██╔══██╗██╔══╝ ██║ ██║██║╚════██║╚════╝██║ ██║██╔═══╝ ██╔══╝ ██║╚██╗██║╚════██║╚════██║██╔══██║
███████╗███████║██║ ██║ ██║ ██║███████╗██████╔╝██║███████║ ╚██████╔╝██║ ███████╗██║ ╚████║███████║███████║██║ ██║
╚══════╝╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═╝╚══════╝╚═════╝ ╚═╝╚══════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═══╝╚══════╝╚══════╝╚═╝ ╚═╝
"
sudo apt-get install -y zsh redis-server openssh-server
echo "
██████╗ ██████╗ ██████╗ ██╗███████╗ ██████╗████████╗███████╗ ███████╗ ██████╗ ██╗ ██████╗ ███████╗██████╗
██╔══██╗██╔══██╗██╔═══██╗ ██║██╔════╝██╔════╝╚══██╔══╝██╔════╝ ██╔════╝██╔═══██╗██║ ██╔══██╗██╔════╝██╔══██╗
██████╔╝██████╔╝██║ ██║ ██║█████╗ ██║ ██║ ███████╗█████╗█████╗ ██║ ██║██║ ██║ ██║█████╗ ██████╔╝
██╔═══╝ ██╔══██╗██║ ██║██ ██║██╔══╝ ██║ ██║ ╚════██║╚════╝██╔══╝ ██║ ██║██║ ██║ ██║██╔══╝ ██╔══██╗
██║ ██║ ██║╚██████╔╝╚█████╔╝███████╗╚██████╗ ██║ ███████║ ██║ ╚██████╔╝███████╗██████╔╝███████╗██║ ██║
╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚════╝ ╚══════╝ ╚═════╝ ╚═╝ ╚══════╝ ╚═╝ ╚═════╝ ╚══════╝╚═════╝ ╚══════╝╚═╝ ╚═╝
"
sudo mkdir -p /var/www/projects
sudo chown $USER:$USER /var/www/projects
echo "
███╗ ███╗██╗ ██╗███████╗ ██████╗ ██╗ ███████╗███████╗██████╗ ██╗ ██╗███████╗██████╗
████╗ ████║╚██╗ ██╔╝██╔════╝██╔═══██╗██║ ██╔════╝██╔════╝██╔══██╗██║ ██║██╔════╝██╔══██╗
██╔████╔██║ ╚████╔╝ ███████╗██║ ██║██║ █████╗ ███████╗█████╗ ██████╔╝██║ ██║█████╗ ██████╔╝
██║╚██╔╝██║ ╚██╔╝ ╚════██║██║▄▄ ██║██║ ╚════╝ ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██╔══╝ ██╔══██╗
██║ ╚═╝ ██║ ██║ ███████║╚██████╔╝███████╗ ███████║███████╗██║ ██║ ╚████╔╝ ███████╗██║ ██║
╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚══▀▀═╝ ╚══════╝ ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚══════╝╚═╝ ╚═╝
"
echo "Installing MySQL..."
sudo apt-get install mysql-server -y
echo "Creating MySQL user 'dbuser'..."
sudo mysql <<EOF
-- Remove anonymous users
DELETE FROM mysql.user WHERE User='';
-- Remove test database
DROP DATABASE IF EXISTS test;
DELETE FROM mysql.db WHERE Db='test' OR Db='test_%';
-- Create application/admin user
CREATE USER IF NOT EXISTS 'dbuser'@'localhost'
IDENTIFIED BY '$MYSQL_USER_PASSWORD';
GRANT ALL PRIVILEGES ON *.* TO 'dbuser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EOF
echo "MySQL installation and configuration complete."
echo "RESTARTING NGINX"
sudo systemctl restart php$PHP_VERSION-fpm && sudo systemctl restart nginx
echo "
███████╗██╗ ██╗██████╗ ███████╗██████╗ ██╗ ██╗██╗███████╗ ██████╗ ██████╗
██╔════╝██║ ██║██╔══██╗██╔════╝██╔══██╗██║ ██║██║██╔════╝██╔═══██╗██╔══██╗
███████╗██║ ██║██████╔╝█████╗ ██████╔╝██║ ██║██║███████╗██║ ██║██████╔╝
╚════██║██║ ██║██╔═══╝ ██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚════██║██║ ██║██╔══██╗
███████║╚██████╔╝██║ ███████╗██║ ██║ ╚████╔╝ ██║███████║╚██████╔╝██║ ██║
╚══════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝╚══════╝ ╚═════╝ ╚═╝ ╚═╝
"
sudo apt-get install supervisor
echo "
██████╗ ██╗ ██╗ ███╗ ███╗██╗ ██╗ ███████╗███████╗██╗ ██╗
██╔═══██╗██║ ██║ ████╗ ████║╚██╗ ██╔╝ ╚══███╔╝██╔════╝██║ ██║
██║ ██║███████║█████╗██╔████╔██║ ╚████╔╝█████╗ ███╔╝ ███████╗███████║
██║ ██║██╔══██║╚════╝██║╚██╔╝██║ ╚██╔╝ ╚════╝███╔╝ ╚════██║██╔══██║
╚██████╔╝██║ ██║ ██║ ╚═╝ ██║ ██║ ███████╗███████║██║ ██║
╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝╚══════╝╚═╝ ╚═╝
"
echo "insert password for sudo"
chsh -s $(which zsh) <<< "$OS_USER_PASSWORD"
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" "" --unattended
echo "
██████╗ ██████╗ ███╗ ███╗██████╗ ██████╗ ███████╗███████╗██████╗
██╔════╝██╔═══██╗████╗ ████║██╔══██╗██╔═══██╗██╔════╝██╔════╝██╔══██╗
██║ ██║ ██║██╔████╔██║██████╔╝██║ ██║███████╗█████╗ ██████╔╝
██║ ██║ ██║██║╚██╔╝██║██╔═══╝ ██║ ██║╚════██║██╔══╝ ██╔══██╗
╚██████╗╚██████╔╝██║ ╚═╝ ██║██║ ╚██████╔╝███████║███████╗██║ ██║
╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═════╝ ╚══════╝╚══════╝╚═╝ ╚═╝
"
cd ~
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
echo "
██████╗ █████╗ ███████╗██╗ ██╗ █████╗ ██╗ ██╗ █████╗ ███████╗███████╗███████╗
██╔══██╗██╔══██╗██╔════╝██║ ██║ ██╔══██╗██║ ██║██╔══██╗██╔════╝██╔════╝██╔════╝
██████╔╝███████║███████╗███████║ ███████║██║ ██║███████║███████╗█████╗ ███████╗
██╔══██╗██╔══██║╚════██║██╔══██║ ██╔══██║██║ ██║██╔══██║╚════██║██╔══╝ ╚════██║
██╗██████╔╝██║ ██║███████║██║ ██║███████╗██║ ██║███████╗██║██║ ██║███████║███████╗███████║
╚═╝╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚══════╝╚═╝╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝
"
echo "alias upd='sudo apt update'" >> /home/$USER/.bash_aliases && source /home/$USER/.bash_aliases
echo "alias upg='sudo apt upgrade'" >> /home/$USER/.bash_aliases && source /home/$USER/.bash_aliases
echo "alias cls='clear'" >> /home/$USER/.bash_aliases && source /home/$USER/.bash_aliases
echo "alias ll='ls -lah'" >> /home/$USER/.bash_aliases && source /home/$USER/.bash_aliases
echo "alias www='cd /var/www/projects'" >> /home/$USER/.bash_aliases && source /home/$USER/.bash_aliases
echo "alias pa='php artisan'" >> /home/$USER/.bash_aliases && source /home/$USER/.bash_aliases
echo "alias lclear='composer dump-autoload && pa clear-compiled && pa config:clear && pa cache:clear && pa view:clear && pa route:clear'" >> /home/$USER/.bash_aliases && source /home/$USER/.bash_aliases
echo "alias phpunit='vendor/bin/phpunit'" >> /home/$USER/.bash_aliases && source /home/$USER/.bash_aliases
echo "
███████╗██╗ ██╗██████╗ ██████╗ ██████╗ ████████╗ ██████╗ ██████╗ ███╗ ███╗██████╗ ██████╗ ███████╗███████╗██████╗ ██████╗ ██╗███╗ ██╗ ██████╗ █████╗ ████████╗██╗ ██╗
██╔════╝╚██╗██╔╝██╔══██╗██╔═══██╗██╔══██╗╚══██╔══╝ ██╔════╝██╔═══██╗████╗ ████║██╔══██╗██╔═══██╗██╔════╝██╔════╝██╔══██╗ ██╔══██╗██║████╗ ██║ ██╔══██╗██╔══██╗╚══██╔══╝██║ ██║
█████╗ ╚███╔╝ ██████╔╝██║ ██║██████╔╝ ██║█████╗██║ ██║ ██║██╔████╔██║██████╔╝██║ ██║███████╗█████╗ ██████╔╝█████╗██████╔╝██║██╔██╗ ██║█████╗██████╔╝███████║ ██║ ███████║
██╔══╝ ██╔██╗ ██╔═══╝ ██║ ██║██╔══██╗ ██║╚════╝██║ ██║ ██║██║╚██╔╝██║██╔═══╝ ██║ ██║╚════██║██╔══╝ ██╔══██╗╚════╝██╔══██╗██║██║╚██╗██║╚════╝██╔═══╝ ██╔══██║ ██║ ██╔══██║
███████╗██╔╝ ██╗██║ ╚██████╔╝██║ ██║ ██║ ╚██████╗╚██████╔╝██║ ╚═╝ ██║██║ ╚██████╔╝███████║███████╗██║ ██║ ██████╔╝██║██║ ╚████║ ██║ ██║ ██║ ██║ ██║ ██║
╚══════╝╚═╝ ╚═╝╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═════╝ ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚═╝╚═╝ ╚═══╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝
"
echo "and include .bash_aliases in .zshrc"
tee -a /home/$USER/.zshrc << EOF
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
EOF
echo "
█████╗ ██████╗ ████████╗ ██████╗ ███████╗████████╗ ██╗ ██╗██████╗ ██████╗ █████╗ ████████╗███████╗
██╔══██╗██╔══██╗╚══██╔══╝ ██╔════╝ ██╔════╝╚══██╔══╝ ██║ ██║██╔══██╗██╔══██╗██╔══██╗╚══██╔══╝██╔════╝
███████║██████╔╝ ██║█████╗██║ ███╗█████╗ ██║ ██║ ██║██████╔╝██║ ██║███████║ ██║ █████╗
██╔══██║██╔═══╝ ██║╚════╝██║ ██║██╔══╝ ██║ ██║ ██║██╔═══╝ ██║ ██║██╔══██║ ██║ ██╔══╝
██║ ██║██║ ██║ ╚██████╔╝███████╗ ██║ ╚██████╔╝██║ ██████╔╝██║ ██║ ██║ ███████╗
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝
"
sudo apt-get update
echo "
█████╗ ██████╗ ████████╗ ██████╗ ███████╗████████╗ ██╗ ██╗██████╗ ██████╗ ██████╗ █████╗ ██████╗ ███████╗
██╔══██╗██╔══██╗╚══██╔══╝ ██╔════╝ ██╔════╝╚══██╔══╝ ██║ ██║██╔══██╗██╔════╝ ██╔══██╗██╔══██╗██╔══██╗██╔════╝
███████║██████╔╝ ██║█████╗██║ ███╗█████╗ ██║ ██║ ██║██████╔╝██║ ███╗██████╔╝███████║██║ ██║█████╗
██╔══██║██╔═══╝ ██║╚════╝██║ ██║██╔══╝ ██║ ██║ ██║██╔═══╝ ██║ ██║██╔══██╗██╔══██║██║ ██║██╔══╝
██║ ██║██║ ██║ ╚██████╔╝███████╗ ██║ ╚██████╔╝██║ ╚██████╔╝██║ ██║██║ ██║██████╔╝███████╗
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═════╝ ╚══════╝
"
sudo apt-get upgrade -y
echo "
█████╗ ██████╗ ████████╗ ██████╗██╗ ███████╗ █████╗ ███╗ ██╗
██╔══██╗██╔══██╗╚══██╔══╝ ██╔════╝██║ ██╔════╝██╔══██╗████╗ ██║
███████║██████╔╝ ██║█████╗██║ ██║ █████╗ ███████║██╔██╗ ██║
██╔══██║██╔═══╝ ██║╚════╝██║ ██║ ██╔══╝ ██╔══██║██║╚██╗██║
██║ ██║██║ ██║ ╚██████╗███████╗███████╗██║ ██║██║ ╚████║
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚══════╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═══╝
"
sudo apt-get autoremove -y
sudo apt-get clean -y
echo ":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
echo ":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
echo ":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
echo ":::::::::::::::: You need to logout or reconnect for changes to take affect :::::::::"
echo ":::::::: when you log in the prompt for command line should be like this: ➜ ~ ::::::"
echo ":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment