Procházet zdrojové kódy

Preparing for hubzilla

Bob Mottram před 9 roky
rodič
revize
7b68fa1847
1 změnil soubory, kde provedl 566 přidání a 20 odebrání
  1. 566
    20
      src/freedombone

+ 566
- 20
src/freedombone Zobrazit soubor

@@ -154,6 +154,13 @@ REDMATRIX_REPO="https://github.com/redmatrix/redmatrix.git"
154 154
 REDMATRIX_ADDONS_REPO="https://github.com/redmatrix/redmatrix-addons.git"
155 155
 REDMATRIX_ADMIN_PASSWORD=
156 156
 
157
+# Domain name for hubzilla installation
158
+HUBZILLA_DOMAIN_NAME=
159
+HUBZILLA_CODE=
160
+HUBZILLA_REPO="https://github.com/redmatrix/hubzilla.git"
161
+HUBZILLA_ADDONS_REPO="https://github.com/redmatrix/hubzilla-addons.git"
162
+HUBZILLA_ADMIN_PASSWORD=
163
+
157 164
 # Domain name for git hosting installation
158 165
 GIT_DOMAIN_NAME=
159 166
 GIT_CODE=
@@ -439,6 +446,7 @@ function show_help {
439 446
   echo '     --blogdomain       Blog domain name'
440 447
   echo '     --ownclouddomain   Owncloud domain name'
441 448
   echo '     --redmatrixdomain  Redmatrix domain name'
449
+  echo '     --hubzilladomain   Hubzilla domain name'
442 450
   echo '     --gitdomain        Git hosting domain name'
443 451
   echo '  -t --time             Domain used as a TLS time source'
444 452
   echo '     --ssh              ssh port number'
@@ -591,6 +599,11 @@ else
591 599
     shift
592 600
     REDMATRIX_DOMAIN_NAME="$1"
593 601
     ;;
602
+    # hubzilla domain name
603
+    --hubzilladomain)
604
+    shift
605
+    HUBZILLA_DOMAIN_NAME="$1"
606
+    ;;
594 607
     # git hosting domain name
595 608
     --gitdomain)
596 609
     shift
