digitaldemocratic/dd-apps/docker/moodle/02-configure-moodle.sh

91 lines
4.0 KiB
Bash
Executable File

#!/bin/sh
#
# Moodle configuration script
#
set -eo pipefail
# Check that the database is available
echo "Waiting for $database:$port to be ready"
while ! nc -w 1 $DB_HOST $DB_PORT; do
# Show some progress
echo -n '.';
sleep 1;
done
echo "$database is ready"
# Give it another 3 seconds.
sleep 3;
# Check if the config.php file exists
if [ ! -f /var/www/html/config.php ]; then
# TODO: Why is this image even using the src/rootfs dir? Just for cron?
curl --location https://github.com/moodle/moodle/archive/$MOODLE_VERSION.tar.gz | tar xz --strip-components=1 -C /var/www/html/
cp /isinstalled.php /var/www/html/admin/cli/
chown nobody:root /var/www/html -R
echo "Generating config.php file..."
ENV_VAR='var' php -d max_input_vars=$max_input_vars /var/www/html/admin/cli/install.php \
--lang=$MOODLE_LANGUAGE \
--wwwroot=$SITE_URL \
--dataroot=/var/www/moodledata/ \
--dbtype=$DB_TYPE \
--dbhost=$DB_HOST \
--dbname=$DB_NAME \
--dbuser=$DB_USER \
--dbpass=$DB_PASS \
--dbport=$DB_PORT \
--prefix=$DB_PREFIX \
--fullname="$MOODLE_SITENAME" \
--shortname="$MOODLE_SHORTSITENAME" \
--adminuser=$MOODLE_USERNAME \
--adminpass=$MOODLE_PASSWORD \
--adminemail=$MOODLE_EMAIL \
--non-interactive \
--agree-license \
--skip-database
if [ "$SSLPROXY" = 'true' ]; then
sed -i '/require_once/i $CFG->sslproxy=true;' /var/www/html/config.php
fi
fi
# Check if the database is already installed
if php -d max_input_vars=$max_input_vars /var/www/html/admin/cli/isinstalled.php ; then
echo "Installing database..."
php -d max_input_vars=$max_input_vars /var/www/html/admin/cli/install_database.php \
--lang=$MOODLE_LANGUAGE \
--adminuser=$MOODLE_USERNAME \
--adminpass=$MOODLE_PASSWORD \
--adminemail=$MOODLE_EMAIL \
--fullname="$MOODLE_SITENAME" \
--shortname="$MOODLE_SHORTSITENAME" \
--agree-license
echo "Configuring settings..."
# php -d max_input_vars=$max_input_vars /var/www/html/admin/cli/cfg.php --name=slasharguments --set=0
php -d max_input_vars=$max_input_vars /var/www/html/admin/cli/cfg.php --name=pathtophp --set=/usr/bin/php
php -d max_input_vars=$max_input_vars /var/www/html/admin/cli/cfg.php --name=pathtodu --set=/usr/bin/du
# php -d max_input_vars=$max_input_vars /var/www/html/admin/cli/cfg.php --name=aspellpath --set=/usr/bin/aspell
# php -d max_input_vars=$max_input_vars /var/www/html/admin/cli/cfg.php --name=pathtodot --set=/usr/bin/dot
# php -d max_input_vars=$max_input_vars /var/www/html/admin/cli/cfg.php --name=pathtogs --set=/usr/bin/gs
# php -d max_input_vars=$max_input_vars /var/www/html/admin/cli/cfg.php --name=pathtopython --set=/usr/bin/python3
php -d max_input_vars=$max_input_vars /var/www/html/admin/cli/cfg.php --name=enableblogs --set=0
php -d max_input_vars=$max_input_vars /var/www/html/admin/cli/cfg.php --name=smtphosts --set=$SMTP_HOST:$SMTP_PORT
php -d max_input_vars=$max_input_vars /var/www/html/admin/cli/cfg.php --name=smtpuser --set=$SMTP_USER
php -d max_input_vars=$max_input_vars /var/www/html/admin/cli/cfg.php --name=smtppass --set=$SMTP_PASSWORD
php -d max_input_vars=$max_input_vars /var/www/html/admin/cli/cfg.php --name=smtpsecure --set=$SMTP_PROTOCOL
php -d max_input_vars=$max_input_vars /var/www/html/admin/cli/cfg.php --name=noreplyaddress --set=$MOODLE_MAIL_NOREPLY_ADDRESS
php -d max_input_vars=$max_input_vars /var/www/html/admin/cli/cfg.php --name=emailsubjectprefix --set=$MOODLE_MAIL_PREFIX
elif false; then
echo "Upgrading moodle..."
php -d max_input_vars=$max_input_vars /var/www/html/admin/cli/maintenance.php --enable
php -d max_input_vars=$max_input_vars /var/www/html/admin/cli/upgrade.php --non-interactive --allow-unstable
php -d max_input_vars=$max_input_vars /var/www/html/admin/cli/maintenance.php --disable
fi
chown nobody:root /var/www/html -R