#!/bin/bash # Init NextCloud database and perform initial configuration # # Copyleft 2017 by Ignacio Nunez Hernanz # GPL licensed (see end of file) * Use at your own risk! # # More at https://ownyourbits.com/2017/02/13/nextcloud-ready-raspberry-pi-image/ # ADMINUSER_=ncp ADMINPASS_=ownyourbits DBADMIN=ncadmin DESCRIPTION="(Re)initiate Nextcloud to a clean configuration" INFOTITLE="Clean NextCloud configuration" INFO="This action will configure NextCloud to NextCloudPi defaults. ** YOUR CONFIGURATION WILL BE LOST ** " configure() { echo "Setting up a clean Nextcloud instance... wait until message 'NC init done'" # checks local REDISPASS=$( grep "^requirepass" /etc/redis/redis.conf | cut -d' ' -f2 ) [[ "$REDISPASS" == "" ]] && { echo "redis server without a password. Abort"; return 1; } ## RE-CREATE DATABASE TABLE echo "Setting up database..." # launch mariadb if not already running if ! pgrep -c mysqld &>/dev/null; then mysqld & fi # wait for mariadb pgrep -x mysqld &>/dev/null || { echo "mariaDB process not found. Waiting..." while :; do [[ -S /run/mysqld/mysqld.sock ]] && break sleep 0.5 done } # workaround to emulate DROP USER IF EXISTS ..;) local DBPASSWD=$( grep password /root/.my.cnf | sed 's|password=||' ) mysql </dev/null; then mkdir -p /var/run/redis chown redis /var/run/redis sudo -u redis redis-server /etc/redis/redis.conf & fi while :; do [[ -S /run/redis/redis.sock ]] && break sleep 0.5 done 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 "$ADMINPASS_" # cron jobs sudo -u www-data php occ background:cron # redis cache sed -i '$d' config/config.php cat >> config/config.php < '\\OC\\Memcache\\Redis', 'memcache.locking' => '\\OC\\Memcache\\Redis', 'redis' => array ( 'host' => '/var/run/redis/redis.sock', 'port' => 0, 'timeout' => 0.0, 'password' => '$REDISPASS', ), ); 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 ncp-config ) test -f /usr/local/bin/nextcloud-domain.sh && { test -f /.ncp-image || bash /usr/local/bin/nextcloud-domain.sh } sudo -u www-data php occ config:system:set trusted_domains 5 --value="nextcloudpi.local" # email sudo -u www-data php occ config:system:set mail_smtpmode --value="php" sudo -u www-data php occ config:system:set mail_smtpauthtype --value="LOGIN" sudo -u www-data php occ config:system:set mail_from_address --value="admin" sudo -u www-data php occ config:system:set mail_domain --value="ownyourbits.com" # NCP theme [[ -e /usr/local/etc/logo ]] && { local ID=$( grep instanceid config/config.php | awk -F "=> " '{ print $2 }' | sed "s|[,']||g" ) [[ "$ID" == "" ]] && { echo "failed to get ID"; return 1; } mkdir -p data/appdata_${ID}/theming/images cp /usr/local/etc/logo /usr/local/etc/background data/appdata_${ID}/theming/images chown -R www-data:www-data data/appdata_${ID} } mysql nextcloud <