Browse Source

Repo-based owncloud installation

It looks as if future debian releases won't have
an owncloud package, and so it's now installed in a similar
manner to hubzilla and gnusocial
Bob Mottram 9 years ago
parent
commit
d51a0f4a51

+ 292
- 201
src/freedombone View File

@@ -228,12 +228,14 @@ GVM_REPO="https://github.com/moovweb/gvm"
228 228
 GVM_COMMIT='25ea8ae158e2861c92e2b22c458e60840157832f'
229 229
 
230 230
 # Domain name for Owncloud installation
231
+OWNCLOUD_REPO="https://github.com/owncloud/core"
232
+OWNCLOUD_COMMIT='stable9'
231 233
 OWNCLOUD_DOMAIN_NAME=
232 234
 OWNCLOUD_CODE=
233 235
 OWNCLOUD_ONION_PORT=8088
234 236
 OWNCLOUD_ADMIN_PASSWORD=
235 237
 OWNCLOUD_MUSIC_APP_REPO="https://github.com/owncloud/music"
236
-OWNCLOUD_MUSIC_APP_COMMIT='7f79afb4ae9a6ecd8f530d87106f960306c0a15a'
238
+OWNCLOUD_MUSIC_APP_COMMIT='0c0e1fadbe31a43f9c98d6a2a7b3960ff881ca0e'
237 239
 
238 240
 # Domain name for your wiki
239 241
 WIKI_DOMAIN_NAME=
