diff --git a/lib/nextcloud.sh b/lib/nextcloud.sh index c8826c0..effaf95 100644 --- a/lib/nextcloud.sh +++ b/lib/nextcloud.sh @@ -5,7 +5,7 @@ PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin config_nextcloud() { - echo -ne "\n* Configuring /federated/apps/nextcloud container.." + echo -ne "* Configuring nextcloud container.." if [ ! -d "/federated/apps/nextcloud" ]; then mkdir -p /federated/apps/nextcloud/data/root &> /dev/null @@ -272,52 +272,48 @@ EOF chmod +x /federated/apps/nextcloud/data/config.sh - echo -ne "done." + echo -ne "done.\n" } start_nextcloud() { # Start service with command to make sure it's up before proceeding start_service "nextcloud" "nc -z 192.168.0.18 80 &> /dev/null" "60" # Move config.sh and sidemenu config, set config.sh executable - mv /federated/apps/nextcloud/data/config.sh /federated/apps/nextcloud/data/configs.json /federated/apps/nextcloud/data/var/www/html/ - docker exec nextcloud chown www-data:root /var/www/html/config.sh /var/www/html/configs.json - docker exec nextcloud chmod 755 /var/www/html/config.sh - [ $? -ne 0 ] && fail "Couldn't chown config.sh in /federated/apps/nextcloud container" + run_command "mv /federated/apps/nextcloud/data/config.sh /federated/apps/nextcloud/data/configs.json /federated/apps/nextcloud/data/var/www/html/" + run_command "docker exec nextcloud chown www-data:root /var/www/html/config.sh /var/www/html/configs.json" + run_command "docker exec nextcloud chmod 755 /var/www/html/config.sh" # Run config.sh - Setup LDAP, configuration for nextcloud - docker exec -u 33 nextcloud /var/www/html/config.sh &> /dev/null - [ $? -ne 0 ] && fail "Couldn't run config.sh inside /federated/apps/nextcloud container" + run_command "docker exec -u 33 nextcloud /var/www/html/config.sh" # Add admin user to group # Have to do it this many times so it will query LDAP and populate admin user first - docker exec -u 33 nextcloud /var/www/html/occ ldap:search admin - docker exec -u 33 nextcloud /var/www/html/occ group:list - docker exec -u 33 nextcloud /var/www/html/occ group:adduser admin admin - docker exec -u 33 nextcloud /var/www/html/occ group:adduser admin admin - docker exec -u 33 nextcloud /var/www/html/occ group:list + run_command "docker exec -u 33 nextcloud /var/www/html/occ ldap:search admin" + run_command "docker exec -u 33 nextcloud /var/www/html/occ group:list" + run_command "docker exec -u 33 nextcloud /var/www/html/occ group:adduser admin admin" + run_command "docker exec -u 33 nextcloud /var/www/html/occ group:adduser admin admin" + run_command "docker exec -u 33 nextcloud /var/www/html/occ group:list" # Setup admin email account - docker exec -u 33 nextcloud bash -c "/var/www/html/occ mail:account:create admin admin admin@$DOMAIN mail.$DOMAIN 993 ssl admin@$DOMAIN $ADMINPASS mail.$DOMAIN 465 ssl admin@$DOMAIN $ADMINPASS password" &> /dev/null +# docker exec -u 33 nextcloud bash -c "/var/www/html/occ mail:account:create admin admin admin@$DOMAIN mail.$DOMAIN 993 ssl admin@$DOMAIN $ADMINPASS mail.$DOMAIN 465 ssl admin@$DOMAIN $ADMINPASS password" &> /dev/null || failts "ERROR - There was an error running occ mail:account:create" + run_command "docker exec -u 33 nextcloud /var/www/html/occ mail:account:create admin admin admin@$DOMAIN mail.$DOMAIN 993 ssl admin@$DOMAIN $ADMINPASS mail.$DOMAIN 465 ssl admin@$DOMAIN $ADMINPASS password" # Add missing indexes and disable activity app - docker exec -u 33 nextcloud /var/www/html/occ db:add-missing-indices - docker exec -u 33 nextcloud /var/www/html/occ app:disable activity + run_command "docker exec -u 33 nextcloud /var/www/html/occ db:add-missing-indices" + run_command "docker exec -u 33 nextcloud /var/www/html/occ app:disable activity" - docker exec pdns pdnsutil add-record $DOMAIN nextcloud A 86400 $EXTERNALIP &> /dev/null - [ $? -ne 0 ] && fail "Couldn't add dns record for nextcloud" + run_command "docker exec pdns pdnsutil add-record $DOMAIN nextcloud A 86400 $EXTERNALIP" # Remove configs - rm /federated/apps/nextcloud/data/var/www/html/config.sh /federated/apps/nextcloud/data/var/www/html/configs.json + run_command "rm /federated/apps/nextcloud/data/var/www/html/config.sh /federated/apps/nextcloud/data/var/www/html/configs.json" # Truncate nextcloud log file - docker exec -u 33 nextcloud truncate /var/www/html/data/nextcloud.log --size 0 + run_command "docker exec -u 33 nextcloud truncate /var/www/html/data/nextcloud.log --size 0" - echo -ne "done." + echo -ne "done.\n" } uninstall_nextcloud() { echo -ne "* Uninstalling nextcloud container.." - spin & - SPINPID=$! # First stop the service cd /federated/apps/nextcloud && docker-compose -f docker-compose.yml -p nextcloud down &> /dev/null @@ -339,14 +335,15 @@ uninstall_nextcloud() { if [[ $(grep "### Nextcloud" /federated/apps/authelia/data/config/idproviders.yml 2>/dev/null) ]]; then sed -i '/### Nextcloud/,/### /{/### PowerDNS/!{/### /!d}}' /federated/apps/authelia/data/config/idproviders.yml sed -i '/### Nextcloud/d' /federated/apps/authelia/data/config/idproviders.yml - /federated/bin/stop authelia - /federated/bin/start authelia + /federated/bin/stop authelia &> /dev/null + /federated/bin/start authelia &> /dev/null fi - kill -9 $SPINPID &> /dev/null echo -ne "done.\n" } configsso_nextcloud() { + echo -ne "* Configuring nextcloud container with SSO.." + [ ! -d "/federated/apps/authelia" ] && failcheck "Authelia is not installed. You need this first before continuing." [ ! -f "/federated/apps/authelia/data/config/idproviders.yml" ] && failcheck "Authelia idproviders.yml is missing." get_appvars @@ -373,20 +370,22 @@ cat >> /federated/apps/authelia/data/config/idproviders.yml <