#!/bin/bash ###============================================================ ## Ubuntu 18.04 Web Server Installer ###============================================================ ## Zet comments hieronder: # # # ##============================================================= ##----------## # Menu # ##----------## echo "Ubuntu 18.04 installatie script." echo "Domein zonder www:" read domain echo "Algemeen wachtwoord:" read password echo "Administrator email:" read email echo "Webserver:" PS3='Keuze:' options=("Apache" "Apache, Nginx reverse proxy" "Nginx reverse proxy" "Nginx, PHP-FPM" "Quit") select opt in "${options[@]}" do case $opt in "Apache") script=https://git.ictmaatwerk.com/VPS-scripts/Ubuntu-Web/raw/branch/dev/Apache-Installer.sh break;; "Apache, Nginx reverse proxy") script=https://git.ictmaatwerk.com/VPS-scripts/Ubuntu-Web/raw/branch/dev/RevProxyAdvanced.sh break;; "Nginx reverse proxy") script=https://git.ictmaatwerk.com/VPS-scripts/Ubuntu-Web/raw/branch/dev/RevProxySimple.sh break;; "Nginx, PHP-FPM") script=https://git.ictmaatwerk.com/VPS-scripts/Ubuntu-Web/raw/branch/dev/NGINX-Installer.sh break;; "Quit") exit;; *) echo "Fout commando $REPLY";; esac done while true; do read -p "Installeer Netdata -> yes/no?" yn case $yn in [Yy]* ) netdata=1 break;; [Nn]* ) netdata=0 break;; * ) echo "Kies yes of no.";; esac done while true; do read -p "Installeer Memcached -> yes/no?" yn case $yn in [Yy]* ) memcached=1 break;; [Nn]* ) memcached=0 break;; * ) echo "Kies yes of no.";; esac done while true; do read -p "Installeer Redis Cache -> yes/no?" yn case $yn in [Yy]* ) redis=1 break;; [Nn]* ) redis=0 break;; * ) echo "Kies yes of no.";; esac done while true; do read -p "Installeer Wordpress -> yes/no?" yn case $yn in [Yy]* ) wordpress=1 break;; [Nn]* ) wordpress=0 break;; * ) echo "Kies yes of no.";; esac done ##----------------## # Pre-Config # ##----------------## sed -i 's/PermitRootLogin yes/PermitRootLogin prohibit-password/g' /etc/ssh/sshd_config echo "root:$password" | chpasswd cd /tmp #mv /boot/grub/menu.lst /boot/grub/menu.lst.bck add-apt-repository -y ppa:certbot/certbot apt update apt upgrade -y apt dist-upgrade -y apt install -y rsync grsync sshpass apt clean apt autoremove -y hostnamectl set-hostname $domain sed -i 's/;preserve_hostname: false/preserve_hostname: true/g' /etc/cloud/cloud.cfg timedatectl set-timezone Europe/Amsterdam sed -i 's/#/vm.swappiness=10/g' /etc/sysctl.conf sed -i 's/#/vm.vfs_cache_pressure=50/g' /etc/sysctl.conf cat < /etc/cron.weekly/update.sh #!/bin/sh apt update apt upgrade -y apt autoclean EOF ufw allow OpenSSH ufw allow 443/tcp ufw allow 80/tcp ufw limit ssh echo "y" | sudo ufw enable ##-------------------## # Install Phase # ##-------------------## echo "****************************" sleep 0.5 echo "Installatie duurt 5 minuten." sleep 0.5 echo "****************************" wget $script -O Ubuntu-Web_Installer.sh source Ubuntu-Web_Installer.sh ##------------------## # MySQL Config # ##------------------## rm /etc/mysql/my.cnf cat > /etc/mysql/my.cnf <<- "EOF" # - "/etc/mysql/my.cnf" to set global options, [mysqld_safe] socket = /var/run/mysqld/mysqld.sock nice = 0 [mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp lc-messages-dir = /usr/share/mysql skip-external-locking innodb_buffer_pool_size = 1G # (adjust value here, 50%-70% of total RAM) innodb_log_file_size = 256M innodb_flush_log_at_trx_commit = 1 # may change to 2 or 0 innodb_flush_method = O_DIRECT bind-address = 127.0.0.1 key_buffer_size = 16M max_allowed_packet = 16M thread_stack = 192K thread_cache_size = 8 myisam-recover-options = BACKUP #max_connections = 100 #table_open_cache = 64 #thread_concurrency = 10 query_cache_limit = 1M query_cache_size = 16M log_error = /var/log/mysql/error.log expire_logs_days = 10 max_binlog_size = 100M EOF echo "Installatie geslaagd!" ##------------## # Reboot # ##------------## echo "Reboot in:" sleep 1 echo 3 sleep 1 echo 2 sleep 1 echo 1 reboot