#!/bin/bash

PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin

echo -en "\nchoose a database root password: "
read -s password

echo -e "\n--- installing packages"
PACKAGES="mariadb-server mariadb-client mariadb-backup"
PACKAGES="$PACKAGES apache2 certbot python-certbot-apache"
PACKAGES="$PACKAGES php libapache2-mod-php php-mysql" #php-gd php-xml php-json php-mbstring
PACKAGES="$PACKAGES php-zip php-curl php-xml php-mbstring php-gd php-intl php-soap php-xmlrpc"
#~ PACKAGES="$PACKAGES javascript-common libao-common libao4 libcurl3-gnutls libflac8 libjs-cropper libjs-prototype libjs-scriptaculous libogg0 libspeex1 libvorbis0a libvorbisenc2 libvorbisfile3 php-getid3 vorbis-tools"
PACKAGES="$PACKAGES curl wget zstd less tree zip unzip" #rsnapshot anacron openssh-server
apt update && apt upgrade -y && apt install -y $PACKAGES || exit

wget https://download.moodle.org/download.php/direct/stable310/moodle-latest-310.tgz -O - | tar -zxv -C /var/www/
mkdir /var/www/moodledata
chown www-data:www-data /var/www/moodledata/
touch /var/www/moodle/config.php

cat > /etc/apache2/sites-available/moodle.conf << EOF
<VirtualHost *:80>
    DocumentRoot /var/www/moodle
</VirtualHost>
EOF

echo -e "\n--- disabling SSH password authentication"
sed 's/^#\(PasswordAuthentication\) yes$/\1 no/' -i /etc/ssh/sshd_config
systemctl reload sshd

echo -e "\n--- configuring Apache web server"
a2enmod http2
a2enmod rewrite
a2enmod ssl
#~ a2enmod dav*
a2dissite 000-default
a2ensite moodle
systemctl restart apache2

echo -e "\n--- configuring MariaDB database"
cat > mysql-$$.tmp << EOF
DELETE FROM mysql.user WHERE User='';
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
DROP DATABASE IF EXISTS test;
set password for 'root'@'localhost' = password('$password');
flush privileges;
EOF
mysql -u root < mysql-$$.tmp
rm -f mysql-$$.tmp
