#!/bin/bash # # NextCloud Service 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.." spin & SPINPID=$! if [ ! -d "/federated/apps/nextcloud" ]; then mkdir -p /federated/apps/nextcloud/data/root &> /dev/null mkdir -p /federated/apps/nextcloud/data/home &> /dev/null mkdir -p /federated/apps/nextcloud/data/var/www/html &> /dev/null mkdir -p /federated/apps/nextcloud/data/var/www/html/custom_apps &> /dev/null mkdir -p /federated/apps/nextcloud/data/var/www/config &> /dev/null mkdir -p /federated/apps/nextcloud/data/var/www/data &> /dev/null fi DOMAIN_ARRAY=(${DOMAIN//./ }) DOMAIN_FIRST=${DOMAIN_ARRAY[0]} DOMAIN_LAST=${DOMAIN_ARRAY[1]} cat > /federated/apps/nextcloud/docker-compose.yml < /federated/apps/nextcloud/.postgresql.secret echo "$ADMINPASS" > /federated/apps/nextcloud/.nextcloud.secret chmod 600 /federated/apps/nextcloud/.postgresql.secret /federated/apps/nextcloud/.nextcloud.secret cat > /federated/apps/nextcloud/.env < /federated/apps/nextcloud/data/root/supervisord.conf <<'EOF' [supervisord] nodaemon=true logfile=/var/log/supervisord/supervisord.log pidfile=/var/run/supervisord/supervisord.pid childlogdir=/var/log/supervisord/ logfile_maxbytes=50MB ; maximum size of logfile before rotation logfile_backups=10 ; number of backed up logfiles loglevel=error [program:apache2] stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 command=apache2-foreground [program:sshd] stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 command=service ssh start EOF cat > /federated/apps/nextcloud/data/root/nextcloud.sh <<'EOF' #!/bin/sh -x PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin if [ ! -e /root/.init ]; then echo "First start and initialization" apt update -y && apt-get install ssh -y apt-get install python3 -y && apt-get install sudo -y echo 'ansible ALL=(ALL:ALL) NOPASSWD:ALL' >> /etc/sudoers \ && useradd -m ansible -s /bin/bash \ && sudo -u ansible mkdir /home/ansible/.ssh \ && mkdir -p /var/run/sshd apt-get install -y supervisor \ && rm -rf /var/lib/apt/lists/* \ && mkdir /var/log/supervisord /var/run/supervisord touch /root/.init export NEXTCLOUD_UPDATE=1 /usr/bin/supervisord -c /root/supervisord.conf else echo "Already Initialized, running supervisord" export NEXTCLOUD_UPDATE=1 /usr/bin/supervisord -c /root/supervisord.conf fi EOF chmod +x /federated/apps/nextcloud/data/root/nextcloud.sh cat > /federated/apps/nextcloud/data/configs.json < /federated/apps/nextcloud/data/config.sh < /dev/null echo -ne "done." } start_nextcloud() { # Start service with command to make sure it's up before proceeding start_service "nextcloud" "nc -z 172.99.0.16 80 &> /dev/null" # 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 -it nextcloud chown www-data:root /var/www/html/config.sh /var/www/html/configs.json docker exec -it nextcloud chmod 755 /var/www/html/config.sh [ $? -ne 0 ] && fail "Couldn't chown config.sh in /federated/apps/nextcloud container" # Run config.sh - Setup LDAP, configuration for nextcloud docker exec -it -u 33 nextcloud /var/www/html/config.sh &> /dev/null [ $? -ne 0 ] && fail "Couldn't run config.sh inside /federated/apps/nextcloud container" kill -9 $SPINPID &> /dev/null echo -ne "done." }