diff options
author | nachoparker <nacho@ownyourbits.com> | 2017-06-14 19:18:58 +0300 |
---|---|---|
committer | nachoparker <nacho@ownyourbits.com> | 2017-06-28 18:43:54 +0300 |
commit | c33cabc537f07ebdcecea561287d02aae51388f5 (patch) | |
tree | f64ee24900274a56320837753841fb91953b7be2 /etc | |
parent | f2f0687104627a6edd8f0b2a91f5988b28e8244d (diff) |
nc-init as a nextcloudpi-config optionv0.14.0
Diffstat (limited to 'etc')
-rw-r--r-- | etc/nextcloudpi-config.d/nc-init.sh (renamed from etc/nc-init.sh) | 29 | ||||
-rw-r--r-- | etc/nextcloudpi-config.d/nc-nextcloud.sh | 72 |
2 files changed, 96 insertions, 5 deletions
diff --git a/etc/nc-init.sh b/etc/nextcloudpi-config.d/nc-init.sh index df44b188..e35b3367 100644 --- a/etc/nc-init.sh +++ b/etc/nextcloudpi-config.d/nc-init.sh @@ -18,10 +18,26 @@ ADMINUSER_=admin DBADMIN_=ncadmin DBPASSWD_=ownyourbits +DESCRIPTION="(Re)initiate Nextcloud to a clean configuration" -install() +show_info() { - ## RE-CREATE DATABASE TABLE (workaround to emulate DROP USER IF EXISTS ..;) + whiptail --yesno \ + --backtitle "NextCloudPi configuration" \ + --title "Clean NextCloud configuration" \ +"This action will configure NextCloud to NextCloudPi defaults. + +** YOUR CONFIGURATION WILL BE LOST ** + +" \ + 20 90 +} + +configure() +{ + systemctl stop apache2; + + ## RE-CREATE DATABASE TABLE echo "Setting up database..." @@ -31,6 +47,7 @@ install() sleep 0.5 done + # workaround to emulate DROP USER IF EXISTS ..;) mysql -u root -p$DBPASSWD_ <<EOF DROP DATABASE IF EXISTS nextcloud; CREATE DATABASE nextcloud @@ -48,6 +65,7 @@ EOF echo "Setting up Nextcloud..." cd /var/www/nextcloud/ + rm -f config/config.php sudo -u www-data php occ maintenance:install --database \ "mysql" --database-name "nextcloud" --database-user "$DBADMIN_" --database-pass \ "$DBPASSWD_" --admin-user "$ADMINUSER_" --admin-pass "$DBPASSWD_" @@ -60,9 +78,14 @@ EOF # 4 Byte UTF8 support sudo -u www-data php occ config:system:set mysql.utf8mb4 --type boolean --value="true" + + # Default trusted domain ( only from nextcloudpi-config ) + test -f /usr/local/bin/nextcloud-domain.sh && bash /usr/local/bin/nextcloud-domain.sh + + systemctl start apache2; } -configure(){ :; } +install(){ :; } cleanup() { :; } # License diff --git a/etc/nextcloudpi-config.d/nc-nextcloud.sh b/etc/nextcloudpi-config.d/nc-nextcloud.sh index 6152759c..59d4a7ff 100644 --- a/etc/nextcloudpi-config.d/nc-nextcloud.sh +++ b/etc/nextcloudpi-config.d/nc-nextcloud.sh @@ -19,6 +19,8 @@ VER_=12.0.0 MAXFILESIZE_=2G MEMORYLIMIT_=768M MAXTRANSFERTIME_=3600 +DBADMIN_=ncadmin +DBPASSWD_=ownyourbits DESCRIPTION="Install any NextCloud version" export DEBIAN_FRONTEND=noninteractive @@ -32,6 +34,8 @@ show_info() "This new installation will cleanup current NextCloud instance, including files and database. +You can later use nc-init to configure to NextCloudPi defaults + ** perform backup before proceding ** You can use nc-backup " \ @@ -42,10 +46,38 @@ install() { :; } configure() { + systemctl stop apache2; + + ## RE-CREATE DATABASE TABLE + + # wait for mariadb + while :; do + [[ -S /var/run/mysqld/mysqld.sock ]] && break + sleep 0.5 + done + + echo "Setting up database..." + # workaround to emulate DROP USER IF EXISTS ..;) + mysql -u root -p$DBPASSWD_ <<EOF +DROP DATABASE IF EXISTS nextcloud; +CREATE DATABASE nextcloud + CHARACTER SET utf8mb4 + COLLATE utf8mb4_unicode_ci; +GRANT USAGE ON *.* TO '$DBADMIN_'@'localhost' IDENTIFIED BY '$DBPASSWD_'; +DROP USER '$DBADMIN_'@'localhost'; +CREATE USER '$DBADMIN_'@'localhost' IDENTIFIED BY '$DBPASSWD_'; +GRANT ALL PRIVILEGES ON nextcloud.* TO $DBADMIN_@localhost; +EXIT +EOF + ## DOWNLOAD AND (OVER)WRITE NEXTCLOUD cd /var/www/ - wget -q https://download.nextcloud.com/server/releases/nextcloud-$VER_.tar.bz2 -O nextcloud.tar.bz2 + + echo "Downloading Nextcloud $VER_..." + wget -q https://download.nextcloud.com/server/releases/nextcloud-$VER_.tar.bz2 -O nextcloud.tar.bz2 || return 1 rm -rf nextcloud + + echo "Installing Nextcloud $VER_..." tar -xf nextcloud.tar.bz2 rm nextcloud.tar.bz2 @@ -84,7 +116,37 @@ configure() chown ${rootuser}:${htgroup} ${ocpath}/data/.htaccess fi - ## CONFIGURE NEXTCLOUD + # create and configure opcache dir + OPCACHEDIR=/var/www/nextcloud/data/.opcache + sed -i "s|^opcache.file_cache=.*|opcache.file_cache=$OPCACHEDIR|" /etc/php/7.0/mods-available/opcache.ini + mkdir -p $OPCACHEDIR + chown -R www-data:www-data $OPCACHEDIR + + ## SET APACHE VHOST + cat > /etc/apache2/sites-available/nextcloud.conf <<'EOF' +<IfModule mod_ssl.c> + <VirtualHost _default_:443> + DocumentRoot /var/www/nextcloud + CustomLog /var/www/nextcloud/data/access.log combined + ErrorLog /var/www/nextcloud/data/error.log + SSLEngine on + SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem + SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key + </VirtualHost> + <Directory /var/www/nextcloud/> + Options +FollowSymlinks + AllowOverride All + <IfModule mod_dav.c> + Dav off + </IfModule> + LimitRequestBody 0 + SSLRenegBufferSize 10486000 + </Directory> +</IfModule> +EOF + a2ensite nextcloud + echo "Setting up Apache..." + cat > /etc/apache2/sites-available/000-default.conf <<'EOF' <VirtualHost _default_:80> DocumentRoot /var/www/nextcloud @@ -96,6 +158,8 @@ cat > /etc/apache2/sites-available/000-default.conf <<'EOF' </VirtualHost> EOF + echo "Setting up system..." + ## SET LIMITS sed -i "s/post_max_size=.*/post_max_size=$MAXFILESIZE_/" /var/www/nextcloud/.user.ini sed -i "s/upload_max_filesize=.*/upload_max_filesize=$MAXFILESIZE_/" /var/www/nextcloud/.user.ini @@ -109,6 +173,10 @@ EOF echo "*/15 * * * * php -f /var/www/nextcloud/cron.php" > /tmp/crontab_http crontab -u www-data /tmp/crontab_http rm /tmp/crontab_http + + systemctl start apache2; + + echo "Don't forget to run nc-init" } cleanup() |