@@ -6227,177 +6229,177 @@ function install_web_server {
6227 6229
     echo '        # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;' >> /etc/nginx/nginx.conf
6228 6230
     echo '' >> /etc/nginx/nginx.conf
6229 6231
     echo '        ##' >> /etc/nginx/nginx.conf
6230
-           echo '        # Virtual Host Configs' >> /etc/nginx/nginx.conf
6231
-           echo '        ##' >> /etc/nginx/nginx.conf
6232
-           echo '' >> /etc/nginx/nginx.conf
6233
-           echo '        include /etc/nginx/conf.d/*.conf;' >> /etc/nginx/nginx.conf
6234
-           echo '        include /etc/nginx/sites-enabled/*;' >> /etc/nginx/nginx.conf
6235
-           echo '}' >> /etc/nginx/nginx.conf
6236
-
6237
-           # install a script to easily enable and disable nginx virtual hosts
6238
-           if [ ! -d $INSTALL_DIR ]; then
6239
-               mkdir $INSTALL_DIR
6240
-           fi
6241
-           cd $INSTALL_DIR
6242
-           git_clone $NGINX_ENSITE_REPO $INSTALL_DIR/nginx_ensite
6243
-           cd $INSTALL_DIR/nginx_ensite
6244
-           git checkout $NGINX_ENSITE_COMMIT -b $NGINX_ENSITE_COMMIT
6245
-           if ! grep -q "Nginx-ensite commit" $COMPLETION_FILE; then
6246
-               echo "Nginx-ensite commit:$NGINX_ENSITE_COMMIT" >> $COMPLETION_FILE
6247
-           else
6248
-               sed -i "s/Nginx-ensite commit.*/Nginx-ensite commit:$NGINX_ENSITE_COMMIT/g" $COMPLETION_FILE
6249
-           fi
6250
-
6251
-           make install
6252
-           nginx_dissite default
6253
-           echo 'install_web_server' >> $COMPLETION_FILE
6254
-       }
6255
-
6256
-       function install_web_server_access_control {
6257
-           if [ ! -f /etc/pam.d/nginx ]; then
6258
-               echo '#%PAM-1.0' > /etc/pam.d/nginx
6259
-               echo '@include common-auth' >> /etc/pam.d/nginx
6260
-               echo '@include common-account' >> /etc/pam.d/nginx
6261
-               echo '@include common-session' >> /etc/pam.d/nginx
6262
-           fi
6263
-       }
6264
-
6265
-       function configure_php {
6266
-           sed -i "s/memory_limit = 128M/memory_limit = ${MAX_PHP_MEMORY}M/g" /etc/php5/fpm/php.ini
6267
-           sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php5/fpm/php.ini
6268
-           sed -i "s/memory_limit = -1/memory_limit = ${MAX_PHP_MEMORY}M/g" /etc/php5/cli/php.ini
6269
-           sed -i "s/upload_max_filesize = 2M/upload_max_filesize = 50M/g" /etc/php5/fpm/php.ini
6270
-           sed -i "s/post_max_size = 8M/post_max_size = 50M/g" /etc/php5/fpm/php.ini
6271
-       }
6272
-
6273
-       function install_mariadb {
6274
-           if grep -Fxq "install_mariadb" $COMPLETION_FILE; then
6275
-               return
6276
-           fi
6277
-           apt-get -y install python-software-properties debconf-utils
6278
-           apt-get -y install software-properties-common
6279
-           apt-get -y update
6280
-
6281
-           get_mariadb_password
6282
-           if [ ! $MARIADB_PASSWORD ]; then
6283
-               if [ -f $IMAGE_PASSWORD_FILE ]; then
6284
-                   MARIADB_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
6285
-               else
6286
-                   MARIADB_PASSWORD="$(openssl rand -base64 32)"
6287
-               fi
6288
-               echo "$MARIADB_PASSWORD" > $DATABASE_PASSWORD_FILE
6289
-               chmod 600 $DATABASE_PASSWORD_FILE
6290
-
6291
-               echo '' >> /home/$MY_USERNAME/README
6292
-               echo '' >> /home/$MY_USERNAME/README
6293
-               echo 'MariaDB / MySql' >> /home/$MY_USERNAME/README
6294
-               echo '===============' >> /home/$MY_USERNAME/README
6295
-               echo $"Your MariaDB password is: $MARIADB_PASSWORD" >> /home/$MY_USERNAME/README
6296
-               echo '' >> /home/$MY_USERNAME/README
6297
-               chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
6298
-               chmod 600 /home/$MY_USERNAME/README
6299
-           fi
6300
-
6301
-           debconf-set-selections <<< "mariadb-server mariadb-server/root_password password $MARIADB_PASSWORD"
6302
-           debconf-set-selections <<< "mariadb-server mariadb-server/root_password_again password $MARIADB_PASSWORD"
6303
-           apt-get -y install mariadb-server
6304
-           apt-get -y remove --purge apache*
6305
-           if [ -d /etc/apache2 ]; then
6306
-               rm -rf /etc/apache2
6307
-               echo $'Removed Apache installation after MariaDB install'
6308
-           fi
6309
-
6310
-           if [ ! -d /etc/mysql ]; then
6311
-               echo $"ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE"
6312
-               exit 54
6313
-           fi
6314
-
6315
-           mysqladmin -u root password "$MARIADB_PASSWORD"
6316
-           echo 'install_mariadb' >> $COMPLETION_FILE
6317
-       }
6318
-
6319
-       function backup_databases_script_header {
6320
-           if [ ! -f /usr/bin/backupdatabases ]; then
6321
-               # daily
6322
-               echo '#!/bin/sh' > /usr/bin/backupdatabases
6323
-               echo '' >> /usr/bin/backupdatabases
6324
-               echo "EMAIL='$MY_EMAIL_ADDRESS'" >> /usr/bin/backupdatabases
6325
-               echo '' >> /usr/bin/backupdatabases
6326
-               echo -n 'MYSQL_PASSWORD=$(cat ' >> /usr/bin/backupdatabases
6327
-               echo "$DATABASE_PASSWORD_FILE)" >> /usr/bin/backupdatabases
6328
-               echo 'umask 0077' >> /usr/bin/backupdatabases
6329
-               echo '' >> /usr/bin/backupdatabases
6330
-               echo '# exit if we are backing up to friends servers' >> /usr/bin/backupdatabases
6331
-               echo "if [ -f $FRIENDS_SERVERS_LIST ]; then" >> /usr/bin/backupdatabases
6332
-               echo '  exit 1' >> /usr/bin/backupdatabases
6333
-               echo 'fi' >> /usr/bin/backupdatabases
6334
-               chmod 600 /usr/bin/backupdatabases
6335
-               chmod +x /usr/bin/backupdatabases
6336
-
6337
-               echo '#!/bin/sh' > /etc/cron.daily/backupdatabasesdaily
6338
-               echo '/usr/bin/backupdatabases' >> /etc/cron.daily/backupdatabasesdaily
6339
-               chmod 600 /etc/cron.daily/backupdatabasesdaily
6340
-               chmod +x /etc/cron.daily/backupdatabasesdaily
6341
-
6342
-               # weekly
6343
-               echo '#!/bin/sh' > /etc/cron.weekly/backupdatabasesweekly
6344
-               echo '' >> /etc/cron.weekly/backupdatabasesweekly
6345
-               echo 'umask 0077' >> /etc/cron.weekly/backupdatabasesweekly
6346
-
6347
-               chmod 600 /etc/cron.weekly/backupdatabasesweekly
6348
-               chmod +x /etc/cron.weekly/backupdatabasesweekly
6349
-
6350
-               # monthly
6351
-               echo '#!/bin/sh' > /etc/cron.monthly/backupdatabasesmonthly
6352
-               echo '' >> /etc/cron.monthly/backupdatabasesmonthly
6353
-               echo 'umask 0077' >> /etc/cron.monthly/backupdatabasesmonthly
6354
-
6355
-               chmod 600 /etc/cron.monthly/backupdatabasesmonthly
6356
-               chmod +x /etc/cron.monthly/backupdatabasesmonthly
6357
-           fi
6358
-       }
6359
-
6360
-       function repair_databases_script {
6361
-           if [ -f /etc/cron.hourly/repair ]; then
6362
-               sed -i "s|/usr/bin/repairdatabase|${PROJECT_NAME}-repair-database|g" /etc/cron.hourly/repair
6363
-           fi
6364
-
6365
-           if grep -Fxq "repair_databases_script" $COMPLETION_FILE; then
6366
-               return
6367
-           fi
6368
-
6369
-           if [ ! -f $DATABASE_PASSWORD_FILE ]; then
6370
-               return
6371
-           fi
6372
-
6373
-           echo '#!/bin/bash' > /etc/cron.hourly/repair
6374
-           echo '' >> /etc/cron.hourly/repair
6375
-           chmod 600 /etc/cron.hourly/repair
6376
-           chmod +x /etc/cron.hourly/repair
6377
-
6378
-           echo 'repair_databases_script' >> $COMPLETION_FILE
6379
-}
6380
-
6381
-function install_owncloud_music_app {
6232
+    echo '        # Virtual Host Configs' >> /etc/nginx/nginx.conf
6233
+    echo '        ##' >> /etc/nginx/nginx.conf
6234
+    echo '' >> /etc/nginx/nginx.conf
6235
+    echo '        include /etc/nginx/conf.d/*.conf;' >> /etc/nginx/nginx.conf
6236
+    echo '        include /etc/nginx/sites-enabled/*;' >> /etc/nginx/nginx.conf
6237
+    echo '}' >> /etc/nginx/nginx.conf
6238
+
6239
+    # install a script to easily enable and disable nginx virtual hosts
6240
+    if [ ! -d $INSTALL_DIR ]; then
6241
+        mkdir $INSTALL_DIR
6242
+    fi
6243
+    cd $INSTALL_DIR
6244
+    git_clone $NGINX_ENSITE_REPO $INSTALL_DIR/nginx_ensite
6245
+    cd $INSTALL_DIR/nginx_ensite
6246
+    git checkout $NGINX_ENSITE_COMMIT -b $NGINX_ENSITE_COMMIT
6247
+    if ! grep -q "Nginx-ensite commit" $COMPLETION_FILE; then
6248
+        echo "Nginx-ensite commit:$NGINX_ENSITE_COMMIT" >> $COMPLETION_FILE
6249
+    else
6250
+        sed -i "s/Nginx-ensite commit.*/Nginx-ensite commit:$NGINX_ENSITE_COMMIT/g" $COMPLETION_FILE
6251
+    fi
6252
+
6253
+    make install
6254
+    nginx_dissite default
6255
+    echo 'install_web_server' >> $COMPLETION_FILE
6256
+}
6257
+
6258
+function install_web_server_access_control {
6259
+    if [ ! -f /etc/pam.d/nginx ]; then
6260
+        echo '#%PAM-1.0' > /etc/pam.d/nginx
6261
+        echo '@include common-auth' >> /etc/pam.d/nginx
6262
+        echo '@include common-account' >> /etc/pam.d/nginx
6263
+        echo '@include common-session' >> /etc/pam.d/nginx
6264
+    fi
6265
+}
6266
+
6267
+function configure_php {
6268
+    sed -i "s/memory_limit = 128M/memory_limit = ${MAX_PHP_MEMORY}M/g" /etc/php5/fpm/php.ini
6269
+    sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php5/fpm/php.ini
6270
+    sed -i "s/memory_limit = -1/memory_limit = ${MAX_PHP_MEMORY}M/g" /etc/php5/cli/php.ini
6271
+    sed -i "s/upload_max_filesize = 2M/upload_max_filesize = 50M/g" /etc/php5/fpm/php.ini
6272
+    sed -i "s/post_max_size = 8M/post_max_size = 50M/g" /etc/php5/fpm/php.ini
6273
+}
6274
+
6275
+function install_mariadb {
6276
+    if grep -Fxq "install_mariadb" $COMPLETION_FILE; then
6277
+        return
6278
+    fi
6279
+    apt-get -y install python-software-properties debconf-utils
6280
+    apt-get -y install software-properties-common
6281
+    apt-get -y update
6282
+
6283
+    get_mariadb_password
6284
+    if [ ! $MARIADB_PASSWORD ]; then
6285
+        if [ -f $IMAGE_PASSWORD_FILE ]; then
6286
+            MARIADB_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
6287
+        else
6288
+            MARIADB_PASSWORD="$(openssl rand -base64 32)"
6289
+        fi
6290
+        echo "$MARIADB_PASSWORD" > $DATABASE_PASSWORD_FILE
6291
+        chmod 600 $DATABASE_PASSWORD_FILE
6292
+
6293
+        echo '' >> /home/$MY_USERNAME/README
6294
+        echo '' >> /home/$MY_USERNAME/README
6295
+        echo 'MariaDB / MySql' >> /home/$MY_USERNAME/README
6296
+        echo '===============' >> /home/$MY_USERNAME/README
6297
+        echo $"Your MariaDB password is: $MARIADB_PASSWORD" >> /home/$MY_USERNAME/README
6298
+        echo '' >> /home/$MY_USERNAME/README
6299
+        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
6300
+        chmod 600 /home/$MY_USERNAME/README
6301
+    fi
6302
+
6303
+    debconf-set-selections <<< "mariadb-server mariadb-server/root_password password $MARIADB_PASSWORD"
6304
+    debconf-set-selections <<< "mariadb-server mariadb-server/root_password_again password $MARIADB_PASSWORD"
6305
+    apt-get -y install mariadb-server
6306
+    apt-get -y remove --purge apache*
6307
+    if [ -d /etc/apache2 ]; then
6308
+        rm -rf /etc/apache2
6309
+        echo $'Removed Apache installation after MariaDB install'
6310
+    fi
6311
+
6312
+    if [ ! -d /etc/mysql ]; then
6313
+        echo $"ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE"
6314
+        exit 54
6315
+    fi
6316
+
6317
+    mysqladmin -u root password "$MARIADB_PASSWORD"
6318
+    echo 'install_mariadb' >> $COMPLETION_FILE
6319
+}
6320
+
6321
+function backup_databases_script_header {
6322
+    if [ ! -f /usr/bin/backupdatabases ]; then
6323
+        # daily
6324
+        echo '#!/bin/sh' > /usr/bin/backupdatabases
6325
+        echo '' >> /usr/bin/backupdatabases
6326
+        echo "EMAIL='$MY_EMAIL_ADDRESS'" >> /usr/bin/backupdatabases
6327
+        echo '' >> /usr/bin/backupdatabases
6328
+        echo -n 'MYSQL_PASSWORD=$(cat ' >> /usr/bin/backupdatabases
6329
+        echo "$DATABASE_PASSWORD_FILE)" >> /usr/bin/backupdatabases
6330
+        echo 'umask 0077' >> /usr/bin/backupdatabases
6331
+        echo '' >> /usr/bin/backupdatabases
6332
+        echo '# exit if we are backing up to friends servers' >> /usr/bin/backupdatabases
6333
+        echo "if [ -f $FRIENDS_SERVERS_LIST ]; then" >> /usr/bin/backupdatabases
6334
+        echo '  exit 1' >> /usr/bin/backupdatabases
6335
+        echo 'fi' >> /usr/bin/backupdatabases
6336
+        chmod 600 /usr/bin/backupdatabases
6337
+        chmod +x /usr/bin/backupdatabases
6338
+
6339
+        echo '#!/bin/sh' > /etc/cron.daily/backupdatabasesdaily
6340
+        echo '/usr/bin/backupdatabases' >> /etc/cron.daily/backupdatabasesdaily
6341
+        chmod 600 /etc/cron.daily/backupdatabasesdaily
6342
+        chmod +x /etc/cron.daily/backupdatabasesdaily
6343
+
6344
+        # weekly
6345
+        echo '#!/bin/sh' > /etc/cron.weekly/backupdatabasesweekly
6346
+        echo '' >> /etc/cron.weekly/backupdatabasesweekly
6347
+        echo 'umask 0077' >> /etc/cron.weekly/backupdatabasesweekly
6348
+
6349
+        chmod 600 /etc/cron.weekly/backupdatabasesweekly
6350
+        chmod +x /etc/cron.weekly/backupdatabasesweekly
6351
+
6352
+        # monthly
6353
+        echo '#!/bin/sh' > /etc/cron.monthly/backupdatabasesmonthly
6354
+        echo '' >> /etc/cron.monthly/backupdatabasesmonthly
6355
+        echo 'umask 0077' >> /etc/cron.monthly/backupdatabasesmonthly
6356
+
6357
+        chmod 600 /etc/cron.monthly/backupdatabasesmonthly
6358
+        chmod +x /etc/cron.monthly/backupdatabasesmonthly
6359
+    fi
6360
+}
6361
+
6362
+function repair_databases_script {
6363
+    if [ -f /etc/cron.hourly/repair ]; then
6364
+        sed -i "s|/usr/bin/repairdatabase|${PROJECT_NAME}-repair-database|g" /etc/cron.hourly/repair
6365
+    fi
6366
+
6367
+    if grep -Fxq "repair_databases_script" $COMPLETION_FILE; then
6368
+        return
6369
+    fi
6370
+
6371
+    if [ ! -f $DATABASE_PASSWORD_FILE ]; then
6372
+        return
6373
+    fi
6374
+
6375
+    echo '#!/bin/bash' > /etc/cron.hourly/repair
6376
+    echo '' >> /etc/cron.hourly/repair
6377
+    chmod 600 /etc/cron.hourly/repair
6378
+    chmod +x /etc/cron.hourly/repair
6379
+
6380
+    echo 'repair_databases_script' >> $COMPLETION_FILE
6381
+}
6382
+
6383
+function install_owncloud_repo_music_app {
6382 6384
     if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_DEVELOPER" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
6383 6385
         return
6384 6386
     fi
6385 6387
 
6386
-    if ! grep -Fxq "install_owncloud" $COMPLETION_FILE; then
6388
+    if ! grep -Fxq "install_owncloud_repo" $COMPLETION_FILE; then
6387 6389
         echo $'Tried to install the Owncloud music app, but Owncloud installation was not found'
6388 6390
         exit 9823
6389 6391
     fi
6390 6392
 
6391 6393
     # update to the next commit
6392
-    set_repo_commit /usr/share/owncloud/apps/music "Owncloud music app commit" "$OWNCLOUD_MUSIC_APP_COMMIT" $OWNCLOUD_MUSIC_APP_REPO
6394
+    set_repo_commit /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs/apps/music "Owncloud music app commit" "$OWNCLOUD_MUSIC_APP_COMMIT" $OWNCLOUD_MUSIC_APP_REPO
6393 6395
 
6394
-    if grep -Fxq "install_owncloud_music_app" $COMPLETION_FILE; then
6396
+    if grep -Fxq "install_owncloud_repo_music_app" $COMPLETION_FILE; then
6395 6397
         return
6396 6398
     fi
6397 6399
 
6398
-    cd /usr/share/owncloud/apps
6400
+    cd /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs/apps
6399 6401
     git_clone $OWNCLOUD_MUSIC_APP_REPO Music
6400
-    cd /usr/share/owncloud/apps/Music
6402
+    cd /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs/apps/Music
6401 6403
     git checkout $OWNCLOUD_MUSIC_APP_COMMIT -b $OWNCLOUD_MUSIC_APP_COMMIT
6402 6404
     if ! grep -q "Owncloud music app commit" $COMPLETION_FILE; then
6403 6405
         echo "Owncloud music app commit:$OWNCLOUD_MUSIC_APP_COMMIT" >> $COMPLETION_FILE
@@ -6419,7 +6421,7 @@ function install_owncloud_music_app {
6419 6421
         chmod 600 /home/$MY_USERNAME/README
6420 6422
     fi
6421 6423
 
6422
-    echo 'install_owncloud_music_app' >> $COMPLETION_FILE
6424
+    echo 'install_owncloud_repo_music_app' >> $COMPLETION_FILE
6423 6425
 }
6424 6426
 
6425 6427
 function add_ddns_domain {
@@ -6462,49 +6464,76 @@ function configure_owncloud_onion_site {
6462 6464
     if [ ! $OWNCLOUD_DOMAIN_NAME ]; then
6463 6465
         return
6464 6466
     fi
6465
-    if [ ! -f /etc/owncloud/config.php ]; then
6467
+    if [ ! -f /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs/config/config.php ]; then
6466 6468
         return
6467 6469
     fi
6468 6470
     if [ ! -f /var/lib/tor/hidden_service_owncloud/hostname ]; then
6469 6471
         return
6470 6472
     fi
6471 6473
     OWNCLOUD_ONION_HOSTNAME=$(cat /var/lib/tor/hidden_service_owncloud/hostname)
6472
-    if ! grep -q "${OWNCLOUD_ONION_HOSTNAME}" /etc/owncloud/config.php; then
6474
+    if ! grep -q "${OWNCLOUD_ONION_HOSTNAME}" /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs/config/config.php; then
6473 6475
         sed -i "s|0 => '${OWNCLOUD_DOMAIN_NAME}',|0 => '${OWNCLOUD_DOMAIN_NAME}',
6474
-    1 => '${OWNCLOUD_ONION_HOSTNAME}',|g" /etc/owncloud/config.php
6476
+    1 => '${OWNCLOUD_ONION_HOSTNAME}',|g" /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs/config/config.php
6475 6477
         sed -i "s|'writable' => false,|'writable' => false,
6476 6478
     ),
6477 6479
     1 =>
6478 6480
     array (
6479
-      'path' => '/usr/share/owncloud/apps',
6481
+      'path' => '/var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs/apps',
6480 6482
       'url' => '/apps',
6481
-      'writable' => false,|g" /etc/owncloud/config.php
6483
+      'writable' => false,|g" /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs/config/config.php
6482 6484
         echo $'Owncloud configured for onion site'
6483 6485
     fi
6484 6486
 }
6485 6487
 
6486
-function install_owncloud {
6487
-    if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_DEVELOPER" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
6488
+function upgrade_owncloud {
6489
+    # upgrades from the debian packaged version to a repo based version
6490
+    # The debian package for Owncloud is likely to be removed in future debian releases
6491
+    if [ ! -d /etc/owncloud ]; then
6488 6492
         return
6489 6493
     fi
6490
-    OWNCLOUD_COMPLETION_MSG1=$" *** ${PROJECT_NAME} $SYSTEM_TYPE is now installed ***"
6491
-    OWNCLOUD_COMPLETION_MSG2=$"Open $OWNCLOUD_DOMAIN_NAME in a web browser to complete the setup"
6492
-    if grep -Fxq "install_owncloud" $COMPLETION_FILE; then
6493
-        if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" ]]; then
6494
-            install_owncloud_music_app
6495
-            backup_to_friends_servers
6496
-            intrusion_detection
6497
-            split_gpg_key_into_fragments
6498
-            # unmount any attached usb drive
6499
-            if [ -d $USB_MOUNT ]; then
6500
-                umount $USB_MOUNT
6501
-                rm -rf $USB_MOUNT
6502
-            fi
6503
-            echo ''
6504
-            echo "$OWNCLOUD_COMPLETION_MSG1"
6505
-            echo "$OWNCLOUD_COMPLETION_MSG2"
6506
-            exit 0
6494
+
6495
+    # create directories
6496
+    if [ ! -d /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs/data ]; then
6497
+        mkdir /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs/data
6498
+    fi
6499
+    if [ ! -d /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs/config ]; then
6500
+        mkdir /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs/config
6501
+    fi
6502
+
6503
+    # move the data
6504
+    if [ -d /var/lib/owncloud/data ]; then
6505
+        # copy users over
6506
+        cp -rf /var/lib/owncloud/data/* /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs/data/
6507
+        # set ownership to www-data
6508
+        chown -R www-data:www-data /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs/data
6509
+    fi
6510
+
6511
+    # move the config files
6512
+    if [ -d /etc/owncloud ]; then
6513
+        # copy users over
6514
+        cp -rf /etc/owncloud/* /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs/config/
6515
+        # set ownership to www-data
6516
+        chown -R www-data:www-data /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs/config
6517
+    fi
6518
+
6519
+    # re-index the files
6520
+    for d in /home/*/ ; do
6521
+        USRNAME=$(echo "$d" | awk -F '/' '{print $3}')
6522
+        if [[ $USRNAME != "git" && $USRNAME != "mirrors" ]]; then
6523
+            /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs/occ files:scan $USRNAME
6507 6524
         fi
6525
+    done
6526
+    
6527
+    # TODO enable this once upgrade is confirmed working
6528
+    #apt-get -y remove --purge owncloud
6529
+    #rm -rf /etc/owncloud
6530
+    #rm -rf /usr/share/owncloud
6531
+    #rm -rf /var/lib/owncloud
6532
+}
6533
+
6534
+function install_owncloud_from_repo {
6535
+    # new version not based on debian package
6536
+    if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_DEVELOPER" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
6508 6537
         return
6509 6538
     fi
6510 6539
     # if this is exclusively a cloud setup
@@ -6524,14 +6553,77 @@ function install_owncloud {
6524 6553
             exit 6746
6525 6554
         fi
6526 6555
     fi
6556
+
6557
+    OWNCLOUD_PATH=/var/www/$OWNCLOUD_DOMAIN_NAME/htdocs
6558
+
6559
+    # was this previously installed from a package?
6560
+    WAS_INSTALLED_FROM_PACKAGE=
6561
+    if [ -d /etc/owncloud ]; then
6562
+        WAS_INSTALLED_FROM_PACKAGE='yes'
6563
+    fi
6564
+
6565
+    # update to a new commit if needed
6566
+    set_repo_commit $OWNCLOUD_PATH "Owncloud commit" "$OWNCLOUD_COMMIT" $OWNCLOUD_REPO
6567
+    
6568
+    OWNCLOUD_COMPLETION_MSG1=$" *** ${PROJECT_NAME} $SYSTEM_TYPE is now installed ***"
6569
+    OWNCLOUD_COMPLETION_MSG2=$"Open $OWNCLOUD_DOMAIN_NAME in a web browser to complete the setup"
6570
+    if grep -Fxq "install_owncloud_from_repo" $COMPLETION_FILE; then
6571
+        if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" ]]; then
6572
+            install_owncloud_repo_music_app
6573
+            backup_to_friends_servers
6574
+            intrusion_detection
6575
+            split_gpg_key_into_fragments
6576
+            # unmount any attached usb drive
6577
+            if [ -d $USB_MOUNT ]; then
6578
+                umount $USB_MOUNT
6579
+                rm -rf $USB_MOUNT
6580
+            fi
6581
+            echo ''
6582
+            echo "$OWNCLOUD_COMPLETION_MSG1"
6583
+            echo "$OWNCLOUD_COMPLETION_MSG2"
6584
+            exit 0
6585
+        fi
6586
+        return
6587
+    fi
6588
+
6527 6589
     apt-get -y install fonts-linuxlibertine fonts-sil-gentium-basic fonts-way-microhei
6528 6590
     apt-get -y install libjs-twitter-bootstrap
6529
-    apt-get -y install owncloud
6591
+
6592
+    # ensure that apache hasn't been inadvertantly installed
6530 6593
     apt-get -y remove --purge apache*
6531 6594
     if [ -d /etc/apache2 ]; then
6532 6595
         rm -rf /etc/apache2
6533 6596
         echo $'Removed Apache installation after Owncloud install'
6534 6597
     fi
6598
+
6599
+    # create the directory where owncloud will live
6600
+    if [ ! -d /var/www/$OWNCLOUD_DOMAIN_NAME ]; then
6601
+        mkdir /var/www/$OWNCLOUD_DOMAIN_NAME
6602
+    fi
6603
+
6604
+    # clone the owncloud repo
6605
+    cd /var/www/$OWNCLOUD_DOMAIN_NAME
6606
+    if [ -d $OWNCLOUD_PATH ]; then
6607
+        if [ $WAS_INSTALLED_FROM_PACKAGE ]; then
6608
+            # remove the existing link to /usr/share/owncloud
6609
+            rm $OWNCLOUD_PATH
6610
+            if [ -d $OWNCLOUD_PATH ]; then
6611
+                echo $'Tried to unlink old owncloud, but link remains'
6612
+                exit 67248
6613
+            fi
6614
+        fi
6615
+    fi
6616
+    git_clone $OWNCLOUD_REPO $OWNCLOUD_PATH
6617
+    cd $OWNCLOUD_PATH
6618
+    git checkout $OWNCLOUD_COMMIT -b $OWNCLOUD_COMMIT
6619
+
6620
+    # record the current commit
6621
+    if ! grep -q "Owncloud commit" $COMPLETION_FILE; then
6622
+        echo "Owncloud commit:$OWNCLOUD_COMMIT" >> $COMPLETION_FILE
6623
+    else
6624
+        sed -i "s/Owncloud commit.*/Owncloud commit:$OWNCLOUD_COMMIT/g" $COMPLETION_FILE
6625
+    fi
6626
+    
6535 6627
     install_mariadb
6536 6628
     get_mariadb_password
6537 6629
 
@@ -6566,22 +6658,15 @@ function install_owncloud {
6566 6658
         chmod 600 /home/$MY_USERNAME/README
6567 6659
     fi
6568 6660
 
6569
-    create_database owncloud "$OWNCLOUD_ADMIN_PASSWORD"
6570
-
6571
-    if [ ! -d /var/www/$OWNCLOUD_DOMAIN_NAME ]; then
6572
-        mkdir /var/www/$OWNCLOUD_DOMAIN_NAME
6573
-    fi
6574
-    if [ -d /var/www/$OWNCLOUD_DOMAIN_NAME/htdocs ]; then
6575
-        rm -rf /var/www/$OWNCLOUD_DOMAIN_NAME/htdocs
6661
+    if [ ! $WAS_INSTALLED_FROM_PACKAGE ]; then
6662
+        create_database owncloud "$OWNCLOUD_ADMIN_PASSWORD"
6576 6663
     fi
6577 6664
 
6578
-    ln -s /usr/share/owncloud /var/www/$OWNCLOUD_DOMAIN_NAME/htdocs
6579
-
6580 6665
     if [[ $ONION_ONLY == "no" ]]; then
6581 6666
         nginx_http_redirect $OWNCLOUD_DOMAIN_NAME
6582 6667
         echo 'server {' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
6583 6668
         echo '    listen 443 ssl;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
6584
-        echo "    root /var/www/$OWNCLOUD_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
6669
+        echo "    root $OWNCLOUD_PATH;" >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
6585 6670
         echo "    server_name $OWNCLOUD_DOMAIN_NAME;" >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
6586 6671
         echo '    access_log off;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
6587 6672
         echo "    error_log /var/log/nginx/${OWNCLOUD_DOMAIN_NAME}_error.log $WEBSERVER_LOG_LEVEL;" >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
@@ -6654,7 +6739,7 @@ function install_owncloud {
6654 6739
     fi
6655 6740
     echo 'server {' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
6656 6741
     echo "    listen 127.0.0.1:${OWNCLOUD_ONION_PORT} default_server;" >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
6657
-    echo "    root /var/www/$OWNCLOUD_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
6742
+    echo "    root $OWNCLOUD_PATH;" >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
6658 6743
     echo "    server_name $OWNCLOUD_DOMAIN_NAME;" >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
6659 6744
     echo '    access_log off;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
6660 6745
     echo "    error_log /var/log/nginx/${OWNCLOUD_DOMAIN_NAME}_error.log $WEBSERVER_LOG_LEVEL;" >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
@@ -6752,17 +6837,22 @@ function install_owncloud {
6752 6837
         chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
6753 6838
         chmod 600 /home/$MY_USERNAME/README
6754 6839
     fi
6755
-    echo "Owncloud onion domain:${OWNCLOUD_ONION_HOSTNAME}" >> $COMPLETION_FILE
6840
+    if ! grep -q "Owncloud onion domain" $COMPLETION_FILE; then
6841
+        echo "Owncloud onion domain:${OWNCLOUD_ONION_HOSTNAME}" >> $COMPLETION_FILE
6842
+    fi
6756 6843
 
6757 6844
     # update the dynamic DNS
6758 6845
     CURRENT_DDNS_DOMAIN=$OWNCLOUD_DOMAIN_NAME
6759 6846
     add_ddns_domain
6760 6847
 
6761
-    echo "Owncloud domain:$OWNCLOUD_DOMAIN_NAME" >> $COMPLETION_FILE
6762
-    echo 'install_owncloud' >> $COMPLETION_FILE
6848
+    if ! grep -q "Owncloud domain" $COMPLETION_FILE; then
6849
+        echo "Owncloud domain:$OWNCLOUD_DOMAIN_NAME" >> $COMPLETION_FILE
6850
+    fi
6851
+
6852
+    echo 'install_owncloud_from_repo' >> $COMPLETION_FILE
6763 6853
 
6764 6854
     if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" ]]; then
6765
-        install_owncloud_music_app
6855
+        install_owncloud_repo_music_app
6766 6856
         backup_to_friends_servers
6767 6857
         intrusion_detection
6768 6858
         split_gpg_key_into_fragments
@@ -10737,8 +10827,9 @@ script_for_attaching_usb_drive
10737 10827
 install_web_server
10738 10828
 install_web_server_access_control
10739 10829
 configure_firewall_for_web_server
10740
-install_owncloud
10741
-install_owncloud_music_app
10830
+install_owncloud_from_repo
10831
+upgrade_owncloud
10832
+install_owncloud_repo_music_app
10742 10833
 configure_owncloud_onion_site
10743 10834
 upgrade_golang
10744 10835
 install_gogs

+ 23
- 22
src/freedombone-adduser View File

@@ -276,28 +276,29 @@ if grep -q "install_gnu_social" $COMPLETION_FILE; then
276 276
     fi
277 277
 fi
278 278
 
279
-#if grep -q "install_owncloud" $COMPLETION_FILE; then
280
-#    export OC_PASS="$NEW_USER_PASSWORD"
281
-#    occ user:add --password-from-env --display-name="$MY_USERNAME" --group="users" $MY_USERNAME
282
-#    if [ ! "$?" = "0" ]; then
283
-#        echo 'Owncloud user could not be added'
284
-#        if grep -q "install_xmpp" $COMPLETION_FILE; then
285
-#            ${PROJECT_NAME}-rmxmpp -e "$MY_USERNAME@$HOSTNAME"
286
-#        fi
287
-#        if grep -q "Blog domain" $COMPLETION_FILE; then
288
-#            if [ -f /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini ]; then
289
-#                rm /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
290
-#            fi
291
-#        fi
292
-#        if grep -q "install_sip" $COMPLETION_FILE; then
293
-#            ${PROJECT_NAME}-rmsipuser $MY_USERNAME
294
-#        fi
295
-#        userdel -r $MY_USERNAME
296
-#        export OC_PASS=""
297
-#        exit 11
298
-#    fi
299
-#    export OC_PASS=""
300
-#fi
279
+if grep -q "install_owncloud_repo" $COMPLETION_FILE; then
280
+    export OC_PASS="$NEW_USER_PASSWORD"
281
+    OWNCLOUD_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Owncloud domain" | awk -F ':' '{print $2}')
282
+    /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs/occ user:add --password-from-env --display-name="$MY_USERNAME" --group="users" $MY_USERNAME
283
+    if [ ! "$?" = "0" ]; then
284
+        echo 'Owncloud user could not be added'
285
+        if grep -q "install_xmpp" $COMPLETION_FILE; then
286
+            ${PROJECT_NAME}-rmxmpp -e "$MY_USERNAME@$HOSTNAME"
287
+        fi
288
+        if grep -q "Blog domain" $COMPLETION_FILE; then
289
+            if [ -f /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini ]; then
290
+                rm /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
291
+            fi
292
+        fi
293
+        if grep -q "install_sip" $COMPLETION_FILE; then
294
+            ${PROJECT_NAME}-rmsipuser $MY_USERNAME
295
+        fi
296
+        userdel -r $MY_USERNAME
297
+        export OC_PASS=""
298
+        exit 11
299
+    fi
300
+    export OC_PASS=""
301
+fi
301 302
 
302 303
 if grep -q "install_irc_client" $COMPLETION_FILE; then
303 304
     IRC_PORT=6697

+ 27
- 27
src/freedombone-backup-local View File

@@ -182,7 +182,7 @@ function backup_database {
182 182
         mkdir -p /root/temp${1}data
183 183
     fi
184 184
     echo $"Obtaining ${1} database backup"
185
-    mysqldump --password="$DATABASE_PASSWORD" ${1} > /root/temp${1}data/${1}.sql
185
+    mysqldump --lock-tables --password="$DATABASE_PASSWORD" ${1} > /root/temp${1}data/${1}.sql
186 186
     if [ ! -s /root/temp${1}data/${1}.sql ]; then
187 187
         echo $"${1} database could not be saved"
188 188
         shred -zu /root/temp${1}data/*
@@ -363,9 +363,6 @@ function backup_directories {
363 363
         "none,                               none,       /etc/nginx/sites-available,                      web"
364 364
         "none,                               none,       /home/$ADMIN_USERNAME/.ipfs,                     ipfs"
365 365
         "none,                               none,       /var/cache/minidlna,                             dlna"
366
-        "/etc/owncloud,                      owncloud,   /root/tempownclouddata,                          ownclouddata"
367
-        "none,                               none,       /var/lib/owncloud,                               owncloud"
368
-        "none,                               none,       /etc/owncloud,                                   owncloud2"
369 366
         "/home/git/go/src/github.com/gogits, gogs,       /root/tempgogsdata,                              gogsdata"
370 367
         "none,                               none,       /home/git/go/src/github.com/gogits/gogs/custom,  gogs"
371 368
         "none,                               none,       /home/git/gogs-repositories,                     gogsrepos"
@@ -373,6 +370,9 @@ function backup_directories {
373 370
         "none,                               none,       /var/lib/tox-bootstrapd,                         tox"
374 371
         "/var/www/${MICROBLOG_DOMAIN_NAME},  gnusocial,  /root/tempgnusocialdata,                         gnusocialdata"
375 372
         "none,                               none,       /var/www/${MICROBLOG_DOMAIN_NAME}/htdocs,        gnusocial"
373
+        "/var/www/${OWNCLOUD_DOMAIN_NAME},   owncloud,   /root/tempowncloudrepodata,                      owncloudrepodata"
374
+        "none,                               none,       /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs/data,    owncloudrepofiles"
375
+        "none,                               none,       /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs/config,  owncloudrepoconfig"
376 376
         "/var/www/${HUBZILLA_DOMAIN_NAME},   hubzilla,   /root/temphubzilladata,                          hubzilladata"
377 377
         "none,                               none,       /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs,         hubzilla"
378 378
         "none,                               none,       /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs,         blog"
@@ -493,7 +493,7 @@ function backup_mariadb {
493 493
         if [ ! -d /root/tempmariadb ]; then
494 494
             mkdir /root/tempmariadb
495 495
         fi
496
-        mysqldump --password="$DATABASE_PASSWORD" mysql user > /root/tempmariadb/mysql.sql
496
+        mysqldump --lock-tables --password="$DATABASE_PASSWORD" mysql user > /root/tempmariadb/mysql.sql
497 497
         if [ ! -s /root/tempmariadb/mysql.sql ]; then
498 498
             echo $"Unable to backup mysql settings"
499 499
             rm -rf /root/tempmariadb
@@ -512,28 +512,28 @@ function valid_backup_destination {
512 512
     is_valid="yes"
513 513
 
514 514
     if [[ "$destination_dir" == "hubzilla" || \
515
-				"$destination_dir" == "hubzilladata" || \
516
-				"$destination_dir" == "gogs" || \
517
-				"$destination_dir" == "gogsrepos" || \
518
-				"$destination_dir" == "gogsssh" || \
519
-				"$destination_dir" == "gnusocial" || \
520
-				"$destination_dir" == "gnusocialdata" || \
521
-				"$destination_dir" == "mariadb" || \
522
-				"$destination_dir" == "config" || \
523
-				"$destination_dir" == "letsencrypt" || \
524
-				"$destination_dir" == "wiki" || \
525
-				"$destination_dir" == "wiki2" || \
526
-				"$destination_dir" == "xmpp" || \
527
-				"$destination_dir" == "ipfs" || \
528
-				"$destination_dir" == "dlna" || \
529
-				"$destination_dir" == "tox" || \
530
-				"$destination_dir" == "ssl" || \
531
-				"$destination_dir" == "ttrss" || \
532
-				"$destination_dir" == "blog" || \
533
-				"$destination_dir" == "owncloud" || \
534
-				"$destination_dir" == "owncloud2" || \
535
-				"$destination_dir" == "ownclouddata" || \
536
-				"$destination_dir" == "mailinglist" ]]; then
515
+                "$destination_dir" == "hubzilladata" || \
516
+                "$destination_dir" == "gogs" || \
517
+                "$destination_dir" == "gogsrepos" || \
518
+                "$destination_dir" == "gogsssh" || \
519
+                "$destination_dir" == "gnusocial" || \
520
+                "$destination_dir" == "gnusocialdata" || \
521
+                "$destination_dir" == "mariadb" || \
522
+                "$destination_dir" == "config" || \
523
+                "$destination_dir" == "letsencrypt" || \
524
+                "$destination_dir" == "wiki" || \
525
+                "$destination_dir" == "wiki2" || \
526
+                "$destination_dir" == "xmpp" || \
527
+                "$destination_dir" == "ipfs" || \
528
+                "$destination_dir" == "dlna" || \
529
+                "$destination_dir" == "tox" || \
530
+                "$destination_dir" == "ssl" || \
531
+                "$destination_dir" == "ttrss" || \
532
+                "$destination_dir" == "blog" || \
533
+                "$destination_dir" == "owncloudrepofiles" || \
534
+                "$destination_dir" == "owncloudrepoconfig" || \
535
+                "$destination_dir" == "owncloudrepodata" || \
536
+                "$destination_dir" == "mailinglist" ]]; then
537 537
         is_valid="no"
538 538
     fi
539 539
 

+ 8
- 7
src/freedombone-backup-remote View File

@@ -330,11 +330,13 @@ function backup_owncloud {
330 330
     if [ -d /etc/owncloud ]; then
331 331
         OWNCLOUD_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Owncloud domain" | awk -F ':' '{print $2}')
332 332
         suspend_site ${OWNCLOUD_DOMAIN_NAME}
333
-        backup_database_to_friend owncloud
334
-        backup_directory_to_friend /root/tempownclouddata ownclouddata
333
+        backup_database_to_friend owncloudrepo
334
+        backup_directory_to_friend /root/tempowncloudrepodata owncloudrepodata
335 335
         echo $"Backing up Owncloud data"
336
-        backup_directory_to_friend /var/lib/owncloud owncloud
337
-        backup_directory_to_friend /etc/owncloud owncloud2
336
+        if [ -d /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs/data ]; then
337
+            backup_directory_to_friend /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs/data owncloudrepofiles
338
+        fi
339
+        backup_directory_to_friend /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs/config owncloudrepoconfig
338 340
         restart_site
339 341
     fi
340 342
 }
@@ -554,9 +556,8 @@ function valid_backup_destination {
554 556
                 "$destination_dir" == "tox" || \
555 557
                 "$destination_dir" == "ssl" || \
556 558
                 "$destination_dir" == "blog" || \
557
-                "$destination_dir" == "owncloud" || \
558
-                "$destination_dir" == "owncloud2" || \
559
-                "$destination_dir" == "ownclouddata" || \
559
+                "$destination_dir" == "owncloudrepo" || \
560
+                "$destination_dir" == "owncloudrepodata" || \
560 561
                 "$destination_dir" == "mailinglist" ]]; then
561 562
         is_valid="no"
562 563
     fi

+ 25
- 16
src/freedombone-restore-local View File

@@ -826,27 +826,36 @@ function restore_owncloud {
826 826
         fi
827 827
     fi
828 828
     if [ $OWNCLOUD_DOMAIN_NAME ]; then
829
-        restore_database owncloud $OWNCLOUD_DOMAIN_NAME
830
-        if [ -d $USB_MOUNT/backup/owncloud2 ]; then
831
-            restore_directory_from_usb /root/tempowncloud2 owncloud2
832
-            cp -r /root/tempowncloud2/etc/owncloud/* /etc/owncloud/
829
+        restore_database owncloudrepo $OWNCLOUD_DOMAIN_NAME
830
+
831
+        if [ -d $USB_MOUNT/backup/owncloudrepofiles ]; then
832
+            restore_directory_from_usb /root/tempowncloudrepofiles owncloudrepofiles
833
+            cp -r /root/tempowncloudrepofiles/* /
833 834
             if [ ! "$?" = "0" ]; then
834 835
                 unmount_drive
835 836
                 exit 982
836 837
             fi
837
-            rm -rf /root/tempowncloud
838
-            rm -rf /root/tempowncloud2
839
-            chown -R www-data:www-data /var/lib/owncloud/data
840
-            chown -R www-data:www-data /var/lib/owncloud/backup
841
-            chown -R www-data:www-data /var/lib/owncloud/assets
842
-            for d in /home/*/ ; do
843
-                USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
844
-                if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
845
-                    occ files:scan $USERNAME
846
-                fi
847
-            done
848
-            ln -s /usr/share/owncloud /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs
838
+            rm -rf /root/tempowncloudrepofiles
839
+        fi
840
+
841
+        if [ -d $USB_MOUNT/backup/owncloudrepoconfig ]; then
842
+            restore_directory_from_usb /root/tempowncloudrepoconfig owncloudrepoconfig
843
+            cp -r /root/tempowncloudrepoconfig/* /
844
+            if [ ! "$?" = "0" ]; then
845
+                unmount_drive
846
+                exit 7825
847
+            fi
848
+            rm -rf /root/tempowncloudrepoconfig
849 849
         fi
850
+
851
+        # re-index the files
852
+        chown -R www-data:www-data /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs
853
+        for d in /home/*/ ; do
854
+            USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
855
+            if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
856
+                /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs/occ files:scan $USERNAME
857
+            fi
858
+        done
850 859
     fi
851 860
 }
852 861
 

+ 23
- 19
src/freedombone-restore-remote View File

@@ -701,31 +701,35 @@ function restore_owncloud {
701 701
     fi
702 702
     if grep -q "Owncloud domain" $COMPLETION_FILE; then
703 703
         OWNCLOUD_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Owncloud domain" | awk -F ':' '{print $2}')
704
-        restore_database_from_friend owncloud $OWNCLOUD_DOMAIN_NAME
705
-        if [ -d $SERVER_DIRECTORY/backup/owncloud ]; then
704
+        restore_database_from_friend owncloudrepo $OWNCLOUD_DOMAIN_NAME
705
+
706
+        if [ -d $SERVER_DIRECTORY/backup/owncloudrepofiles ]; then
706 707
             echo $"Restoring Owncloud installation"
707
-            cp -r /root/tempowncloud/var/lib/owncloud/* /var/lib/owncloud/
708
+            cp -r /root/tempowncloudrepofiles/* /
708 709
             if [ ! "$?" = "0" ]; then
709
-                exit 981
710
+                exit 1458
710 711
             fi
711
-            restore_directory_from_friend /root/tempowncloud2 owncloud2
712
-            cp -r /root/tempowncloud2/etc/owncloud/* /etc/owncloud/
712
+            rm -rf /root/tempowncloudrepofiles
713
+        fi
714
+
715
+        if [ -d $SERVER_DIRECTORY/backup/owncloudrepoconfig ]; then
716
+            echo $"Restoring Owncloud installation"
717
+            cp -r /root/tempowncloudrepoconfig/* /
713 718
             if [ ! "$?" = "0" ]; then
714
-                exit 982
719
+                exit 2571
715 720
             fi
716
-            rm -rf /root/tempowncloud
717
-            rm -rf /root/tempowncloud2
718
-            chown -R www-data:www-data /var/lib/owncloud/data
719
-            chown -R www-data:www-data /var/lib/owncloud/backup
720
-            chown -R www-data:www-data /var/lib/owncloud/assets
721
-            for d in /home/*/ ; do
722
-                USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
723
-                if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
724
-                    occ files:scan $USERNAME
725
-                fi
726
-            done
727
-            ln -s /usr/share/owncloud /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs
721
+            rm -rf /root/tempowncloudrepoconfig
728 722
         fi
723
+        
724
+        chown -R www-data:www-data /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs
725
+
726
+        # re-index files
727
+        for d in /home/*/ ; do
728
+            USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
729
+            if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
730
+                /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs/occ files:scan $USERNAME
731
+            fi
732
+        done
729 733
     fi
730 734
 }
731 735
 

+ 4
- 3
src/freedombone-rmuser View File

@@ -110,9 +110,10 @@ if [ -f /etc/nginx/.htpasswd ]; then
110 110
     fi
111 111
 fi
112 112
 
113
-#if grep -q "install_owncloud" $COMPLETION_FILE; then
114
-#    occ user:delete $MY_USERNAME
115
-#fi
113
+if grep -q "install_owncloud_repo" $COMPLETION_FILE; then
114
+    OWNCLOUD_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Owncloud domain" | awk -F ':' '{print $2}')
115
+    /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs/occ user:delete $MY_USERNAME
116
+fi
116 117
 
117 118
 userdel -r $MY_USERNAME
118 119