@@ -979,6 +992,12 @@ function read_configuration {
979 992
       if grep -q "REDMATRIX_CODE" $CONFIGURATION_FILE; then
980 993
           REDMATRIX_CODE=$(grep "REDMATRIX_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
981 994
       fi
995
+      if grep -q "HUBZILLA_DOMAIN_NAME" $CONFIGURATION_FILE; then
996
+          HUBZILLA_DOMAIN_NAME=$(grep "HUBZILLA_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
997
+      fi
998
+      if grep -q "HUBZILLA_CODE" $CONFIGURATION_FILE; then
999
+          HUBZILLA_CODE=$(grep "HUBZILLA_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
1000
+      fi
982 1001
       if grep -q "OWNCLOUD_DOMAIN_NAME" $CONFIGURATION_FILE; then
983 1002
           OWNCLOUD_DOMAIN_NAME=$(grep "OWNCLOUD_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
984 1003
       fi
@@ -1047,106 +1066,151 @@ function check_domains {
1047 1066
   if [ $WIKI_DOMAIN_NAME ]; then
1048 1067
       test_domain_name "$WIKI_DOMAIN_NAME"
1049 1068
 
1050
-      if [[ "$WIKI_DOMAIN_NAME" == "$OWNCLOUD_DOMAIN_NAME" ]]; then
1069
+      if [[ "$test_domain_name" == "$OWNCLOUD_DOMAIN_NAME" ]]; then
1051 1070
           echo 'Wiki domain name is the same as Owncloud domain name. They must be different'
1052 1071
           exit 73863
1053 1072
       fi
1054
-      if [[ "$WIKI_DOMAIN_NAME" == "$FULLBLOG_DOMAIN_NAME" ]]; then
1073
+      if [[ "$test_domain_name" == "$FULLBLOG_DOMAIN_NAME" ]]; then
1055 1074
           echo 'Wiki domain name is the same as blog domain name. They must be different'
1056 1075
           exit 97326
1057 1076
       fi
1058
-      if [[ "$WIKI_DOMAIN_NAME" == "$MICROBLOG_DOMAIN_NAME" ]]; then
1077
+      if [[ "$test_domain_name" == "$MICROBLOG_DOMAIN_NAME" ]]; then
1059 1078
           echo 'Wiki domain name is the same as microblog domain name. They must be different'
1060 1079
           exit 36827
1061 1080
       fi
1062
-      if [[ "$WIKI_DOMAIN_NAME" == "$REDMATRIX_DOMAIN_NAME" ]]; then
1081
+      if [[ "$test_domain_name" == "$REDMATRIX_DOMAIN_NAME" ]]; then
1063 1082
           echo 'Wiki domain name is the same as redmatrix domain name. They must be different'
1064 1083
           exit 93637
1065 1084
       fi
1085
+      if [[ "$test_domain_name" == "$HUBZILLA_DOMAIN_NAME" ]]; then
1086
+          echo 'Wiki domain name is the same as hubzilla domain name. They must be different'
1087
+          exit 65848
1088
+      fi
1066 1089
   fi
1067 1090
 
1068 1091
   if [ $OWNCLOUD_DOMAIN_NAME ]; then
1069 1092
       test_domain_name "$OWNCLOUD_DOMAIN_NAME"
1070 1093
 
1071
-      if [[ "$OWNCLOUD_DOMAIN_NAME" == "$WIKI_DOMAIN_NAME" ]]; then
1094
+      if [[ "$test_domain_name" == "$WIKI_DOMAIN_NAME" ]]; then
1072 1095
           echo 'Owncloud domain name is the same as wiki domain name. They must be different'
1073 1096
           exit 37994
1074 1097
       fi
1075
-      if [[ "$OWNCLOUD_DOMAIN_NAME" == "$FULLBLOG_DOMAIN_NAME" ]]; then
1098
+      if [[ "$test_domain_name" == "$FULLBLOG_DOMAIN_NAME" ]]; then
1076 1099
           echo 'Owncloud domain name is the same as blog domain name. They must be different'
1077 1100
           exit 37936
1078 1101
       fi
1079
-      if [[ "$OWNCLOUD_DOMAIN_NAME" == "$MICROBLOG_DOMAIN_NAME" ]]; then
1102
+      if [[ "$test_domain_name" == "$MICROBLOG_DOMAIN_NAME" ]]; then
1080 1103
           echo 'Owncloud domain name is the same as microblog domain name. They must be different'
1081 1104
           exit 36896
1082 1105
       fi
1083
-      if [[ "$OWNCLOUD_DOMAIN_NAME" == "$REDMATRIX_DOMAIN_NAME" ]]; then
1106
+      if [[ "$test_domain_name" == "$REDMATRIX_DOMAIN_NAME" ]]; then
1084 1107
           echo 'Owncloud domain name is the same as redmatrix domain name. They must be different'
1085 1108
           exit 79362
1086 1109
       fi
1110
+      if [[ "$test_domain_name" == "$HUBZILLA_DOMAIN_NAME" ]]; then
1111
+          echo 'Owncloud domain name is the same as hubzilla domain name. They must be different'
1112
+          exit 68365
1113
+      fi
1087 1114
   fi
1088 1115
 
1089 1116
   if [ $FULLBLOG_DOMAIN_NAME ]; then
1090 1117
       test_domain_name "$FULLBLOG_DOMAIN_NAME"
1091 1118
 
1092
-      if [[ "$FULLBLOG_DOMAIN_NAME" == "$WIKI_DOMAIN_NAME" ]]; then
1119
+      if [[ "$test_domain_name" == "$WIKI_DOMAIN_NAME" ]]; then
1093 1120
           echo 'Blog domain name is the same as wiki domain name. They must be different'
1094 1121
           exit 62348
1095 1122
       fi
1096
-      if [[ "$FULLBLOG_DOMAIN_NAME" == "$OWNCLOUD_DOMAIN_NAME" ]]; then
1123
+      if [[ "$test_domain_name" == "$OWNCLOUD_DOMAIN_NAME" ]]; then
1097 1124
           echo 'Blog domain name is the same as Owncloud domain name. They must be different'
1098 1125
           exit 84682
1099 1126
       fi
1100
-      if [[ "$FULLBLOG_DOMAIN_NAME" == "$MICROBLOG_DOMAIN_NAME" ]]; then
1127
+      if [[ "$test_domain_name" == "$MICROBLOG_DOMAIN_NAME" ]]; then
1101 1128
           echo 'Blog domain name is the same as microblog domain name. They must be different'
1102 1129
           exit 38236
1103 1130
       fi
1104
-      if [[ "$FULLBLOG_DOMAIN_NAME" == "$REDMATRIX_DOMAIN_NAME" ]]; then
1131
+      if [[ "$test_domain_name" == "$REDMATRIX_DOMAIN_NAME" ]]; then
1105 1132
           echo 'Blog domain name is the same as redmatrix domain name. They must be different'
1106 1133
           exit 36813
1107 1134
       fi
1135
+      if [[ "$test_domain_name" == "$HUBZILLA_DOMAIN_NAME" ]]; then
1136
+          echo 'Blog domain name is the same as hubzilla domain name. They must be different'
1137
+          exit 35483
1138
+      fi
1108 1139
   fi
1109 1140
 
1110 1141
   if [ $MICROBLOG_DOMAIN_NAME ]; then
1111 1142
       test_domain_name "$MICROBLOG_DOMAIN_NAME"
1112 1143
 
1113
-      if [[ "$MICROBLOG_DOMAIN_NAME" == "$WIKI_DOMAIN_NAME" ]]; then
1144
+      if [[ "$test_domain_name" == "$WIKI_DOMAIN_NAME" ]]; then
1114 1145
           echo 'Microblog domain name is the same as wiki domain name. They must be different'
1115 1146
           exit 73924
1116 1147
       fi
1117
-      if [[ "$MICROBLOG_DOMAIN_NAME" == "$OWNCLOUD_DOMAIN_NAME" ]]; then
1148
+      if [[ "$test_domain_name" == "$OWNCLOUD_DOMAIN_NAME" ]]; then
1118 1149
           echo 'Microblog domain name is the same as Owncloud domain name. They must be different'
1119 1150
           exit 73683
1120 1151
       fi
1121
-      if [[ "$MICROBLOG_DOMAIN_NAME" == "$FULLBLOG_DOMAIN_NAME" ]]; then
1152
+      if [[ "$test_domain_name" == "$FULLBLOG_DOMAIN_NAME" ]]; then
1122 1153
           echo 'Microblog domain name is the same as blog domain name. They must be different'
1123 1154
           exit 26832
1124 1155
       fi
1125
-      if [[ "$MICROBLOG_DOMAIN_NAME" == "$REDMATRIX_DOMAIN_NAME" ]]; then
1156
+      if [[ "$test_domain_name" == "$REDMATRIX_DOMAIN_NAME" ]]; then
1126 1157
           echo 'Microblog domain name is the same as redmatrix domain name. They must be different'
1127 1158
           exit 36373
1128 1159
       fi
1160
+      if [[ "$test_domain_name" == "$HUBZILLA_DOMAIN_NAME" ]]; then
1161
+          echo 'Microblog domain name is the same as hubzilla domain name. They must be different'
1162
+          exit 678382
1163
+      fi
1129 1164
   fi
1130 1165
 
1131 1166
   if [ $REDMATRIX_DOMAIN_NAME ]; then
1132 1167
       test_domain_name "$REDMATRIX_DOMAIN_NAME"
1133 1168
 
1134
-      if [[ "$REDMATRIX_DOMAIN_NAME" == "$WIKI_DOMAIN_NAME" ]]; then
1169
+      if [[ "$test_domain_name" == "$WIKI_DOMAIN_NAME" ]]; then
1170
+          echo 'RedMatrix domain name is the same as wiki domain name. They must be different'
1171
+          exit 83682
1172
+      fi
1173
+      if [[ "$test_domain_name" == "$OWNCLOUD_DOMAIN_NAME" ]]; then
1174
+          echo 'RedMatrix domain name is the same as Owncloud domain name. They must be different'
1175
+          exit 65192
1176
+      fi
1177
+      if [[ "$test_domain_name" == "$FULLBLOG_DOMAIN_NAME" ]]; then
1178
+          echo 'RedMatrix domain name is the same as blog domain name. They must be different'
1179
+          exit 74817
1180
+      fi
1181
+      if [[ "$test_domain_name" == "$MICROBLOG_DOMAIN_NAME" ]]; then
1182
+          echo 'RedMatrix domain name is the same as microblog domain name. They must be different'
1183
+          exit 83683
1184
+      fi
1185
+      if [[ "$test_domain_name" == "$HUBZILLA_DOMAIN_NAME" ]]; then
1186
+          echo 'RedMatrix domain name is the same as hubzilla domain name. They must be different'
1187
+          exit 82672
1188
+      fi
1189
+  fi
1190
+
1191
+  if [ $HUBZILLA_DOMAIN_NAME ]; then
1192
+      test_domain_name "$HUBZILLA_DOMAIN_NAME"
1193
+
1194
+      if [[ "$test_domain_name" == "$WIKI_DOMAIN_NAME" ]]; then
1135 1195
           echo 'RedMatrix domain name is the same as wiki domain name. They must be different'
1136 1196
           exit 83682
1137 1197
       fi
1138
-      if [[ "$REDMATRIX_DOMAIN_NAME" == "$OWNCLOUD_DOMAIN_NAME" ]]; then
1198
+      if [[ "$test_domain_name" == "$OWNCLOUD_DOMAIN_NAME" ]]; then
1139 1199
           echo 'RedMatrix domain name is the same as Owncloud domain name. They must be different'
1140 1200
           exit 65192
1141 1201
       fi
1142
-      if [[ "$REDMATRIX_DOMAIN_NAME" == "$FULLBLOG_DOMAIN_NAME" ]]; then
1202
+      if [[ "$test_domain_name" == "$FULLBLOG_DOMAIN_NAME" ]]; then
1143 1203
           echo 'RedMatrix domain name is the same as blog domain name. They must be different'
1144 1204
           exit 74817
1145 1205
       fi
1146
-      if [[ "$REDMATRIX_DOMAIN_NAME" == "$MICROBLOG_DOMAIN_NAME" ]]; then
1206
+      if [[ "$test_domain_name" == "$MICROBLOG_DOMAIN_NAME" ]]; then
1147 1207
           echo 'RedMatrix domain name is the same as microblog domain name. They must be different'
1148 1208
           exit 83683
1149 1209
       fi
1210
+      if [[ "$test_domain_name" == "$REDMATRIX_DOMAIN_NAME" ]]; then
1211
+          echo 'RedMatrix domain name is the same as redmatrix domain name. They must be different'
1212
+          exit 82672
1213
+      fi
1150 1214
   fi
1151 1215
 }
1152 1216
 
@@ -2404,6 +2468,14 @@ function get_mariadb_redmatrix_admin_password {
2404 2468
   fi
2405 2469
 }
2406 2470
 
2471
+function get_mariadb_hubzilla_admin_password {
2472
+  if [ -f /home/$MY_USERNAME/README ]; then
2473
+      if grep -q "MariaDB Hubzilla admin password" /home/$MY_USERNAME/README; then
2474
+          HUBZILLA_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "MariaDB Hubzilla admin password" | awk -F ':' '{print $2}' | sed 's/^ *//')
2475
+      fi
2476
+  fi
2477
+}
2478
+
2407 2479
 function get_mariadb_owncloud_admin_password {
2408 2480
   if [ -f /home/$MY_USERNAME/README ]; then
2409 2481
       if grep -q "Owncloud database password" /home/$MY_USERNAME/README; then
@@ -2422,6 +2494,7 @@ function create_backup_script {
2422 2494
   get_mariadb_password
2423 2495
   get_mariadb_gnusocial_admin_password
2424 2496
   get_mariadb_redmatrix_admin_password
2497
+  get_mariadb_hubzilla_admin_password
2425 2498
   get_mariadb_owncloud_admin_password
2426 2499
   get_mariadb_git_admin_password
2427 2500
 
@@ -2574,6 +2647,47 @@ function create_backup_script {
2574 2647
       echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
2575 2648
       echo '' >> /usr/bin/$BACKUP_SCRIPT_NAME
2576 2649
   fi
2650
+  if grep -Fxq "install_hubzilla" $COMPLETION_FILE; then
2651
+      BACKUP_INCLUDES_DATABASES="yes"
2652
+      echo "if [ ! -d $USB_MOUNT/backup/hubzilla ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
2653
+      echo "  mkdir -p $USB_MOUNT/backup/hubzilla" >> /usr/bin/$BACKUP_SCRIPT_NAME
2654
+      echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
2655
+      echo "if [ ! -d $USB_MOUNT/backup/hubzilladata ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
2656
+      echo "  mkdir -p $USB_MOUNT/backup/hubzilladata" >> /usr/bin/$BACKUP_SCRIPT_NAME
2657
+      echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
2658
+      echo "if [ ! -d /root/temphubzilladata ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
2659
+      echo "  mkdir -p /root/temphubzilladata" >> /usr/bin/$BACKUP_SCRIPT_NAME
2660
+      echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
2661
+      echo 'echo "Obtaining Red Matrix database backup"' >> /usr/bin/$BACKUP_SCRIPT_NAME
2662
+      echo 'mysqldump --password=$DATABASE_PASSWORD hubzilla > /root/temphubzilladata/hubzilla.sql' >> /usr/bin/$BACKUP_SCRIPT_NAME
2663
+      echo "if [ ! -s /root/temphubzilladata/hubzilla.sql ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
2664
+      echo '  echo "Red Matrix database could not be saved"' >> /usr/bin/$BACKUP_SCRIPT_NAME
2665
+      echo '  if [ ! $DATABASE_PASSWORD ]; then' >> /usr/bin/$BACKUP_SCRIPT_NAME
2666
+      echo "    echo 'No MariaDB password was given'" >> /usr/bin/$BACKUP_SCRIPT_NAME
2667
+      echo "  fi" >> /usr/bin/$BACKUP_SCRIPT_NAME
2668
+      echo '  shred -zu /root/temphubzilladata/*' >> /usr/bin/$BACKUP_SCRIPT_NAME
2669
+      echo '  rm -rf /root/temphubzilladata' >> /usr/bin/$BACKUP_SCRIPT_NAME
2670
+      echo "  umount $USB_MOUNT" >> /usr/bin/$BACKUP_SCRIPT_NAME
2671
+      echo "  rm -rf $USB_MOUNT" >> /usr/bin/$BACKUP_SCRIPT_NAME
2672
+      echo '  exit 378' >> /usr/bin/$BACKUP_SCRIPT_NAME
2673
+      echo "fi" >> /usr/bin/$BACKUP_SCRIPT_NAME
2674
+      echo "rsyncrypto -v -r /root/temphubzilladata $USB_MOUNT/backup/hubzilladata $USB_MOUNT/backup/hubzilladata.keys $BACKUP_CERTIFICATE" >> /usr/bin/$BACKUP_SCRIPT_NAME
2675
+      echo 'if [ ! "$?" = "0" ]; then' >> /usr/bin/$BACKUP_SCRIPT_NAME
2676
+      echo "  umount $USB_MOUNT" >> /usr/bin/$BACKUP_SCRIPT_NAME
2677
+      echo "  rm -rf $USB_MOUNT" >> /usr/bin/$BACKUP_SCRIPT_NAME
2678
+      echo '   exit 285' >> /usr/bin/$BACKUP_SCRIPT_NAME
2679
+      echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
2680
+      echo 'shred -zu /root/temphubzilladata/*' >> /usr/bin/$BACKUP_SCRIPT_NAME
2681
+      echo 'rm -rf /root/temphubzilladata' >> /usr/bin/$BACKUP_SCRIPT_NAME
2682
+      echo 'echo "Backing up Red Matrix installation"' >> /usr/bin/$BACKUP_SCRIPT_NAME
2683
+      echo "rsyncrypto -v -r /var/www/$HUBZILLA_DOMAIN_NAME/htdocs $USB_MOUNT/backup/hubzilla $USB_MOUNT/backup/hubzilla.keys $BACKUP_CERTIFICATE" >> /usr/bin/$BACKUP_SCRIPT_NAME
2684
+      echo 'if [ ! "$?" = "0" ]; then' >> /usr/bin/$BACKUP_SCRIPT_NAME
2685
+      echo "  umount $USB_MOUNT" >> /usr/bin/$BACKUP_SCRIPT_NAME
2686
+      echo "  rm -rf $USB_MOUNT" >> /usr/bin/$BACKUP_SCRIPT_NAME
2687
+      echo '   exit 593' >> /usr/bin/$BACKUP_SCRIPT_NAME
2688
+      echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
2689
+      echo '' >> /usr/bin/$BACKUP_SCRIPT_NAME
2690
+  fi
2577 2691
   if grep -Fxq "install_owncloud" $COMPLETION_FILE; then
2578 2692
       BACKUP_INCLUDES_DATABASES="yes"
2579 2693
       echo "if [ ! -d $USB_MOUNT/backup/owncloud ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
@@ -3081,6 +3195,7 @@ function create_restore_script {
3081 3195
   get_mariadb_password
3082 3196
   get_mariadb_gnusocial_admin_password
3083 3197
   get_mariadb_redmatrix_admin_password
3198
+  get_mariadb_hubzilla_admin_password
3084 3199
   get_mariadb_owncloud_admin_password
3085 3200
   get_mariadb_git_admin_password
3086 3201
 
@@ -3496,6 +3611,56 @@ function create_restore_script {
3496 3611
       echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3497 3612
       echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3498 3613
   fi
3614
+  if grep -Fxq "install_hubzilla" $COMPLETION_FILE; then
3615
+      BACKUP_INCLUDES_WEBSITES="yes"
3616
+      echo "if [ -d $USB_MOUNT/backup/hubzilla ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3617
+      echo '  echo "Restoring Red Matrix database"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3618
+      echo '  if [ ! -d /root/temphubzilladata ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3619
+      echo '    mkdir /root/temphubzilladata' >> /usr/bin/$RESTORE_SCRIPT_NAME
3620
+      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3621
+      echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/hubzilladata /root/temphubzilladata $USB_MOUNT/backup/hubzilladata.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3622
+      echo '  if [ ! -f /root/temphubzilladata/usb/backup/hubzilladata/temphubzilladata/hubzilla.sql ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3623
+      echo '    echo "Unable to restore Red Matrix database"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3624
+      echo '    rm -rf /root/temphubzilladata' >> /usr/bin/$RESTORE_SCRIPT_NAME
3625
+      echo "    umount $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
3626
+      echo "    rm -rf $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
3627
+      echo '    exit 504' >> /usr/bin/$RESTORE_SCRIPT_NAME
3628
+      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3629
+      echo '  mysqlsuccess=$(mysql -u root --password=$DATABASE_PASSWORD hubzilla -o < /root/temphubzilladata/usb/backup/hubzilladata/temphubzilladata/hubzilla.sql)' >> /usr/bin/$RESTORE_SCRIPT_NAME
3630
+      echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3631
+      echo '    echo "$mysqlsuccess"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3632
+      echo "    umount $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
3633
+      echo "    rm -rf $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
3634
+      echo '    exit 965' >> /usr/bin/$RESTORE_SCRIPT_NAME
3635
+      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3636
+      echo '  shred -zu /root/temphubzilladata/usb/backup/hubzilladata/temphubzilladata/*' >> /usr/bin/$RESTORE_SCRIPT_NAME
3637
+      echo '  rm -rf /root/temphubzilladata' >> /usr/bin/$RESTORE_SCRIPT_NAME
3638
+      echo '  echo "Restoring Red Matrix installation"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3639
+      echo '  if [ ! -d /root/temphubzilla ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3640
+      echo '    mkdir /root/temphubzilla' >> /usr/bin/$RESTORE_SCRIPT_NAME
3641
+      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3642
+      echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/hubzilla /root/temphubzilla $USB_MOUNT/backup/hubzilla.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3643
+      echo "  rm -rf /var/www/$HUBZILLA_DOMAIN_NAME/htdocs" >> /usr/bin/$RESTORE_SCRIPT_NAME
3644
+      echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3645
+      echo "    cp -r /root/temphubzilla/usb/backup/hubzilla/www/$HUBZILLA_DOMAIN_NAME/htdocs/* /var/www/$HUBZILLA_DOMAIN_NAME/htdocs/" >> /usr/bin/$RESTORE_SCRIPT_NAME
3646
+      echo '  else' >> /usr/bin/$RESTORE_SCRIPT_NAME
3647
+      echo "    mv /root/temphubzilla/usb/backup/hubzilla/www/$HUBZILLA_DOMAIN_NAME/htdocs /var/www/$HUBZILLA_DOMAIN_NAME/" >> /usr/bin/$RESTORE_SCRIPT_NAME
3648
+      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3649
+      echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3650
+      echo "    umount $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
3651
+      echo "    rm -rf $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
3652
+      echo '    exit 759' >> /usr/bin/$RESTORE_SCRIPT_NAME
3653
+      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3654
+      echo '  rm -rf /root/temphubzilla' >> /usr/bin/$RESTORE_SCRIPT_NAME
3655
+      echo '  # Ensure that the bundled SSL cert is being used' >> /usr/bin/$RESTORE_SCRIPT_NAME
3656
+      echo "  if [ -f /etc/ssl/certs/$HUBZILLA_DOMAIN_NAME.bundle.crt ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3657
+      echo "    sed -i 's|$HUBZILLA_DOMAIN_NAME.crt|$HUBZILLA_DOMAIN_NAME.bundle.crt|g' /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME" >> /usr/bin/$RESTORE_SCRIPT_NAME
3658
+      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3659
+      echo "  chmod 777 /var/www/$HUBZILLA_DOMAIN_NAME/htdocs/store/[data]/smarty3" >> /usr/bin/$RESTORE_SCRIPT_NAME
3660
+      echo "  chown -R www-data:www-data /var/www/$HUBZILLA_DOMAIN_NAME/htdocs/*" >> /usr/bin/$RESTORE_SCRIPT_NAME
3661
+      echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3662
+      echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3663
+  fi
3499 3664
 
3500 3665
   if grep -Fxq "install_owncloud" $COMPLETION_FILE; then
3501 3666
       BACKUP_INCLUDES_WEBSITES="yes"
@@ -3842,6 +4007,12 @@ function create_freedns_updater {
3842 4007
           echo "$FREEDNS_WGET$REDMATRIX_CODE=" >> /usr/bin/dynamicdns
3843 4008
       fi
3844 4009
   fi
4010
+  if [ $HUBZILLA_CODE ]; then
4011
+      if [[ $HUBZILLA_CODE != "$DEFAULT_DOMAIN_CODE" ]]; then
4012
+          echo "# $HUBZILLA_DOMAIN_NAME" >> /usr/bin/dynamicdns
4013
+          echo "$FREEDNS_WGET$HUBZILLA_CODE=" >> /usr/bin/dynamicdns
4014
+      fi
4015
+  fi
3845 4016
   if [ $OWNCLOUD_CODE ]; then
3846 4017
       if [[ $OWNCLOUD_CODE != "$DEFAULT_DOMAIN_CODE" ]]; then
3847 4018
           echo "# $OWNCLOUD_DOMAIN_NAME" >> /usr/bin/dynamicdns
@@ -3891,6 +4062,7 @@ function backup_to_friends_servers {
3891 4062
   get_mariadb_password
3892 4063
   get_mariadb_gnusocial_admin_password
3893 4064
   get_mariadb_redmatrix_admin_password
4065
+  get_mariadb_hubzilla_admin_password
3894 4066
   get_mariadb_owncloud_admin_password
3895 4067
   get_mariadb_git_admin_password
3896 4068
 
@@ -4044,6 +4216,53 @@ function backup_to_friends_servers {
4044 4216
       echo 'fi' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4045 4217
       echo '' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4046 4218
   fi
4219
+  if grep -Fxq "install_hubzilla" $COMPLETION_FILE; then
4220
+      BACKUP_INCLUDES_DATABASES="yes"
4221
+      echo 'if [ ! -d $SERVER_DIRECTORY/backup/hubzilla ]; then' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4222
+      echo '  mkdir -p $SERVER_DIRECTORY/backup/hubzilla' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4223
+      echo 'fi' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4224
+      echo 'if [ ! -d $SERVER_DIRECTORY/backup/hubzilladata ]; then' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4225
+      echo '  mkdir -p $SERVER_DIRECTORY/backup/hubzilladata' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4226
+      echo 'fi' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4227
+      echo "if [ ! -d /root/temphubzilladata ]; then" >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4228
+      echo "  mkdir -p /root/temphubzilladata" >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4229
+      echo 'fi' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4230
+      echo 'echo "Obtaining Red Matrix database backup"' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4231
+      echo 'mysqldump --password=$DATABASE_PASSWORD hubzilla > /root/temphubzilladata/hubzilla.sql' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4232
+      echo "if [ ! -s /root/temphubzilladata/hubzilla.sql ]; then" >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4233
+      echo '  echo "Red Matrix database could not be saved"' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4234
+      echo '  if [ ! $DATABASE_PASSWORD ]; then' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4235
+      echo "    echo 'No MariaDB password was given'" >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4236
+      echo "  fi" >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4237
+      echo '  # Send a warning email' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4238
+      echo -n '  echo "Unable to export hubzilla database" | mail -s "Freedombone backup to friends" ' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4239
+      echo "$MY_EMAIL_ADDRESS" >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4240
+      echo '  exit 378' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4241
+      echo "fi" >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4242
+      echo -n 'rsyncrypto -v -r /root/temphubzilladata $SERVER_DIRECTORY/backup/hubzilladata $SERVER_DIRECTORY/backup/hubzilladata.keys ' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4243
+      echo "$BACKUP_CERTIFICATE" >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4244
+      echo 'if [ ! "$?" = "0" ]; then' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4245
+      echo '  shred -zu /root/temphubzilladata/*' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4246
+      echo '  rm -rf /root/temphubzilladata' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4247
+      echo '  # Send a warning email' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4248
+      echo -n '  echo "Unable to encrypt hubzilla database" | mail -s "Freedombone backup to friends" ' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4249
+      echo "$MY_EMAIL_ADDRESS" >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4250
+      echo '  exit 285' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4251
+      echo 'fi' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4252
+      echo 'shred -zu /root/temphubzilladata/*' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4253
+      echo 'rm -rf /root/temphubzilladata' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4254
+      echo 'echo "Backing up Red Matrix installation"' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4255
+      echo -n "rsyncrypto -v -r /var/www/$HUBZILLA_DOMAIN_NAME/htdocs " >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4256
+      echo -n '$SERVER_DIRECTORY/backup/hubzilla $SERVER_DIRECTORY/backup/hubzilla.keys ' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4257
+      echo "$BACKUP_CERTIFICATE" >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4258
+      echo 'if [ ! "$?" = "0" ]; then' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4259
+      echo '  # Send a warning email' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4260
+      echo -n '  echo "Unable to encrypt hubzilla installation" | mail -s "Freedombone backup to friends" ' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4261
+      echo "$MY_EMAIL_ADDRESS" >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4262
+      echo '  exit 593' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4263
+      echo 'fi' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4264
+      echo '' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
4265
+  fi
4047 4266
   if grep -Fxq "install_owncloud" $COMPLETION_FILE; then
4048 4267
       BACKUP_INCLUDES_DATABASES="yes"
4049 4268
       echo 'if [ ! -d $SERVER_DIRECTORY/backup/owncloud ]; then' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
@@ -4703,6 +4922,7 @@ function restore_from_friend {
4703 4922
   get_mariadb_password
4704 4923
   get_mariadb_gnusocial_admin_password
4705 4924
   get_mariadb_redmatrix_admin_password
4925
+  get_mariadb_hubzilla_admin_password
4706 4926
   get_mariadb_owncloud_admin_password
4707 4927
   get_mariadb_git_admin_password
4708 4928
 
@@ -5087,6 +5307,52 @@ function restore_from_friend {
5087 5307
       echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5088 5308
       echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5089 5309
   fi
5310
+  if grep -Fxq "install_hubzilla" $COMPLETION_FILE; then
5311
+      BACKUP_INCLUDES_WEBSITES="yes"
5312
+      echo 'if [ -d $SERVER_DIRECTORY/backup/hubzilla ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5313
+      echo '  echo "Restoring Red Matrix database"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5314
+      echo '  if [ ! -d /root/temphubzilladata ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5315
+      echo '    mkdir /root/temphubzilladata' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5316
+      echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5317
+      echo -n '  rsyncrypto -v -d -r $SERVER_DIRECTORY/backup/hubzilladata /root/temphubzilladata $SERVER_DIRECTORY/backup/hubzilladata.keys ' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5318
+      echo "$BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5319
+      echo '  if [ ! -f /root/temphubzilladata/remoterestore/backup/hubzilladata/temphubzilladata/hubzilla.sql ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5320
+      echo '    echo "Unable to restore Red Matrix database"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5321
+      echo '    rm -rf /root/temphubzilladata' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5322
+      echo '    exit 504' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5323
+      echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5324
+      echo '  mysqlsuccess=$(mysql -u root --password=$DATABASE_PASSWORD hubzilla -o < /root/temphubzilladata/remoterestore/backup/hubzilladata/temphubzilladata/hubzilla.sql)' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5325
+      echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5326
+      echo '    echo "$mysqlsuccess"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5327
+      echo '    exit 965' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5328
+      echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5329
+      echo '  shred -zu /root/temphubzilladata/remoterestore/backup/hubzilladata/temphubzilladata/*' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5330
+      echo '  rm -rf /root/temphubzilladata' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5331
+      echo '  echo "Restoring Red Matrix installation"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5332
+      echo '  if [ ! -d /root/temphubzilla ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5333
+      echo '    mkdir /root/temphubzilla' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5334
+      echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5335
+      echo -n '  rsyncrypto -v -d -r $SERVER_DIRECTORY/backup/hubzilla /root/temphubzilla $SERVER_DIRECTORY/backup/hubzilla.keys ' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5336
+      echo "$BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5337
+      echo "  rm -rf /var/www/$HUBZILLA_DOMAIN_NAME/htdocs" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5338
+      echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5339
+      echo "    cp -r /root/temphubzilla/remoterestore/backup/hubzilla/www/$HUBZILLA_DOMAIN_NAME/htdocs/* /var/www/$HUBZILLA_DOMAIN_NAME/htdocs/" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5340
+      echo '  else' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5341
+      echo "    mv /root/temphubzilla/remoterestore/backup/hubzilla/www/$HUBZILLA_DOMAIN_NAME/htdocs /var/www/$HUBZILLA_DOMAIN_NAME/" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5342
+      echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5343
+      echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5344
+      echo '    exit 759' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5345
+      echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5346
+      echo '  rm -rf /root/temphubzilla' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5347
+      echo '  # Ensure that the bundled SSL cert is being used' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5348
+      echo "  if [ -f /etc/ssl/certs/$HUBZILLA_DOMAIN_NAME.bundle.crt ]; then" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5349
+      echo "    sed -i 's|$HUBZILLA_DOMAIN_NAME.crt|$HUBZILLA_DOMAIN_NAME.bundle.crt|g' /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5350
+      echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5351
+      echo "  chmod 777 /var/www/$HUBZILLA_DOMAIN_NAME/htdocs/store/[data]/smarty3" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5352
+      echo "  chown -R www-data:www-data /var/www/$HUBZILLA_DOMAIN_NAME/htdocs/*" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5353
+      echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5354
+      echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
5355
+  fi
5090 5356
 
5091 5357
   if grep -Fxq "install_owncloud" $COMPLETION_FILE; then
5092 5358
       BACKUP_INCLUDES_WEBSITES="yes"
@@ -9859,6 +10125,272 @@ quit" > $INSTALL_DIR/batch.sql
9859 10125
   echo 'install_redmatrix' >> $COMPLETION_FILE
9860 10126
 }
9861 10127
 
10128
+function install_hubzilla {
10129
+  if grep -Fxq "install_hubzilla" $COMPLETION_FILE; then
10130
+      return
10131
+  fi
10132
+  if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_DEVELOPER" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
10133
+      return
10134
+  fi
10135
+  if [ ! $HUBZILLA_DOMAIN_NAME ]; then
10136
+      return
10137
+  fi
10138
+
10139
+  install_mariadb
10140
+  get_mariadb_password
10141
+  repair_databases_script
10142
+
10143
+  apt-get -y install php5-common php5-cli php5-curl php5-gd php5-mysql php5-mcrypt git
10144
+
10145
+  if [ ! -d /var/www/$HUBZILLA_DOMAIN_NAME ]; then
10146
+      mkdir /var/www/$HUBZILLA_DOMAIN_NAME
10147
+  fi
10148
+  if [ ! -d /var/www/$HUBZILLA_DOMAIN_NAME/htdocs ]; then
10149
+      mkdir /var/www/$HUBZILLA_DOMAIN_NAME/htdocs
10150
+  fi
10151
+
10152
+  if [ ! -f /var/www/$HUBZILLA_DOMAIN_NAME/htdocs/index.php ]; then
10153
+      cd $INSTALL_DIR
10154
+      git clone $HUBZILLA_REPO hubzilla
10155
+
10156
+      rm -rf /var/www/$HUBZILLA_DOMAIN_NAME/htdocs
10157
+      mv hubzilla /var/www/$HUBZILLA_DOMAIN_NAME/htdocs
10158
+      chown -R www-data:www-data /var/www/$HUBZILLA_DOMAIN_NAME/htdocs
10159
+      git clone $HUBZILLA_ADDONS_REPO /var/www/$HUBZILLA_DOMAIN_NAME/htdocs/addon
10160
+      # some extra themes
10161
+      git clone https://github.com/DeadSuperHero/hubzilla-themes /var/www/$HUBZILLA_DOMAIN_NAME/htdocs/hubzilla-themes1
10162
+      cp -r /var/www/$HUBZILLA_DOMAIN_NAME/htdocs/hubzilla-themes1/* view/theme/
10163
+  fi
10164
+
10165
+  get_mariadb_hubzilla_admin_password
10166
+  if [ ! $HUBZILLA_ADMIN_PASSWORD ]; then
10167
+      HUBZILLA_ADMIN_PASSWORD="$(openssl rand -base64 32)"
10168
+      echo '' >> /home/$MY_USERNAME/README
10169
+      echo '' >> /home/$MY_USERNAME/README
10170
+      echo 'Hubzilla' >> /home/$MY_USERNAME/README
10171
+      echo '==========' >> /home/$MY_USERNAME/README
10172
+      echo "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD" >> /home/$MY_USERNAME/README
10173
+      echo '' >> /home/$MY_USERNAME/README
10174
+      chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
10175
+      chmod 600 /home/$MY_USERNAME/README
10176
+  fi
10177
+
10178
+  echo "create database hubzilla;
10179
+CREATE USER 'hubzillaadmin'@'localhost' IDENTIFIED BY '$HUBZILLA_ADMIN_PASSWORD';
10180
+GRANT ALL PRIVILEGES ON hubzilla.* TO 'hubzillaadmin'@'localhost';
10181
+quit" > $INSTALL_DIR/batch.sql
10182
+  chmod 600 $INSTALL_DIR/batch.sql
10183
+  mysql -u root --password="$MARIADB_PASSWORD" < $INSTALL_DIR/batch.sql
10184
+  shred -zu $INSTALL_DIR/batch.sql
10185
+
10186
+  if ! grep -q "/var/www/$HUBZILLA_DOMAIN_NAME/htdocs" /etc/crontab; then
10187
+      echo "12,22,32,42,52 * *   *   *   root cd /var/www/$HUBZILLA_DOMAIN_NAME/htdocs; /usr/bin/timeout 240 /usr/bin/php include/poller.php" >> /etc/crontab
10188
+  fi
10189
+
10190
+  # update the dynamic DNS
10191
+  CURRENT_DDNS_DOMAIN=$HUBZILLA_DOMAIN_NAME
10192
+  add_ddns_domain
10193
+
10194
+  echo 'server {' > /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10195
+  echo '    listen 80;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10196
+  echo "    server_name $HUBZILLA_DOMAIN_NAME;" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10197
+  echo "    root /var/www/$HUBZILLA_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10198
+  echo '    access_log off;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10199
+  echo "    error_log /var/log/nginx/$HUBZILLA_DOMAIN_NAME_error.log $WEBSERVER_LOG_LEVEL;" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10200
+  echo '    limit_conn conn_limit_per_ip 10;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10201
+  echo '    limit_req zone=req_limit_per_ip burst=10 nodelay;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10202
+  echo '    index index.php;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10203
+  echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10204
+  echo '    rewrite ^ https://$server_name$request_uri? permanent;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10205
+  echo '}' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10206
+  echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10207
+  echo 'server {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10208
+  echo '    listen 443 ssl;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10209
+  echo "    root /var/www/$HUBZILLA_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10210
+  echo "    server_name $HUBZILLA_DOMAIN_NAME;" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10211
+  echo "    error_log /var/log/nginx/$HUBZILLA_DOMAIN_NAME_error_ssl.log $WEBSERVER_LOG_LEVEL;" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10212
+  echo '    index index.php;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10213
+  echo '    charset utf-8;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10214
+  echo '    client_max_body_size 20m;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10215
+  echo '    client_body_buffer_size 128k;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10216
+  echo '    access_log off;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10217
+  echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10218
+  echo '    limit_conn conn_limit_per_ip 10;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10219
+  echo '    limit_req zone=req_limit_per_ip burst=10 nodelay;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10220
+  echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10221
+  echo '    ssl on;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10222
+  echo "    ssl_certificate /etc/ssl/certs/$HUBZILLA_DOMAIN_NAME.crt;" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10223
+  echo "    ssl_certificate_key /etc/ssl/private/$HUBZILLA_DOMAIN_NAME.key;" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10224
+  echo "    ssl_dhparam /etc/ssl/certs/$HUBZILLA_DOMAIN_NAME.dhparam;" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10225
+  echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10226
+  echo '    ssl_session_timeout 5m;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10227
+  echo '    ssl_prefer_server_ciphers on;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10228
+  echo '    ssl_session_cache  builtin:1000  shared:SSL:10m;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10229
+  echo "    ssl_protocols $SSL_PROTOCOLS; # not possible to do exclusive" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10230
+  echo "    ssl_ciphers '$SSL_CIPHERS';" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10231
+  echo '    add_header X-Frame-Options DENY;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10232
+  echo '    add_header X-Content-Type-Options nosniff;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10233
+  echo '    add_header Strict-Transport-Security max-age=15768000;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10234
+  echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10235
+  echo '    # rewrite to front controller as default rule' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10236
+  echo '    location / {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10237
+  echo '        rewrite ^/(.*) /index.php?q=$uri&$args last;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10238
+  echo '    }' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10239
+  echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10240
+  echo "    # make sure webfinger and other well known services aren't blocked" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10241
+  echo '    # by denying dot files and rewrite request to the front controller' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10242
+  echo '    location ^~ /.well-known/ {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10243
+  echo '        allow all;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10244
+  echo '    }' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10245
+  echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10246
+  echo '    # statically serve these file types when possible' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10247
+  echo '    # otherwise fall back to front controller' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10248
+  echo '    # allow browser to cache them' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10249
+  echo '    # added .htm for advanced source code editor library' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10250
+  echo '    location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10251
+  echo '        expires 30d;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10252
+  echo '        try_files $uri /index.php?q=$uri&$args;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10253
+  echo '    }' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10254
+  echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10255
+  echo '    # block these file types' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10256
+  echo '    location ~* \.(tpl|md|tgz|log|out)$ {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10257
+  echo '        deny all;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10258
+  echo '    }' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10259
+  echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10260
+  echo '    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10261
+  echo '    # or a unix socket' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10262
+  echo '    location ~* \.php$ {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10263
+  echo '        # Zero-day exploit defense.' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10264
+  echo '        # http://forum.nginx.org/read.php?2,88845,page=3' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10265
+  echo "        # Won't work properly (404 error) if the file is not stored on this" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10266
+  echo "        # server, which is entirely possible with php-fpm/php-fcgi." >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10267
+  echo "        # Comment the 'try_files' line out if you set up php-fpm/php-fcgi on" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10268
+  echo "        # another machine. And then cross your fingers that you won't get hacked." >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10269
+  echo '        try_files $uri $uri/ /index.php;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10270
+  echo '        # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10271
+  echo '        fastcgi_split_path_info ^(.+\.php)(/.+)$;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10272
+  echo '        # With php5-cgi alone:' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10273
+  echo '        # fastcgi_pass 127.0.0.1:9000;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10274
+  echo '        # With php5-fpm:' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10275
+  echo '        fastcgi_pass unix:/var/run/php5-fpm.sock;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10276
+  echo '        include fastcgi_params;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10277
+  echo '        fastcgi_index index.php;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10278
+  echo '        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10279
+  echo '        fastcgi_read_timeout 300;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10280
+  echo '    }' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10281
+  echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10282
+  echo '    # deny access to all dot files' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10283
+  echo '    location ~ /\. {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10284
+  echo '        deny all;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10285
+  echo '    }' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10286
+  echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10287
+  echo '    location ~ /\.ht {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10288
+  echo '      deny  all;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10289
+  echo '    }' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10290
+  echo '}' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
10291
+
10292
+  configure_php
10293
+
10294
+  if [ ! -f /etc/ssl/certs/$HUBZILLA_DOMAIN_NAME.dhparam ]; then
10295
+      freedombone-addcert -h $HUBZILLA_DOMAIN_NAME --dhkey $DH_KEYLENGTH
10296
+      check_certificates $HUBZILLA_DOMAIN_NAME
10297
+  fi
10298
+
10299
+  if [ ! -d /var/www/$HUBZILLA_DOMAIN_NAME/htdocs/view/tpl/smarty3 ]; then
10300
+      mkdir /var/www/$HUBZILLA_DOMAIN_NAME/htdocs/view/tpl/smarty3
10301
+  fi
10302
+  if [ ! -d "/var/www/$HUBZILLA_DOMAIN_NAME/htdocs/store" ]; then
10303
+      mkdir "/var/www/$HUBZILLA_DOMAIN_NAME/htdocs/store"
10304
+  fi
10305
+  if [ ! -d "/var/www/$HUBZILLA_DOMAIN_NAME/htdocs/store/[data]" ]; then
10306
+      mkdir "/var/www/$HUBZILLA_DOMAIN_NAME/htdocs/store/[data]"
10307
+  fi
10308
+  if [ ! -d "/var/www/$HUBZILLA_DOMAIN_NAME/htdocs/store/[data]/smarty3" ]; then
10309
+      mkdir "/var/www/$HUBZILLA_DOMAIN_NAME/htdocs/store/[data]/smarty3"
10310
+      chmod 777 "/var/www/$HUBZILLA_DOMAIN_NAME/htdocs/store/[data]/smarty3"
10311
+  fi
10312
+  chmod 777 /var/www/$HUBZILLA_DOMAIN_NAME/htdocs/view/tpl
10313
+  chown -R www-data:www-data "/var/www/$HUBZILLA_DOMAIN_NAME/htdocs/store"
10314
+  chmod 777 /var/www/$HUBZILLA_DOMAIN_NAME/htdocs/view/tpl/smarty3
10315
+
10316
+  # Ensure that the database gets backed up locally, if remote
10317
+  # backups are not being used
10318
+  backup_databases_script_header
10319
+  echo '' >> /usr/bin/backupdatabases
10320
+  echo '# Backup the Hubzilla database' >> /usr/bin/backupdatabases
10321
+  echo 'TEMPFILE=/root/hubzilla.sql' >> /usr/bin/backupdatabases
10322
+  echo 'DAILYFILE=/var/backups/hubzilla_daily.sql' >> /usr/bin/backupdatabases
10323
+  echo 'mysqldump --password="$MYSQL_PASSWORD" hubzilla > $TEMPFILE' >> /usr/bin/backupdatabases
10324
+  echo 'FILESIZE=$(stat -c%s $TEMPFILE)' >> /usr/bin/backupdatabases
10325
+  echo 'if [ "$FILESIZE" -lt "1024" ]; then' >> /usr/bin/backupdatabases
10326
+  echo '    if [ -f $DAILYFILE ]; then' >> /usr/bin/backupdatabases
10327
+  echo '        cp $DAILYFILE $TEMPFILE' >> /usr/bin/backupdatabases
10328
+  echo '' >> /usr/bin/backupdatabases
10329
+  echo '        # try to restore yesterdays database' >> /usr/bin/backupdatabases
10330
+  echo '        mysql -u root --password="$MYSQL_PASSWORD" hubzilla -o < $DAILYFILE' >> /usr/bin/backupdatabases
10331
+  echo '' >> /usr/bin/backupdatabases
10332
+  echo '        # Send a warning email' >> /usr/bin/backupdatabases
10333
+  echo '        echo "Unable to create a backup of the Hubzilla database. Attempted to restore from yesterdays backup" | mail -s "Hubzilla backup" $EMAIL' >> /usr/bin/backupdatabases
10334
+  echo '    else' >> /usr/bin/backupdatabases
10335
+  echo '        # Send a warning email' >> /usr/bin/backupdatabases
10336
+  echo '        echo "Unable to create a backup of the Hubzilla database." | mail -s "Hubzilla backup" $EMAIL' >> /usr/bin/backupdatabases
10337
+  echo '    fi' >> /usr/bin/backupdatabases
10338
+  echo 'else' >> /usr/bin/backupdatabases
10339
+  echo '    chmod 600 $TEMPFILE' >> /usr/bin/backupdatabases
10340
+  echo '    mv $TEMPFILE $DAILYFILE' >> /usr/bin/backupdatabases
10341
+  echo '' >> /usr/bin/backupdatabases
10342
+  echo '    # Make the backup readable only by root' >> /usr/bin/backupdatabases
10343
+  echo '    chmod 600 $DAILYFILE' >> /usr/bin/backupdatabases
10344
+  echo 'fi' >> /usr/bin/backupdatabases
10345
+
10346
+  echo '' >> /etc/cron.weekly/backupdatabasesweekly
10347
+  echo '# Hubzilla' >> /etc/cron.weekly/backupdatabasesweekly
10348
+  echo 'if [ -f /var/backups/hubzilla_weekly.sql ]; then' >> /etc/cron.weekly/backupdatabasesweekly
10349
+  echo '  cp -f /var/backups/hubzilla_weekly.sql /var/backups/hubzilla_2weekly.sql' >> /etc/cron.weekly/backupdatabasesweekly
10350
+  echo 'fi' >> /etc/cron.weekly/backupdatabasesweekly
10351
+  echo 'if [ -f /var/backups/hubzilla_daily.sql ]; then' >> /etc/cron.weekly/backupdatabasesweekly
10352
+  echo '  cp -f /var/backups/hubzilla_daily.sql /var/backups/hubzilla_weekly.sql' >> /etc/cron.weekly/backupdatabasesweekly
10353
+  echo 'fi' >> /etc/cron.weekly/backupdatabasesweekly
10354
+
10355
+  echo '' >> /etc/cron.monthly/backupdatabasesmonthly
10356
+  echo '# Hubzilla' >> /etc/cron.monthly/backupdatabasesmonthly
10357
+  echo 'if [ -f /var/backups/hubzilla_monthly.sql ]; then' >> /etc/cron.monthly/backupdatabasesmonthly
10358
+  echo '  cp -f /var/backups/hubzilla_monthly.sql /var/backups/hubzilla_2monthly.sql' >> /etc/cron.monthly/backupdatabasesmonthly
10359
+  echo 'fi' >> /etc/cron.monthly/backupdatabasesmonthly
10360
+  echo 'if [ -f /var/backups/hubzilla_weekly.sql ]; then' >> /etc/cron.monthly/backupdatabasesmonthly
10361
+  echo '  cp -f /var/backups/hubzilla_weekly.sql /var/backups/hubzilla_monthly.sql' >> /etc/cron.monthly/backupdatabasesmonthly
10362
+  echo 'fi' >> /etc/cron.monthly/backupdatabasesmonthly
10363
+
10364
+  echo '/usr/bin/repairdatabase hubzilla' >> /etc/cron.hourly/repair
10365
+
10366
+  nginx_ensite $HUBZILLA_DOMAIN_NAME
10367
+  service php5-fpm restart
10368
+  service nginx restart
10369
+  service cron restart
10370
+
10371
+  # some post-install instructions for the user
10372
+  if ! grep -q "To set up your Hubzilla" /home/$MY_USERNAME/README; then
10373
+      echo '' >> /home/$MY_USERNAME/README
10374
+      echo "To set up your Hubzilla site go to" >> /home/$MY_USERNAME/README
10375
+      echo "https://$HUBZILLA_DOMAIN_NAME" >> /home/$MY_USERNAME/README
10376
+      echo 'You will need to have a non self-signed SSL certificate in order' >> /home/$MY_USERNAME/README
10377
+      echo "to use Hubzilla. Put the public certificate in /etc/ssl/certs/$HUBZILLA_DOMAIN_NAME.crt" >> /home/$MY_USERNAME/README
10378
+      echo "and the private certificate in /etc/ssl/private/$HUBZILLA_DOMAIN_NAME.key." >> /home/$MY_USERNAME/README
10379
+      echo 'If there is an intermediate certificate needed (such as with StartSSL) then' >> /home/$MY_USERNAME/README
10380
+      echo 'this will need to be concatenated onto the end of the crt file, like this:' >> /home/$MY_USERNAME/README
10381
+      echo '' >> /home/$MY_USERNAME/README
10382
+      echo "  cat /etc/ssl/certs/$HUBZILLA_DOMAIN_NAME.crt /etc/ssl/chains/startssl-sub.class1.server.ca.pem > /etc/ssl/certs/$HUBZILLA_DOMAIN_NAME.bundle.crt" >> /home/$MY_USERNAME/README
10383
+      echo '' >> /home/$MY_USERNAME/README
10384
+      echo "Then change ssl_certificate to /etc/ssl/certs/$HUBZILLA_DOMAIN_NAME.bundle.crt" >> /home/$MY_USERNAME/README
10385
+      echo "within /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME" >> /home/$MY_USERNAME/README
10386
+      echo '' >> /home/$MY_USERNAME/README
10387
+      chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
10388
+      chmod 600 /home/$MY_USERNAME/README
10389
+  fi
10390
+
10391
+  echo 'install_hubzilla' >> $COMPLETION_FILE
10392
+}
10393
+
9862 10394
 function script_for_attaching_usb_drive {
9863 10395
   if grep -Fxq "script_for_attaching_usb_drive" $COMPLETION_FILE; then
9864 10396
       return
@@ -10140,6 +10672,19 @@ function create_upgrade_script {
10140 10672
       echo 'git pull' >> /etc/cron.weekly/$UPGRADE_SCRIPT_NAME
10141 10673
       echo "chown -R www-data:www-data /var/www/$REDMATRIX_DOMAIN_NAME/htdocs" >> /etc/cron.weekly/$UPGRADE_SCRIPT_NAME
10142 10674
   fi
10675
+  if grep -Fxq "install_hubzilla" $COMPLETION_FILE; then
10676
+      echo '' >> /etc/cron.weekly/$UPGRADE_SCRIPT_NAME
10677
+      echo '# Hubzilla' >> /etc/cron.weekly/$UPGRADE_SCRIPT_NAME
10678
+      echo "cd /var/www/$HUBZILLA_DOMAIN_NAME/htdocs" >> /etc/cron.weekly/$UPGRADE_SCRIPT_NAME
10679
+      echo 'git stash' >> /etc/cron.weekly/$UPGRADE_SCRIPT_NAME
10680
+      echo 'git stash drop' >> /etc/cron.weekly/$UPGRADE_SCRIPT_NAME
10681
+      echo 'git pull' >> /etc/cron.weekly/$UPGRADE_SCRIPT_NAME
10682
+      echo "cd /var/www/$HUBZILLA_DOMAIN_NAME/htdocs/addon" >> /etc/cron.weekly/$UPGRADE_SCRIPT_NAME
10683
+      echo 'git stash' >> /etc/cron.weekly/$UPGRADE_SCRIPT_NAME
10684
+      echo 'git stash drop' >> /etc/cron.weekly/$UPGRADE_SCRIPT_NAME
10685
+      echo 'git pull' >> /etc/cron.weekly/$UPGRADE_SCRIPT_NAME
10686
+      echo "chown -R www-data:www-data /var/www/$HUBZILLA_DOMAIN_NAME/htdocs" >> /etc/cron.weekly/$UPGRADE_SCRIPT_NAME
10687
+  fi
10143 10688
   if grep -Fxq "install_gnu_social" $COMPLETION_FILE; then
10144 10689
       echo '' >> /etc/cron.weekly/$UPGRADE_SCRIPT_NAME
10145 10690
       echo '# GNU Social' >> /etc/cron.weekly/$UPGRADE_SCRIPT_NAME
@@ -10714,6 +11259,7 @@ install_wiki
10714 11259
 install_blog
10715 11260
 install_gnu_social
10716 11261
 install_redmatrix
11262
+#install_hubzilla
10717 11263
 install_dlna_server
10718 11264
 configure_firewall_for_dlna
10719 11265
 install_mediagoblin