Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/nextcloudpi.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'etc/ncp-config.d/nc-nextcloud.sh')
-rw-r--r--etc/ncp-config.d/nc-nextcloud.sh266
1 files changed, 0 insertions, 266 deletions
diff --git a/etc/ncp-config.d/nc-nextcloud.sh b/etc/ncp-config.d/nc-nextcloud.sh
deleted file mode 100644
index af39bcb7..00000000
--- a/etc/ncp-config.d/nc-nextcloud.sh
+++ /dev/null
@@ -1,266 +0,0 @@
-#!/bin/bash
-
-# Nextcloud installation on Raspbian over LAMP base
-#
-# Copyleft 2017 by Ignacio Nunez Hernanz <nacho _a_t_ ownyourbits _d_o_t_ com>
-# GPL licensed (see end of file) * Use at your own risk!
-#
-# More at https://ownyourbits.com/2017/02/13/nextcloud-ready-raspberry-pi-image/
-#
-
-VER_=14.0.4
-BETA_=no
-MAXFILESIZE_=2G
-MEMORYLIMIT_=768M
-MAXTRANSFERTIME_=3600
-DBADMIN=ncadmin
-REDIS_MEM=3gb
-PHPVER=7.2
-DESCRIPTION="Install any NextCloud version"
-
-APTINSTALL="apt-get install -y --no-install-recommends"
-export DEBIAN_FRONTEND=noninteractive
-
-[ -d /var/www/nextcloud ] && { # don't show this during image build
-INFOTITLE="NextCloud installation"
-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 "
-}
-
-install()
-{
- # During build, this step is run before ncp.sh. Avoid executing twice
- [[ -f /usr/lib/systemd/system/nc-provisioning.service ]] && return 0
-
- local RELEASE=stretch
-
- # Optional packets for Nextcloud and Apps
- apt-get update
- $APTINSTALL lbzip2 iputils-ping
- $APTINSTALL -t $RELEASE php-smbclient # for external storage
- $APTINSTALL -t $RELEASE imagemagick php${PHPVER}-imagick php${PHPVER}-exif # for gallery
-
-
- # POSTFIX
- $APTINSTALL postfix || {
- # [armbian] workaround for bug - https://bugs.launchpad.net/ubuntu/+source/postfix/+bug/1531299
- echo "[NCP] Please, ignore the previous postfix installation error ..."
- mv /usr/bin/newaliases /
- ln -s /bin/true /usr/bin/newaliases
- $APTINSTALL postfix
- rm /usr/bin/newaliases
- mv /newaliases /usr/bin/newaliases
- }
-
- $APTINSTALL redis-server
- $APTINSTALL -t $RELEASE php${PHPVER}-redis
-
- local REDIS_CONF=/etc/redis/redis.conf
- local REDISPASS="default"
- sed -i "s|# unixsocket .*|unixsocket /var/run/redis/redis.sock|" $REDIS_CONF
- sed -i "s|# unixsocketperm .*|unixsocketperm 770|" $REDIS_CONF
- sed -i "s|# requirepass .*|requirepass $REDISPASS|" $REDIS_CONF
- sed -i 's|# maxmemory-policy .*|maxmemory-policy allkeys-lru|' $REDIS_CONF
- sed -i 's|# rename-command CONFIG ""|rename-command CONFIG ""|' $REDIS_CONF
- sed -i "s|^port.*|port 0|" $REDIS_CONF
- echo "maxmemory $REDIS_MEM" >> $REDIS_CONF
- echo 'vm.overcommit_memory = 1' >> /etc/sysctl.conf
-
- usermod -a -G redis www-data
-
- service redis-server restart
- update-rc.d redis-server enable
- service php${PHPVER}-fpm restart
-
- # service to randomize passwords on first boot
- mkdir -p /usr/lib/systemd/system
- cat > /usr/lib/systemd/system/nc-provisioning.service <<'EOF'
-[Unit]
-Description=Randomize passwords on first boot
-Requires=network.target
-After=mysql.service redis.service
-
-[Service]
-ExecStart=/bin/bash /usr/local/bin/ncp-provisioning.sh
-
-[Install]
-WantedBy=multi-user.target
-EOF
- [[ "$DOCKERBUILD" != 1 ]] && systemctl enable nc-provisioning
- return 0
-}
-
-configure()
-{
- ## IF BETA SELECTED ADD "pre" to DOWNLOAD PATH
- [[ "$BETA_" == yes ]] && local PREFIX="pre"
-
- ## DOWNLOAD AND (OVER)WRITE NEXTCLOUD
- cd /var/www/
-
- local URL="https://download.nextcloud.com/server/${PREFIX}releases/nextcloud-$VER_.tar.bz2"
- echo "Downloading Nextcloud $VER_..."
- wget -q "$URL" -O nextcloud.tar.bz2 || {
- echo "couldn't download $URL"
- return 1
- }
- rm -rf nextcloud
-
- echo "Installing Nextcloud $VER_..."
- tar -xf nextcloud.tar.bz2
- rm nextcloud.tar.bz2
-
- ## CONFIGURE FILE PERMISSIONS
- local ocpath='/var/www/nextcloud'
- local htuser='www-data'
- local htgroup='www-data'
- local rootuser='root'
-
- printf "Creating possible missing Directories\n"
- mkdir -p $ocpath/data
- mkdir -p $ocpath/updater
-
- printf "chmod Files and Directories\n"
- find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640
- find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750
-
- printf "chown Directories\n"
-
- chown -R ${htuser}:${htgroup} ${ocpath}/
- chown -R ${htuser}:${htgroup} ${ocpath}/apps/
- chown -R ${htuser}:${htgroup} ${ocpath}/config/
- chown -R ${htuser}:${htgroup} ${ocpath}/data/
- chown -R ${htuser}:${htgroup} ${ocpath}/themes/
- chown -R ${htuser}:${htgroup} ${ocpath}/updater/
-
- chmod +x ${ocpath}/occ
-
- printf "chmod/chown .htaccess\n"
- if [ -f ${ocpath}/.htaccess ]; then
- chmod 0644 ${ocpath}/.htaccess
- chown ${htuser}:${htgroup} ${ocpath}/.htaccess
- fi
- if [ -f ${ocpath}/data/.htaccess ]; then
- chmod 0644 ${ocpath}/data/.htaccess
- chown ${htuser}:${htgroup} ${ocpath}/data/.htaccess
- fi
-
- # create and configure opcache dir
- local OPCACHEDIR=/var/www/nextcloud/data/.opcache
- sed -i "s|^opcache.file_cache=.*|opcache.file_cache=$OPCACHEDIR|" /etc/php/${PHPVER}/mods-available/opcache.ini
- mkdir -p $OPCACHEDIR
- chown -R www-data:www-data $OPCACHEDIR
-
- ## RE-CREATE DATABASE TABLE
- # launch mariadb if not already running (for docker build)
- if ! pgrep -c mysqld &>/dev/null; then
- echo "Starting mariaDB"
- mysqld &
- fi
-
- # wait for mariadb
- pgrep -x mysqld &>/dev/null || echo "mariaDB process not found"
-
- while :; do
- [[ -S /var/run/mysqld/mysqld.sock ]] && break
- sleep 0.5
- done
-
- echo "Setting up database..."
-
- # workaround to emulate DROP USER IF EXISTS ..;)
- local DBPASSWD=$( grep password /root/.my.cnf | sed 's|password=||' )
- mysql <<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
-
-## SET APACHE VHOST
- echo "Setting up Apache..."
- cat > /etc/apache2/sites-available/nextcloud.conf <<'EOF'
-<IfModule mod_ssl.c>
- <VirtualHost _default_:443>
- DocumentRoot /var/www/nextcloud
- CustomLog /var/log/apache2/nc-access.log combined
- ErrorLog /var/log/apache2/nc-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
-
- cat > /etc/apache2/sites-available/000-default.conf <<'EOF'
-<VirtualHost _default_:80>
- DocumentRoot /var/www/nextcloud
- <IfModule mod_rewrite.c>
- RewriteEngine On
- RewriteCond %{HTTPS} !=on
- RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
- </IfModule>
-</VirtualHost>
-EOF
-
- # some added security
- sed -i 's|^ServerSignature .*|ServerSignature Off|' /etc/apache2/conf-enabled/security.conf
- sed -i 's|^ServerTokens .*|ServerTokens Prod|' /etc/apache2/conf-enabled/security.conf
-
- 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
- sed -i "s/memory_limit=.*/memory_limit=$MEMORYLIMIT_/" /var/www/nextcloud/.user.ini
-
- # slow transfers will be killed after this time
- cat >> /var/www/nextcloud/.user.ini <<< "max_execution_time=$MAXTRANSFERTIME_"
- cat >> /var/www/nextcloud/.user.ini <<< "max_input_time=$MAXTRANSFERTIME_"
-
- ## SET CRON
- echo "*/15 * * * * php -f /var/www/nextcloud/cron.php" > /tmp/crontab_http
- crontab -u www-data /tmp/crontab_http
- rm /tmp/crontab_http
-
- echo "Don't forget to run nc-init"
-}
-
-# License
-#
-# This script is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This script is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this script; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place, Suite 330,
-# Boston, MA 02111-1307 USA
-