Commit 1dbe0b36 authored by w4t's avatar w4t

wtserver 0.41

parent cfdfc1c4
......@@ -216,8 +216,38 @@ EOF
#sudo -u www-data "$STORAGE_ROOT"/owncloud/occ config:system:set mysql.utf8mb4 --type boolean --value="true"
#sudo -u www-data "$STORAGE_ROOT"/owncloud/occ maintenance:repair
sudo -u www-data php8.2 "$CLOUD_DIR"/occ config:system:set config_is_readonly --value=false --type=boolean
#sudo -u www-data php8.2 "$CLOUD_DIR"/occ config:system:set config_is_readonly --value=false --type=boolean
cat > $CLOUD_DIR/config/autoconfig.php <<EOF;
<?php
\$AUTOCONFIG = array (
# storage/database
"directory" => "$STORAGE_ROOT/nextcloud",
"dbtype" => "mysql",
"dbname" => "$CFG_CLOUDDBNAME",
"dbuser" => "$CFG_CLOUDDBUSER",
"dbpass" => "$CFG_CLOUDDBPWD",
"dbhost" => "$CFG_CLOUDDBHOST",
"dbport" => "3306",
"dbtableprefix" => "",
# create an administrator account with a random password so that
# the user does not have to enter anything on first load of Nextcloud
"adminlogin" => "$CFG_CLOUDADMINUSER",
"adminpass" => "$CFG_CLOUDADMINPWD",
"directory" => "$STORAGE_ROOT/nextcloud",
);
?>
EOF
# Set permissions
chown -R www-data:www-data "$STORAGE_ROOT/nextcloud" $CLOUD_DIR
# Execute Nextcloud's setup step, which creates the Nextcloud sqlite database.
# It also wipes it if it exists. And it updates config.php with database
# settings and deletes the autoconfig.php file.
(cd $CLOUD_DIR || exit; sudo -u www-data php8.2 $CLOUD_DIR/index.php;)
sudo -u www-data php8.2 "$CLOUD_DIR"/occ maintenance:install \
--database "mysql" \
--database-name "$CFG_CLOUDDBNAME" \
......@@ -232,30 +262,30 @@ EOF
--instanceid "$instanceid"
# Set SMTP mail
#sudo -u www-data php "$CLOUD_DIR"/occ config:system:set mail_smtpmode --value="smtp"
#sudo -u www-data php8.2 "$CLOUD_DIR"/occ config:system:set mail_smtpmode --value="smtp"
# Set logrotate
sudo -u www-data php "$CLOUD_DIR"/occ config:system:set log_rotate_size --value="10485760"
sudo -u www-data php8.2 "$CLOUD_DIR"/occ config:system:set log_rotate_size --value="10485760"
# Added trusted domains
sudo -u www-data php "$CLOUD_DIR"/occ config:system:set trusted_domains 1 --value=$IP_ADDRESS
sudo -u www-data php "$CLOUD_DIR"/occ config:system:set trusted_domains 2 --value=cloud.$CFG_HOSTNAME_DOMAIN
sudo -u www-data php8.2 "$CLOUD_DIR"/occ config:system:set trusted_domains 1 --value=$IP_ADDRESS
sudo -u www-data php8.2 "$CLOUD_DIR"/occ config:system:set trusted_domains 2 --value=cloud.$CFG_HOSTNAME_DOMAIN
sudo -u www-data php "$CLOUD_DIR"/occ config:system:set memcache.local --value '\OC\Memcache\APCu'
sudo -u www-data php "$CLOUD_DIR"/occ config:system:set mail_from_address --value 'cloud_administrator'
sudo -u www-data php8.2 "$CLOUD_DIR"/occ config:system:set memcache.local --value '\OC\Memcache\APCu'
sudo -u www-data php8.2 "$CLOUD_DIR"/occ config:system:set mail_from_address --value 'cloud_administrator'
TIMEZONE=$(cat /etc/timezone)
sudo -u www-data php "$CLOUD_DIR"/occ config:system:set logtimezone --value=$TIMEZONE
sudo -u www-data php "$CLOUD_DIR"/occ config:system:set logdateformat --value 'Y-m-d H:i:s'
sudo -u www-data php "$CLOUD_DIR"/occ config:system:set mail_domain --value=$CFG_HOSTNAME_DOMAIN
sudo -u www-data php "$CLOUD_DIR"/occ config:system:set overwrite.cli.url --value 'https://$CFG_HOSTNAME_DOMAIN/cloud'
sudo -u www-data php "$CLOUD_DIR"/occ config:system:set log_type --value 'syslog'
sudo -u www-data php "$CLOUD_DIR"/occ config:system:set syslog_tag --value 'Nextcloud'
sudo -u www-data php "$CLOUD_DIR"/occ config:system:set system_addressbook_exposed --value 'no'
sudo -u www-data php "$CLOUD_DIR"/occ config:system:set mail_smtpmode --value 'sendmail'
sudo -u www-data php "$CLOUD_DIR"/occ config:system:set mail_smtpauth --type boolean --value true
sudo -u www-data php "$CLOUD_DIR"/occ config:system:set mail_smtphost --value '127.0.0.1'
sudo -u www-data php "$CLOUD_DIR"/occ config:system:set mail_smtpport --value '587'
sudo -u www-data php "$CLOUD_DIR"/occ config:system:set mail_smtpsecure --value ''
sudo -u www-data php "$CLOUD_DIR"/occ config:system:set mail_smtpname --value ''
sudo -u www-data php "$CLOUD_DIR"/occ config:system:set mail_smtppassword --value ''
sudo -u www-data php8.2 "$CLOUD_DIR"/occ config:system:set logtimezone --value=$TIMEZONE
sudo -u www-data php8.2 "$CLOUD_DIR"/occ config:system:set logdateformat --value 'Y-m-d H:i:s'
sudo -u www-data php8.2 "$CLOUD_DIR"/occ config:system:set mail_domain --value=$CFG_HOSTNAME_DOMAIN
sudo -u www-data php8.2 "$CLOUD_DIR"/occ config:system:set overwrite.cli.url --value 'https://$CFG_HOSTNAME_DOMAIN/cloud'
sudo -u www-data php8.2 "$CLOUD_DIR"/occ config:system:set log_type --value 'syslog'
sudo -u www-data php8.2 "$CLOUD_DIR"/occ config:system:set syslog_tag --value 'Nextcloud'
sudo -u www-data php8.2 "$CLOUD_DIR"/occ config:system:set system_addressbook_exposed --value 'no'
sudo -u www-data php8.2 "$CLOUD_DIR"/occ config:system:set mail_smtpmode --value 'sendmail'
sudo -u www-data php8.2 "$CLOUD_DIR"/occ config:system:set mail_smtpauth --type boolean --value true
sudo -u www-data php8.2 "$CLOUD_DIR"/occ config:system:set mail_smtphost --value '127.0.0.1'
sudo -u www-data php8.2 "$CLOUD_DIR"/occ config:system:set mail_smtpport --value '587'
sudo -u www-data php8.2 "$CLOUD_DIR"/occ config:system:set mail_smtpsecure --value ''
sudo -u www-data php8.2 "$CLOUD_DIR"/occ config:system:set mail_smtpname --value ''
sudo -u www-data php8.2 "$CLOUD_DIR"/occ config:system:set mail_smtppassword --value ''
CONFIG_FILE="$CLOUD_DIR/config/config.php"
......@@ -296,7 +326,7 @@ EOF
hide_output sudo -u www-data php8.2 $CLOUD_DIR/console.php app:enable twofactor_totp
# Upgrade all apps
sudo -u www-data php $CLOUD_DIR/occ app:update --all
sudo -u www-data php8.2 $CLOUD_DIR/occ app:update --all
echo
echo "Nextcloud version:"
......@@ -451,7 +481,7 @@ InstallNextcloudVer() {
rm -rf $CLOUD_DIR
# Download and verify the Nextcloud package
wget_verify https://download.nextcloud.com/server/releases/nextcloud-$version.zip $hash /tmp/nextcloud.zip
wget_verify_log_progress https://download.nextcloud.com/server/releases/nextcloud-$version.zip $hash /tmp/nextcloud.zip
# Extract Nextcloud
unzip -q /tmp/nextcloud.zip -d $INSTALL_DIR
......@@ -485,14 +515,14 @@ InstallNextcloudVer() {
# If this isn't a new installation, immediately run the upgrade script.
# Then check for success (0=ok and 3=no upgrade needed, both are success).
if [ -e $STORAGE_ROOT/nextcloud/nextcloud.db ]; then
sudo -u www-data php $CLOUD_DIR/occ upgrade
sudo -u www-data php8.2 $CLOUD_DIR/occ upgrade
if [ \( $? -ne 0 \) -a \( $? -ne 3 \) ]; then
echo "Trying NextCloud upgrade again to work around NextCloud upgrade bug..."
sudo -u www-data php $CLOUD_DIR/occ upgrade
sudo -u www-data php8.2 $CLOUD_DIR/occ upgrade
if [ \( $? -ne 0 \) -a \( $? -ne 3 \) ]; then
exit 1
fi
sudo -u www-data php $CLOUD_DIR/occ maintenance:mode --off
sudo -u www-data php8.2 $CLOUD_DIR/occ maintenance:mode --off
echo "...which seemed to work."
fi
......
......@@ -55,7 +55,7 @@ function apt_get_quiet {
# Although we could pass -qq to apt-get to make output quieter, many packages write to stdout
# and stderr things that aren't really important. Use our hide_output function to capture
# all of that and only show it if there is a problem (i.e. if apt_get returns a failure exit status).
DEBIAN_FRONTEND=noninteractive hide_output apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confnew" "$@"
DEBIAN_FRONTEND=noninteractive hide_output apt-get -y --allow-change-held-packages -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confnew" "$@"
}
# Update Package(s)
......@@ -246,25 +246,50 @@ function input_menu {
}
function wget_verify {
# Downloads a file from the web and checks that it matches
# a provided hash. If the comparison fails, exit immediately.
URL=$1
HASH=$2
DEST=$3
CHECKSUM="$HASH $DEST"
rm -f $DEST
wget -q -O $DEST $URL || exit 1
if ! echo "$CHECKSUM" | sha1sum --check --strict > /dev/null; then
echo "------------------------------------------------------------"
echo "Download of $URL did not match expected checksum."
echo "Found:"
sha1sum $DEST
echo
echo "Expected:"
echo "$CHECKSUM"
rm -f $DEST
exit 1
fi
# Downloads a file from the web and checks that it matches
# a provided hash. If the comparison fails, exit immediately.
URL=$1
HASH=$2
DEST=$3
CHECKSUM="$HASH $DEST"
rm -f "$DEST"
hide_output wget -O "$DEST" "$URL"
if ! echo "$CHECKSUM" | sha1sum --check --strict > /dev/null; then
echo "------------------------------------------------------------"
echo "Download of $URL did not match expected checksum."
echo "Found:"
sha1sum "$DEST"
echo
echo "Expected:"
echo "$CHECKSUM"
rm -f "$DEST"
exit 1
fi
}
function wget_verify_log_progress {
# Downloads a file from the web and checks that it matches
# a provided hash. If the comparison fails, exit immediately.
# this variant of the wget verify function shows
# downliad progress
URL=$1
HASH=$2
DEST=$3
CHECKSUM="$HASH $DEST"
rm -f "$DEST"
wget -q --show-progress --progress=dot:giga -O "$DEST" "$URL"
if ! echo "$CHECKSUM" | sha1sum --check --strict > /dev/null; then
echo "------------------------------------------------------------"
echo "Download of $URL did not match expected checksum."
echo "Found:"
sha1sum "$DEST"
echo
echo "Expected:"
echo "$CHECKSUM"
rm -f "$DEST"
exit 1
fi
}
function wget_spec_verify {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment