Bladeren bron

Merge branch 'stretch' of https://github.com/bashrc/freedombone

Bob Mottram 8 jaren geleden
bovenliggende
commit
e9dc1550df

+ 2
- 0
doc/EN/app_matrix.org Bestand weergeven

@@ -22,6 +22,8 @@
22 22
 
23 23
 Matrix is a federated communications system, typically for multi-user chat, with end-to-end content security features. You can consider it to be like a modernized version of IRC chat where the crypto and access controls have been built in by default. At present Matrix is really only a creature of the clearnet and so there isn't any way to protect the metadata. Despite the talk of security the lack of metadata defenses make this really only suitable for public communications, similar to microblogging or public IRC channels.
24 24
 
25
+Another consideration is that since matrix operates on the usual HTTPS port number (443) this may make it difficult for ISPs or governments to censor this type of communications via port blocking without significant blowback.
26
+
25 27
 * Installation
26 28
 Log into your system with:
27 29
 

+ 27
- 2
src/freedombone-app-cryptpad Bestand weergeven

@@ -122,7 +122,19 @@ function restore_local_cryptpad {
122 122
         temp_restore_dir=/root/tempcryptpad
123 123
         function_check restore_directory_from_usb
124 124
         restore_directory_from_usb $temp_restore_dir cryptpad
125
-        cp -r $temp_restore_dir$CRYPTPAD_DIR/datastore/* $CRYPTPAD_DIR/datastore/
125
+        if [ ! -d $temp_restore_dir$CRYPTPAD_DIR/datastore ]; then
126
+            if [ -d $temp_restore_dir ]; then
127
+                cp -r $temp_restore_dir/* $CRYPTPAD_DIR/datastore/
128
+            else
129
+                systemctl start cryptpad
130
+                echo 'Failed to restore cryptpad'
131
+                rm -rf $temp_restore_dir
132
+                exit 8736529
133
+            fi
134
+        else
135
+            cp -r $temp_restore_dir$CRYPTPAD_DIR/datastore/* $CRYPTPAD_DIR/datastore/
136
+        fi
137
+        rm -rf $temp_restore_dir
126 138
         systemctl start cryptpad
127 139
     fi
128 140
 }
@@ -157,7 +169,20 @@ function restore_remote_cryptpad {
157 169
         temp_restore_dir=/root/tempcryptpad
158 170
         function_check restore_directory_from_usb
159 171
         restore_directory_from_friend $temp_restore_dir cryptpad
160
-        cp -r $temp_restore_dir$CRYPTPAD_DIR/datastore/* $CRYPTPAD_DIR/datastore/
172
+
173
+        if [ ! -d $temp_restore_dir$CRYPTPAD_DIR/datastore ]; then
174
+            if [ -d $temp_restore_dir ]; then
175
+                cp -r $temp_restore_dir/* $CRYPTPAD_DIR/datastore/
176
+            else
177
+                systemctl start cryptpad
178
+                echo 'Failed to restore cryptpad'
179
+                rm -rf $temp_restore_dir
180
+                return
181
+            fi
182
+        else
183
+            cp -r $temp_restore_dir$CRYPTPAD_DIR/datastore/* $CRYPTPAD_DIR/datastore/
184
+        fi
185
+        rm -rf $temp_restore_dir
161 186
         systemctl start cryptpad
162 187
     fi
163 188
 }

+ 10
- 2
src/freedombone-app-dlna Bestand weergeven

@@ -113,7 +113,11 @@ function restore_local_dlna {
113 113
             temp_restore_dir=/root/tempdlna
114 114
             function_check restore_directory_from_usb
115 115
             restore_directory_from_usb $temp_restore_dir dlna
116
-            cp -r $temp_restore_dir/var/cache/minidlna/* /var/cache/minidlna/
116
+            if [ -d $temp_restore_dir/var/cache/minidlna ]; then
117
+                cp -r $temp_restore_dir/var/cache/minidlna/* /var/cache/minidlna/
118
+            else
119
+                cp -r $temp_restore_dir/* /var/cache/minidlna/
120
+            fi
117 121
             if [ ! "$?" = "0" ]; then
118 122
                 rm -rf $temp_restore_dir
119 123
                 function_check set_user_permissions
@@ -139,7 +143,11 @@ function restore_remote_dlna {
139 143
             temp_restore_dir=/root/tempdlna
140 144
             function_check restore_directory_from_friend
141 145
             restore_directory_from_friend $temp_restore_dir dlna
142
-            cp -r $temp_restore_dir/var/cache/minidlna/* /var/cache/minidlna/
146
+            if [ -d $temp_restore_dir/var/cache/minidlna ]; then
147
+                cp -r $temp_restore_dir/var/cache/minidlna/* /var/cache/minidlna/
148
+            else
149
+                cp -r $temp_restore_dir/* /var/cache/minidlna/
150
+            fi
143 151
             if [ ! "$?" = "0" ]; then
144 152
                 exit 982
145 153
             fi

+ 29
- 62
src/freedombone-app-dokuwiki Bestand weergeven

@@ -13,7 +13,7 @@
13 13
 # License
14 14
 # =======
15 15
 #
16
-# Copyright (C) 2014-2016 Bob Mottram <bob@freedombone.net>
16
+# Copyright (C) 2014-2017 Bob Mottram <bob@freedombone.net>
17 17
 #
18 18
 # This program is free software: you can redistribute it and/or modify
19 19
 # it under the terms of the GNU Affero General Public License as published by
@@ -144,59 +144,7 @@ function backup_local_dokuwiki {
144 144
     fi
145 145
 }
146 146
 
147
-function restore_local_dokuwiki_legacy {
148
-    if [ -d /var/lib/dokuwiki ]; then
149
-        echo $"Restoring Legacy Dokuwiki installation"
150
-        function_check get_completion_param
151
-        DOKUWIKI_DOMAIN_NAME=$(get_completion_param "dokuwiki domain")
152
-
153
-        temp_restore_dir=/root/tempdokuwiki
154
-        function_check restore_directory_from_usb
155
-        if [ -d ${USB_MOUNT}/backup/dokuwiki ]; then
156
-            restore_directory_from_usb ${temp_restore_dir} dokuwiki
157
-        else
158
-            restore_directory_from_usb ${temp_restore_dir} wiki
159
-        fi
160
-
161
-        # restore the data
162
-        cp -r ${temp_restore_dir}/var/lib/dokuwiki/data/* /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/data
163
-        if [ ! "$?" = "0" ]; then
164
-            function_check restore_directory_from_usb
165
-            set_user_permissions
166
-            function_check backup_unmount_drive
167
-            backup_unmount_drive
168
-            rm -rf ${temp_restore_dir}
169
-            exit 73562
170
-        fi
171
-
172
-        # restore the users
173
-        cp -r ${temp_restore_dir}/var/lib/dokuwiki/acl/users.auth.php /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/lib/plugins/acl
174
-        cp -r ${temp_restore_dir}/var/lib/dokuwiki/acl/users.auth.php /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/conf
175
-        if [ ! "$?" = "0" ]; then
176
-            function_check restore_directory_from_usb
177
-            set_user_permissions
178
-            function_check backup_unmount_drive
179
-            backup_unmount_drive
180
-            rm -rf ${temp_restore_dir}
181
-            exit 23985
182
-        fi
183
-        rm -rf ${temp_restore_dir}
184
-
185
-        chmod -R 755 /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/data
186
-        chmod -R 755 /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/lib
187
-        chmod 640 /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/lib/plugins/acl/users.auth.php
188
-        chmod 640 /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/conf/users.auth.php
189
-        chown -R www-data:www-data /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs
190
-        echo $"Restore of Legacy Dokuwiki complete"
191
-    fi
192
-}
193
-
194 147
 function restore_local_dokuwiki {
195
-    if [ -d ${USB_MOUNT}/backup/dokuwiki ]; then
196
-        restore_local_dokuwiki_legacy
197
-        return
198
-    fi
199
-
200 148
     echo $"Restoring Dokuwiki installation"
201 149
     function_check get_completion_param
202 150
     DOKUWIKI_DOMAIN_NAME=$(get_completion_param "dokuwiki domain")
@@ -205,7 +153,11 @@ function restore_local_dokuwiki {
205 153
     temp_restore_dir=/root/tempdokuwikidat
206 154
     function_check restore_directory_from_usb
207 155
     restore_directory_from_usb ${temp_restore_dir} dokuwikidat
208
-    cp -r ${temp_restore_dir}/var/www/${DOKUWIKI_DOMAIN_NAME}/htdocs/data/* /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/data
156
+    if [ -d ${temp_restore_dir}/var/www/${DOKUWIKI_DOMAIN_NAME}/htdocs/data ]; then
157
+        cp -r ${temp_restore_dir}/var/www/${DOKUWIKI_DOMAIN_NAME}/htdocs/data/* /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/data
158
+    else
159
+        cp -r ${temp_restore_dir}/* /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/data
160
+    fi
209 161
     if [ ! "$?" = "0" ]; then
210 162
         function_check restore_directory_from_usb
211 163
         set_user_permissions
@@ -220,8 +172,13 @@ function restore_local_dokuwiki {
220 172
     temp_restore_dir=/root/tempdokuwikiacl
221 173
     function_check restore_directory_from_usb
222 174
     restore_directory_from_usb ${temp_restore_dir} dokuwikiacl
223
-    cp ${temp_restore_dir}/var/www/${DOKUWIKI_DOMAIN_NAME}/htdocs/lib/plugins/acl/users.auth.php /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/lib/plugins/acl/
224
-    cp ${temp_restore_dir}/var/www/${DOKUWIKI_DOMAIN_NAME}/htdocs/lib/plugins/acl/users.auth.php /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/conf/
175
+    if [ -d ${temp_restore_dir}/var/www/${DOKUWIKI_DOMAIN_NAME}/htdocs/lib/plugins/acl ]; then
176
+        cp ${temp_restore_dir}/var/www/${DOKUWIKI_DOMAIN_NAME}/htdocs/lib/plugins/acl/users.auth.php /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/lib/plugins/acl/
177
+        cp ${temp_restore_dir}/var/www/${DOKUWIKI_DOMAIN_NAME}/htdocs/lib/plugins/acl/users.auth.php /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/conf/
178
+    else
179
+        cp ${temp_restore_dir}/users.auth.php /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/lib/plugins/acl/
180
+        cp ${temp_restore_dir}/users.auth.php /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/conf/
181
+    fi
225 182
     if [ ! "$?" = "0" ]; then
226 183
         function_check restore_directory_from_usb
227 184
         set_user_permissions
@@ -257,24 +214,34 @@ function restore_remote_dokuwiki {
257 214
 
258 215
     if [ -d $SERVER_DIRECTORY/backup/dokuwikidat ]; then
259 216
         echo $"Restoring Dokuwiki data for $DOKUWIKI_DOMAIN_NAME"
260
-        restore_directory_from_friend /root/tempdokuwikidat dokuwikidat
261
-        cp -r /root/tempdokuwikidat/var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/data/* /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/data/
217
+        temp_restore_dir=/root/tempdokuwikidat
218
+        restore_directory_from_friend $temp_restore_dir dokuwikidat
219
+        if [ -d $temp_restore_dir/var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/data ]; then
220
+            cp -r $temp_restore_dir/var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/data/* /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/data/
221
+        else
222
+            cp -r $temp_restore_dir/* /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/data/
223
+        fi
262 224
         if [ ! "$?" = "0" ]; then
263 225
             exit 92634
264 226
         fi
265
-        rm -rf /root/tempdokuwikidat
227
+        rm -rf $temp_restore_dir
266 228
 
267 229
         echo $"Restore of Dokuwiki data complete"
268 230
     fi
269 231
 
270 232
     if [ -d $SERVER_DIRECTORY/backup/dokuwikiacl ]; then
271 233
         echo $"Restoring Dokuwiki users for $DOKUWIKI_DOMAIN_NAME"
272
-        restore_directory_from_friend /root/tempdokuwikiacl dokuwikiacl
273
-        cp -r /root/tempdokuwikidat/var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/lib/plugins/acl/* /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/lib/plugins/acl/
234
+        temp_restore_dir=/root/tempdokuwikiacl
235
+        restore_directory_from_friend $temp_restore_dir dokuwikiacl
236
+        if [ -d $temp_restore_dir/var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/lib/plugins/acl ]; then
237
+            cp -r $temp_restore_dir/var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/lib/plugins/acl/* /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/lib/plugins/acl/
238
+        else
239
+            cp -r $temp_restore_dir/* /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/lib/plugins/acl/
240
+        fi
274 241
         if [ ! "$?" = "0" ]; then
275 242
             exit 735287
276 243
         fi
277
-        rm -rf /root/tempdokuwikiacl
244
+        rm -rf $temp_restore_dir
278 245
 
279 246
         echo $"Restore of Dokuwiki users complete"
280 247
     fi

+ 26
- 4
src/freedombone-app-emacs Bestand weergeven

@@ -81,7 +81,14 @@ function restore_local_emacs {
81 81
                 echo $"Restoring Emacs config for $USERNAME"
82 82
                 function_check restore_directory_from_usb
83 83
                 restore_directory_from_usb $temp_restore_dir emacs/$USERNAME
84
-                cp -r $temp_restore_dir/home/$USERNAME/.emacs.d /home/$USERNAME/
84
+                if [ -d $temp_restore_dir/home/$USERNAME/.emacs.d ]; then
85
+                    cp -r $temp_restore_dir/home/$USERNAME/.emacs.d /home/$USERNAME/
86
+                else
87
+                    if [ ! -d /home/$USERNAME/.emacs.d ]; then
88
+                        mkdir /home/$USERNAME/.emacs.d
89
+                    fi
90
+                    cp -r $temp_restore_dir/* /home/$USERNAME/.emacs.d
91
+                fi
85 92
                 if [ ! "$?" = "0" ]; then
86 93
                     rm -rf $temp_restore_dir
87 94
                     function_check set_user_permissions
@@ -90,7 +97,11 @@ function restore_local_emacs {
90 97
                     backup_unmount_drive
91 98
                     exit 664
92 99
                 fi
93
-                cp -f $temp_restore_dir/home/$USERNAME/.emacs.d/dotemacs /home/$USERNAME/.emacs
100
+                if [ -d $temp_restore_dir/home/$USERNAME/.emacs.d ]; then
101
+                    cp -f $temp_restore_dir/home/$USERNAME/.emacs.d/dotemacs /home/$USERNAME/.emacs
102
+                else
103
+                    cp -f $temp_restore_dir/dotemacs /home/$USERNAME/.emacs
104
+                fi
94 105
                 rm -rf $temp_restore_dir
95 106
             fi
96 107
         done
@@ -125,7 +136,14 @@ function restore_remote_emacs {
125 136
                 echo $"Restoring Emacs config for $USERNAME"
126 137
                 function_check restore_directory_from_friend
127 138
                 restore_directory_from_friend $temp_restore_dir emacs/$USERNAME
128
-                cp -r $temp_restore_dir/home/$USERNAME/.emacs.d /home/$USERNAME/
139
+                if [ -d $temp_restore_dir/home/$USERNAME/.emacs.d ]; then
140
+                    cp -r $temp_restore_dir/home/$USERNAME/.emacs.d /home/$USERNAME/
141
+                else
142
+                    if [ ! -d /home/$USERNAME/.emacs.d ]; then
143
+                        mkdir /home/$USERNAME/.emacs.d
144
+                    fi
145
+                    cp -r $temp_restore_dir/* /home/$USERNAME/.emacs.d/*
146
+                fi
129 147
                 if [ ! "$?" = "0" ]; then
130 148
                     rm -rf $temp_restore_dir
131 149
                     function_check set_user_permissions
@@ -134,7 +152,11 @@ function restore_remote_emacs {
134 152
                     backup_unmount_drive
135 153
                     exit 664
136 154
                 fi
137
-                cp -f $temp_restore_dir/home/$USERNAME/.emacs.d/dotemacs /home/$USERNAME/.emacs
155
+                if [ -d $temp_restore_dir/home/$USERNAME/.emacs.d ]; then
156
+                    cp -f $temp_restore_dir/home/$USERNAME/.emacs.d/dotemacs /home/$USERNAME/.emacs
157
+                else
158
+                    cp -f $temp_restore_dir/dotemacs /home/$USERNAME/.emacs
159
+                fi
138 160
                 rm -rf $temp_restore_dir
139 161
             fi
140 162
         done

+ 10
- 2
src/freedombone-app-ghost Bestand weergeven

@@ -251,7 +251,11 @@ function restore_local_ghost {
251 251
         function_check restore_directory_from_usb
252 252
         restore_directory_from_usb $temp_restore_dir ghostcontent
253 253
         if [ -d $temp_restore_dir ]; then
254
-            cp -r $temp_restore_dir/var/www/$GHOST_DOMAIN_NAME/htdocs/content/* /var/www/$GHOST_DOMAIN_NAME/htdocs/content/
254
+            if [ -d $temp_restore_dir/var/www/$GHOST_DOMAIN_NAME/htdocs/content ]; then
255
+                cp -r $temp_restore_dir/var/www/$GHOST_DOMAIN_NAME/htdocs/content/* /var/www/$GHOST_DOMAIN_NAME/htdocs/content/
256
+            else
257
+                cp -r $temp_restore_dir/* /var/www/$GHOST_DOMAIN_NAME/htdocs/content/
258
+            fi
255 259
             chown -R ghost:ghost /var/www/$GHOST_DOMAIN_NAME/htdocs/content
256 260
             rm -rf $temp_restore_dir
257 261
         fi
@@ -291,7 +295,11 @@ function restore_remote_ghost {
291 295
     function_check restore_directory_from_friend
292 296
     restore_directory_from_friend $temp_restore_dir ghostcontent
293 297
     if [ -d $temp_restore_dir ]; then
294
-        cp -r $temp_restore_dir/var/www/$GHOST_DOMAIN_NAME/htdocs/content/* /var/www/$GHOST_DOMAIN_NAME/htdocs/content/
298
+        if [ -d $temp_restore_dir/var/www/$GHOST_DOMAIN_NAME/htdocs/content ]; then
299
+            cp -r $temp_restore_dir/var/www/$GHOST_DOMAIN_NAME/htdocs/content/* /var/www/$GHOST_DOMAIN_NAME/htdocs/content/
300
+        else
301
+            cp -r $temp_restore_dir/* /var/www/$GHOST_DOMAIN_NAME/htdocs/content/
302
+        fi
295 303
         chown -R ghost: /var/www/$GHOST_DOMAIN_NAME/htdocs
296 304
         rm -rf $temp_restore_dir
297 305
     fi

+ 36
- 6
src/freedombone-app-gnusocial Bestand weergeven

@@ -430,16 +430,31 @@ function restore_local_gnusocial {
430 430
         function_check restore_directory_from_usb
431 431
         restore_directory_from_usb $temp_restore_dir gnusocialconfig
432 432
         if [ -d $temp_restore_dir ]; then
433
-            cp $temp_restore_dir$gnusocial_dir/backup/config.php $gnusocial_dir/
433
+            if [ -d cp $temp_restore_dir$gnusocial_dir ]; then
434
+                cp $temp_restore_dir$gnusocial_dir/backup/config.php $gnusocial_dir/
435
+                cp -rp $temp_restore_dir$gnusocial_dir/static $gnusocial_dir/
436
+            else
437
+                cp $temp_restore_dir/backup/config.php $gnusocial_dir/
438
+                if [ ! -d $gnusocial_dir/static ]; then
439
+                    mkdir $gnusocial_dir/static
440
+                fi
441
+                cp -rp $temp_restore_dir/static/* $gnusocial_dir/static/
442
+            fi
434 443
             chown www-data:www-data $gnusocial_dir/config.php
435
-            cp -rp $temp_restore_dir$gnusocial_dir/static $gnusocial_dir/
436 444
             chown -R www-data:www-data $gnusocial_dir/static
437 445
             rm -rf $temp_restore_dir
438 446
         fi
439 447
 
440 448
         restore_directory_from_usb $temp_restore_dir gnusocialfile
441 449
         if [ -d $temp_restore_dir ]; then
442
-            cp -rp $temp_restore_dir$gnusocial_dir/file $gnusocial_dir/
450
+            if [ -d cp $temp_restore_dir$gnusocial_dir/file ]; then
451
+                cp -rp $temp_restore_dir$gnusocial_dir/file $gnusocial_dir/
452
+            else
453
+                if [ ! -d $gnusocial_dir/file ]; then
454
+                    mkdir $gnusocial_dir/file
455
+                fi
456
+                cp -rp $temp_restore_dir/* $gnusocial_dir/file
457
+            fi
443 458
             chown -R www-data:www-data $gnusocial_dir/file
444 459
             rm -rf $temp_restore_dir
445 460
         fi
@@ -511,16 +526,31 @@ function restore_remote_gnusocial {
511 526
         function_check restore_directory_from_friend
512 527
         restore_directory_from_friend $temp_restore_dir gnusocialconfig
513 528
         if [ -d $temp_restore_dir ]; then
514
-            cp $temp_restore_dir$gnusocial_dir/backup/config.php $gnusocial_dir/
529
+            if [ -d $temp_restore_dir$gnusocial_dir ]; then
530
+                cp $temp_restore_dir$gnusocial_dir/backup/config.php $gnusocial_dir/
531
+                cp -rp $temp_restore_dir$gnusocial_dir/static $gnusocial_dir/
532
+            else
533
+                cp $temp_restore_dir/backup/config.php $gnusocial_dir/
534
+                if [ ! -d $gnusocial_dir/static ]; then
535
+                    mkdir $gnusocial_dir/static
536
+                fi
537
+                cp -rp $temp_restore_dir/static/* $gnusocial_dir/static/
538
+            fi
515 539
             chown www-data:www-data $gnusocial_dir/config.php
516
-            cp -rp $temp_restore_dir$gnusocial_dir/static $gnusocial_dir/
517 540
             chown -R www-data:www-data $gnusocial_dir/static
518 541
             rm -rf $temp_restore_dir
519 542
         fi
520 543
 
521 544
         restore_directory_from_friend $temp_restore_dir gnusocialfile
522 545
         if [ -d $temp_restore_dir ]; then
523
-            cp -rp $temp_restore_dir$gnusocial_dir/file $gnusocial_dir/
546
+            if [ ! -d $temp_restore_dir$gnusocial_dir/file ]; then
547
+                cp -rp $temp_restore_dir$gnusocial_dir/file $gnusocial_dir/
548
+            else
549
+                if [ ! -d $gnusocial_dir/file ]; then
550
+                    mkdir $gnusocial_dir/file
551
+                fi
552
+                cp -rp $temp_restore_dir/* $gnusocial_dir/file/
553
+            fi
524 554
             chown -R www-data:www-data $gnusocial_dir/file
525 555
             rm -rf $temp_restore_dir
526 556
         fi

+ 30
- 6
src/freedombone-app-gogs Bestand weergeven

@@ -249,7 +249,11 @@ function restore_local_gogs {
249 249
             if [ ! -d /home/${GOGS_USERNAME}/custom ]; then
250 250
                 mkdir -p /home/${GOGS_USERNAME}/custom
251 251
             fi
252
-            cp -r ${temp_restore_dir}/home/${GOGS_USERNAME}/custom/* /home/${GOGS_USERNAME}/custom
252
+            if [ ! -d ${temp_restore_dir}/home/${GOGS_USERNAME}/custom ]; then
253
+                cp -r ${temp_restore_dir}/home/${GOGS_USERNAME}/custom/* /home/${GOGS_USERNAME}/custom
254
+            else
255
+                cp -r ${temp_restore_dir}/* /home/${GOGS_USERNAME}/custom/
256
+            fi
253 257
             if [ ! "$?" = "0" ]; then
254 258
                 function_check set_user_permissions
255 259
                 set_user_permissions
@@ -260,7 +264,11 @@ function restore_local_gogs {
260 264
             echo $"Restoring Gogs repos"
261 265
             function_check restore_directory_from_usb
262 266
             restore_directory_from_usb ${temp_restore_dir}repos gogsrepos
263
-            cp -r ${temp_restore_dir}repos/home/${GOGS_USERNAME}/gogs-repositories/* /home/${GOGS_USERNAME}/gogs-repositories/
267
+            if [ ! -d ${temp_restore_dir}repos/home/${GOGS_USERNAME}/gogs-repositories ]; then
268
+                cp -r ${temp_restore_dir}repos/home/${GOGS_USERNAME}/gogs-repositories/* /home/${GOGS_USERNAME}/gogs-repositories/
269
+            else
270
+                cp -r ${temp_restore_dir}/* /home/${GOGS_USERNAME}/gogs-repositories/
271
+            fi
264 272
             if [ ! "$?" = "0" ]; then
265 273
                 function_check set_user_permissions
266 274
                 set_user_permissions
@@ -274,7 +282,11 @@ function restore_local_gogs {
274 282
             if [ ! -d /home/${GOGS_USERNAME}/.ssh ]; then
275 283
                 mkdir /home/${GOGS_USERNAME}/.ssh
276 284
             fi
277
-            cp -r ${temp_restore_dir}ssh/home/${GOGS_USERNAME}/.ssh/* /home/${GOGS_USERNAME}/.ssh/
285
+            if [ -d ${temp_restore_dir}ssh/home/${GOGS_USERNAME}/.ssh ]; then
286
+                cp -r ${temp_restore_dir}ssh/home/${GOGS_USERNAME}/.ssh/* /home/${GOGS_USERNAME}/.ssh/
287
+            else
288
+                cp -r ${temp_restore_dir}/* /home/${GOGS_USERNAME}/.ssh/
289
+            fi
278 290
             if [ ! "$?" = "0" ]; then
279 291
                 function_check set_user_permissions
280 292
                 set_user_permissions
@@ -338,13 +350,21 @@ function restore_remote_gogs {
338 350
             if [ ! -d /home/${GOGS_USERNAME}/custom ]; then
339 351
                 mkdir -p /home/${GOGS_USERNAME}/custom
340 352
             fi
341
-            cp -r /root/tempgogs/home/${GOGS_USERNAME}/custom/* /home/${GOGS_USERNAME}/custom/
353
+            if [ -d /root/tempgogs/home/${GOGS_USERNAME}/custom ]; then
354
+                cp -r /root/tempgogs/home/${GOGS_USERNAME}/custom/* /home/${GOGS_USERNAME}/custom/
355
+            else
356
+                cp -r /root/tempgogs/* /home/${GOGS_USERNAME}/custom/
357
+            fi
342 358
             if [ ! "$?" = "0" ]; then
343 359
                 exit 58852
344 360
             fi
345 361
             echo $"Restoring Gogs repos"
346 362
             restore_directory_from_friend /root/tempgogsrepos gogsrepos
347
-            cp -r /root/tempgogsrepos/home/${GOGS_USERNAME}/gogs-repositories/* /home/${GOGS_USERNAME}/gogs-repositories/
363
+            if [ -d /root/tempgogsrepos/home/${GOGS_USERNAME}/gogs-repositories ]; then
364
+                cp -r /root/tempgogsrepos/home/${GOGS_USERNAME}/gogs-repositories/* /home/${GOGS_USERNAME}/gogs-repositories/
365
+            else
366
+                cp -r /root/tempgogsrepos/* /home/${GOGS_USERNAME}/gogs-repositories/
367
+            fi
348 368
             if [ ! "$?" = "0" ]; then
349 369
                 exit 7649
350 370
             fi
@@ -353,7 +373,11 @@ function restore_remote_gogs {
353 373
             if [ ! -d /home/${GOGS_USERNAME}/.ssh ]; then
354 374
                 mkdir /home/${GOGS_USERNAME}/.ssh
355 375
             fi
356
-            cp -r /root/tempgogsssh/home/${GOGS_USERNAME}/.ssh/* /home/${GOGS_USERNAME}/.ssh/
376
+            if [ -d /root/tempgogsssh/home/${GOGS_USERNAME}/.ssh ]; then
377
+                cp -r /root/tempgogsssh/home/${GOGS_USERNAME}/.ssh/* /home/${GOGS_USERNAME}/.ssh/
378
+            else
379
+                cp -r /root/tempgogsssh/* /home/${GOGS_USERNAME}/.ssh/
380
+            fi
357 381
             if [ ! "$?" = "0" ]; then
358 382
                 exit 74239
359 383
             fi

+ 20
- 4
src/freedombone-app-htmly Bestand weergeven

@@ -249,8 +249,15 @@ function restore_local_htmly {
249 249
             fi
250 250
             mv /var/www/${HTMLY_DOMAIN_NAME}/htdocs /var/www/${HTMLY_DOMAIN_NAME}/previous
251 251
         fi
252
-        temp_source_dir=$(find ${temp_restore_dir} -name htdocs)
253
-        cp -r ${temp_source_dir} /var/www/${HTMLY_DOMAIN_NAME}/
252
+        if [ -d ${temp_restore_dir}/var/www/${HTMLY_DOMAIN_NAME}/htdocs ]; then
253
+            temp_source_dir=$(find ${temp_restore_dir} -name htdocs)
254
+            cp -r ${temp_source_dir} /var/www/${HTMLY_DOMAIN_NAME}/
255
+        else
256
+            if [ ! -d /var/www/${HTMLY_DOMAIN_NAME}/htdocs ]; then
257
+                mkdir /var/www/${HTMLY_DOMAIN_NAME}/htdocs
258
+            fi
259
+            cp -r ${temp_restore_dir}/* /var/www/${HTMLY_DOMAIN_NAME}/htdocs/
260
+        fi
254 261
         if [ ! "$?" = "0" ]; then
255 262
             if [ -d /var/www/${HTMLY_DOMAIN_NAME}/previous ]; then
256 263
                 mv /var/www/${HTMLY_DOMAIN_NAME}/previous /var/www/${HTMLY_DOMAIN_NAME}/htdocs
@@ -315,8 +322,17 @@ function restore_remote_htmly {
315 322
             fi
316 323
             mv /var/www/${HTMLY_DOMAIN_NAME}/htdocs /var/www/${HTMLY_DOMAIN_NAME}/previous
317 324
         fi
318
-        temp_source_dir=$(find ${temp_restore_dir} -name htdocs)
319
-        cp -r ${temp_source_dir} /var/www/${HTMLY_DOMAIN_NAME}/
325
+
326
+        if [ -d ${temp_restore_dir}/var/www/${HTMLY_DOMAIN_NAME}/htdocs ]; then
327
+            temp_source_dir=$(find ${temp_restore_dir} -name htdocs)
328
+            cp -r ${temp_source_dir} /var/www/${HTMLY_DOMAIN_NAME}/
329
+        else
330
+            if [ ! -d /var/www/${HTMLY_DOMAIN_NAME}/htdocs ]; then
331
+                mkdir /var/www/${HTMLY_DOMAIN_NAME}/htdocs
332
+            fi
333
+            cp -r ${temp_restore_dir}/* /var/www/${HTMLY_DOMAIN_NAME}/htdocs/
334
+        fi
335
+
320 336
         if [ ! "$?" = "0" ]; then
321 337
             if [ -d /var/www/${HTMLY_DOMAIN_NAME}/previous ]; then
322 338
                 mv /var/www/${HTMLY_DOMAIN_NAME}/previous /var/www/${HTMLY_DOMAIN_NAME}/htdocs

+ 10
- 2
src/freedombone-app-ipfs Bestand weergeven

@@ -119,7 +119,11 @@ function restore_local_ipfs {
119 119
         function_check restore_directory_from_usb
120 120
         restore_directory_from_usb $temp_restore_dir ipfs
121 121
         ADMIN_USERNAME=$(get_completion_param "Admin user")
122
-        cp -rf $temp_restore_dir/home/$ADMIN_USERNAME/.ipfs/* /home/$ADMIN_USERNAME/.ipfs
122
+        if [ -d $temp_restore_dir/home/$ADMIN_USERNAME/.ipfs ]; then
123
+            cp -rf $temp_restore_dir/home/$ADMIN_USERNAME/.ipfs/* /home/$ADMIN_USERNAME/.ipfs
124
+        else
125
+            cp -rf $temp_restore_dir/* /home/$ADMIN_USERNAME/.ipfs
126
+        fi
123 127
         if [ ! "$?" = "0" ]; then
124 128
             rm -rf $temp_restore_dir
125 129
             function_check set_user_permissions
@@ -151,7 +155,11 @@ function restore_remote_ipfs {
151 155
         temp_restore_dir=/root/tempipfs
152 156
         function_check restore_directory_from_friend
153 157
         restore_directory_from_friend $temp_restore_dir ipfs
154
-        cp -rf $temp_restore_dir/home/$ADMIN_USERNAME/.ipfs/* /home/$ADMIN_USERNAME/.ipfs
158
+        if [ -d $temp_restore_dir/home/$ADMIN_USERNAME/.ipfs ]; then
159
+            cp -rf $temp_restore_dir/home/$ADMIN_USERNAME/.ipfs/* /home/$ADMIN_USERNAME/.ipfs
160
+        else
161
+            cp -rf $temp_restore_dir/* /home/$ADMIN_USERNAME/.ipfs
162
+        fi
155 163
         if [ ! "$?" = "0" ]; then
156 164
             function_check set_user_permissions
157 165
             set_user_permissions

+ 26
- 4
src/freedombone-app-kanboard Bestand weergeven

@@ -243,14 +243,25 @@ function restore_local_kanboard {
243 243
         function_check restore_directory_from_usb
244 244
         restore_directory_from_usb $temp_restore_dir kanboardconfig
245 245
         if [ -d $temp_restore_dir ]; then
246
-            cp $temp_restore_dir$kanboard_dir/backup/config.php $kanboard_dir/
246
+            if [ -d $temp_restore_dir$kanboard_dir/backup ]; then
247
+                cp $temp_restore_dir$kanboard_dir/backup/config.php $kanboard_dir/
248
+            else
249
+                cp $temp_restore_dir/config.php $kanboard_dir/
250
+            fi
247 251
             chown www-data:www-data $kanboard_dir/config.php
248 252
             rm -rf $temp_restore_dir
249 253
         fi
250 254
 
251 255
         restore_directory_from_usb $temp_restore_dir kanboardfile
252 256
         if [ -d $temp_restore_dir ]; then
253
-            cp -rp $temp_restore_dir$kanboard_dir/data $kanboard_dir/
257
+            if [ -d $temp_restore_dir$kanboard_dir/data ]; then
258
+                cp -rp $temp_restore_dir$kanboard_dir/data $kanboard_dir/
259
+            else
260
+                if [ ! -d $kanboard_dir/data ]; then
261
+                    mkdir $kanboard_dir/data
262
+                fi
263
+                cp -rp $temp_restore_dir/* $kanboard_dir/data/
264
+            fi
254 265
             chown -R www-data:www-data $kanboard_dir/data
255 266
             rm -rf $temp_restore_dir
256 267
         fi
@@ -313,14 +324,25 @@ function restore_remote_kanboard {
313 324
         function_check restore_directory_from_friend
314 325
         restore_directory_from_friend $temp_restore_dir kanboardconfig
315 326
         if [ -d $temp_restore_dir ]; then
316
-            cp $temp_restore_dir$kanboard_dir/backup/config.php $kanboard_dir/
327
+            if [ -d $temp_restore_dir$kanboard_dir/backup ]; then
328
+                cp $temp_restore_dir$kanboard_dir/backup/config.php $kanboard_dir/
329
+            else
330
+                cp $temp_restore_dir/config.php $kanboard_dir/
331
+            fi
317 332
             chown www-data:www-data $kanboard_dir/config.php
318 333
             rm -rf $temp_restore_dir
319 334
         fi
320 335
 
321 336
         restore_directory_from_friend $temp_restore_dir kanboardfile
322 337
         if [ -d $temp_restore_dir ]; then
323
-            cp -rp $temp_restore_dir$kanboard_dir/data $kanboard_dir/
338
+            if [ -d $temp_restore_dir$kanboard_dir/data ]; then
339
+                cp -rp $temp_restore_dir$kanboard_dir/data $kanboard_dir/
340
+            else
341
+                if [ ! -d $kanboard_dir/data ]; then
342
+                    mkdir $kanboard_dir/data
343
+                fi
344
+                cp -rp $temp_restore_dir/* $kanboard_dir/data/
345
+            fi
324 346
             chown -R www-data:www-data $kanboard_dir/data
325 347
             rm -rf $temp_restore_dir
326 348
         fi

+ 26
- 4
src/freedombone-app-keyserver Bestand weergeven

@@ -202,7 +202,11 @@ function restore_local_keyserver {
202 202
     temp_restore_dir=/root/tempkeyserverconfig
203 203
     function_check restore_directory_from_usb
204 204
     restore_directory_from_usb $temp_restore_dir keyserverconfig
205
-    cp -r $temp_restore_dir/etc/sks/* /etc/sks/
205
+    if [ -d $temp_restore_dir/etc/sks ]; then
206
+        cp -r $temp_restore_dir/etc/sks/* /etc/sks/
207
+    else
208
+        cp -r $temp_restore_dir/* /etc/sks/
209
+    fi
206 210
     rm -rf $temp_restore_dir
207 211
     chown -Rc debian-sks: /etc/sks/sksconf
208 212
     chown -Rc debian-sks: /etc/sks/mailsync
@@ -211,7 +215,14 @@ function restore_local_keyserver {
211 215
     function_check restore_directory_from_usb
212 216
     restore_directory_from_usb $temp_restore_dir keyserver
213 217
     mv /var/lib/sks/DB /var/lib/sks/DB_prev
214
-    cp -r $temp_restore_dir/var/lib/sks/DB /var/lib/sks/DB
218
+    if [ -d $temp_restore_dir/var/lib/sks/DB ]; then
219
+        cp -r $temp_restore_dir/var/lib/sks/DB /var/lib/sks/DB
220
+    else
221
+        if [ ! -d /var/lib/sks/DB ]; then
222
+            mkdir /var/lib/sks/DB
223
+        fi
224
+        cp -r $temp_restore_dir/* /var/lib/sks/DB
225
+    fi
215 226
     if [ ! "$?" = "0" ]; then
216 227
         # restore the old database
217 228
         rm -rf /var/lib/sks/DB
@@ -272,7 +283,11 @@ function restore_remote_keyserver {
272 283
     temp_restore_dir=/root/tempkeyserverconfig
273 284
     function_check restore_directory_from_friend
274 285
     restore_directory_from_friend $temp_restore_dir keyserverconfig
275
-    cp -r $temp_restore_dir/etc/sks/* /etc/sks/
286
+    if [ -d $temp_restore_dir/etc/sks ]; then
287
+        cp -r $temp_restore_dir/etc/sks/* /etc/sks/
288
+    else
289
+        cp -r $temp_restore_dir/* /etc/sks/
290
+    fi
276 291
     rm -rf $temp_restore_dir
277 292
     chown -Rc debian-sks: /etc/sks/sksconf
278 293
     chown -Rc debian-sks: /etc/sks/mailsync
@@ -281,7 +296,14 @@ function restore_remote_keyserver {
281 296
     function_check restore_directory_from_friend
282 297
     restore_directory_from_friend $temp_restore_dir keyserver
283 298
     mv /var/lib/sks/DB /var/lib/sks/DB_prev
284
-    cp -r $temp_restore_dir/var/lib/sks/DB /var/lib/sks/DB
299
+    if [ -d $temp_restore_dir/var/lib/sks/DB ]; then
300
+        cp -r $temp_restore_dir/var/lib/sks/DB /var/lib/sks/DB
301
+    else
302
+        if [ ! -d /var/lib/sks/DB ]; then
303
+            mkdir /var/lib/sks/DB
304
+        fi
305
+        cp -r $temp_restore_dir/* /var/lib/sks/DB
306
+    fi
285 307
     if [ ! "$?" = "0" ]; then
286 308
         # restore the old database
287 309
         rm -rf /var/lib/sks/DB

+ 51
- 4
src/freedombone-app-matrix Bestand weergeven

@@ -54,14 +54,42 @@ MATRIX_REPO="https://github.com/matrix-org/synapse"
54 54
 MATRIX_COMMIT='c45dc6c62aa2a2e83a10d8116a709dfd8c144e3c'
55 55
 REPORT_STATS="no"
56 56
 MATRIX_SECRET=
57
+MATRIX_EXPIRE_MONTHS=1
57 58
 
58 59
 matrix_variables=(ONION_ONLY
59 60
                   MY_USERNAME
60 61
                   MATRIX_SECRET
61 62
                   DEFAULT_DOMAIN_NAME
62 63
                   MATRIX_DOMAIN_NAME
64
+                  MATRIX_EXPIRE_MONTHS
63 65
                   MATRIX_CODE)
64 66
 
67
+function matrix_expire_old_posts {
68
+    read_config_param MY_USERNAME
69
+    read_config_param MATRIX_DOMAIN_NAME
70
+    read_config_param MATRIX_EXPIRE_MONTHS
71
+    read_config_param MATRIX_PORT
72
+
73
+    matrix_remove_posts=/usr/bin/matrix-remove
74
+    echo '#!/bin/bash' > $matrix_remove_posts
75
+    echo "cd $MATRIX_DATA_DIR" >> $matrix_remove_posts
76
+    echo 'ROOM=$1' >> $matrix_remove_posts
77
+    echo "ADMIN=\"@${MY_USERNAME}:$MATRIX_DOMAIN_NAME\"" >> $matrix_remove_posts
78
+    echo "TIME='$MATRIX_EXPIRE_MONTHS months ago'" >> $matrix_remove_posts
79
+    echo "UNIX_TIMESTAMP=\$(date +%s%3N --date='TZ=\"UTC+0\" '\"\$TIME\")" >> $matrix_remove_posts
80
+    echo 'BUSY="pragma busy_timeout=20000"' >> $matrix_remove_posts
81
+    echo "BUFFER=\$(sqlite3 homeserver.db \"\$BUSY;select event_id from events where type='m.room.message' and received_ts<'\$UNIX_TIMESTAMP' and room_id='\$ROOM' order by received_ts desc limit 1;\")" >> $matrix_remove_posts
82
+    echo "EVENT_ID=\$(echo \$BUFFER|awk '{print \$2}')" >> $matrix_remove_posts
83
+
84
+    echo "BUFFER=\$(sqlite3 homeserver.db \"\$BUSY;select token from access_tokens where user_id like '\$ADMIN' order by id desc limit 1;\")" >> $matrix_remove_posts
85
+    echo "TOKEN=\$(echo \$BUFFER|awk '{print \$2}')" >> $matrix_remove_posts
86
+
87
+    echo 'set -x' >> $matrix_remove_posts
88
+    echo "curl -v -X POST 'https://$MATRIX_DOMAIN_NAME/_matrix/client/r0/admin/purge_history/'\$ROOM'/'\$EVENT_ID'?access_token='\$TOKEN" >> $matrix_remove_posts
89
+
90
+    chmod +x $matrix_remove_posts
91
+}
92
+
65 93
 function logging_on_matrix {
66 94
     if [ -f /var/lib/matrix/homeserver.yaml ]; then
67 95
         if ! grep -q "log_file: /etc/matrix/homeserver.log" /var/lib/matrix/homeserver.yaml; then
@@ -415,7 +443,11 @@ function restore_local_matrix {
415 443
         temp_restore_dir=/root/tempmatrix
416 444
         function_check restore_directory_from_usb
417 445
         restore_directory_from_usb $temp_restore_dir matrix
418
-        cp -r $temp_restore_dir/etc/matrix/* /etc/matrix
446
+        if [ -d $temp_restore_dir/etc/matrix ]; then
447
+            cp -r $temp_restore_dir/etc/matrix/* /etc/matrix
448
+        else
449
+            cp -r $temp_restore_dir/* /etc/matrix/
450
+        fi
419 451
         if [ ! "$?" = "0" ]; then
420 452
             function_check backup_unmount_drive
421 453
             backup_unmount_drive
@@ -426,7 +458,11 @@ function restore_local_matrix {
426 458
 
427 459
         temp_restore_dir=/root/tempmatrixdata
428 460
         restore_directory_from_usb $temp_restore_dir matrixdata
429
-        cp -r $temp_restore_dir$MATRIX_DATA_DIR/* $MATRIX_DATA_DIR
461
+        if [ -d $temp_restore_dir$MATRIX_DATA_DIR ]; then
462
+            cp -r $temp_restore_dir$MATRIX_DATA_DIR/* $MATRIX_DATA_DIR
463
+        else
464
+            cp -r $temp_restore_dir/* $MATRIX_DATA_DIR/
465
+        fi
430 466
         if [ ! "$?" = "0" ]; then
431 467
             function_check backup_unmount_drive
432 468
             backup_unmount_drive
@@ -472,7 +508,11 @@ function restore_remote_matrix {
472 508
         temp_restore_dir=/root/tempmatrix
473 509
         function_check restore_directory_from_friend
474 510
         restore_directory_from_friend $temp_restore_dir matrix
475
-        cp -r $temp_restore_dir/etc/matrix/* /etc/matrix
511
+        if [ -d $temp_restore_dir/etc/matrix ]; then
512
+            cp -r $temp_restore_dir/etc/matrix/* /etc/matrix
513
+        else
514
+            cp -r $temp_restore_dir/* /etc/matrix/
515
+        fi
476 516
         if [ ! "$?" = "0" ]; then
477 517
             exit 38935
478 518
         fi
@@ -481,7 +521,11 @@ function restore_remote_matrix {
481 521
 
482 522
         temp_restore_dir=/root/tempmatrixdata
483 523
         restore_directory_from_friend $temp_restore_dir matrixdata
484
-        cp -r $temp_restore_dir$MATRIX_DATA_DIR/* $MATRIX_DATA_DIR
524
+        if [ -d $temp_restore_dir$MATRIX_DATA_DIR ]; then
525
+            cp -r $temp_restore_dir$MATRIX_DATA_DIR/* $MATRIX_DATA_DIR
526
+        else
527
+            cp -r $temp_restore_dir/* $MATRIX_DATA_DIR/
528
+        fi
485 529
         if [ ! "$?" = "0" ]; then
486 530
             exit 60923
487 531
         fi
@@ -635,6 +679,9 @@ function install_home_server {
635 679
     fi
636 680
     chmod -R 700 $MATRIX_DATA_DIR/homeserver.db
637 681
 
682
+    cd $MATRIX_DATA_DIR
683
+    sqlite3 homeserver.db "PRAGMA auto_vacuum = FULL;"
684
+
638 685
     MATRIX_ONION_HOSTNAME=$(add_onion_service matrix ${MATRIX_PORT} ${MATRIX_ONION_PORT})
639 686
     echo "HiddenServicePort ${MATRIX_HTTP_PORT} 127.0.0.1:${MATRIX_FEDERATION_ONION_PORT}" >> /etc/tor/torrc
640 687
     systemctl restart tor

+ 25
- 8
src/freedombone-app-mediagoblin Bestand weergeven

@@ -177,7 +177,11 @@ function restore_local_mediagoblin {
177 177
         temp_restore_dir=/root/tempmediagoblin
178 178
         function_check restore_directory_from_usb
179 179
         restore_directory_from_usb ${temp_restore_dir} mediagoblin
180
-        cp -r ${temp_restore_dir}$MEDIAGOBLIN_BASE_DIR/* $MEDIAGOBLIN_BASE_DIR/
180
+        if [ -d ${temp_restore_dir}$MEDIAGOBLIN_BASE_DIR ]; then
181
+            cp -r ${temp_restore_dir}$MEDIAGOBLIN_BASE_DIR/* $MEDIAGOBLIN_BASE_DIR/
182
+        else
183
+            cp -r ${temp_restore_dir}/* $MEDIAGOBLIN_BASE_DIR/
184
+        fi
181 185
         if [ ! "$?" = "0" ]; then
182 186
             function_check restore_directory_from_usb
183 187
             set_user_permissions
@@ -186,7 +190,11 @@ function restore_local_mediagoblin {
186 190
             exit 45327
187 191
         fi
188 192
         restore_directory_from_usb ${temp_restore_dir}2 mediagoblindata
189
-        cp -r ${temp_restore_dir}2/var/lib/mediagoblin/* /var/lib/mediagoblin/
193
+        if [ -d ${temp_restore_dir}2/var/lib/mediagoblin ]; then
194
+            cp -r ${temp_restore_dir}2/var/lib/mediagoblin/* /var/lib/mediagoblin/
195
+        else
196
+            cp -r ${temp_restore_dir}2/* /var/lib/mediagoblin/
197
+        fi
190 198
         if [ ! "$?" = "0" ]; then
191 199
             function_check set_user_permissions
192 200
             set_user_permissions
@@ -214,21 +222,30 @@ function backup_remote_mediagoblin {
214 222
 function restore_remote_mediagoblin {
215 223
     MEDIAGOBLIN_BASE_DIR=/var/www/$MEDIAGOBLIN_DOMAIN_NAME/htdocs
216 224
     if [ -d $SERVER_DIRECTORY/backup/mediagoblin ]; then
225
+        temp_restore_dir=/root/tempmediagoblin
217 226
         function_check get_completion_param
218 227
         MEDIAGOBLIN_DOMAIN_NAME=$(get_completion_param "mediagoblin domain")
219 228
         function_check restore_directory_from_friend
220
-        restore_directory_from_friend /root/tempmediagoblin mediagoblin
221
-        cp -r /root/tempmediagoblin/var/lib/mediagoblin/* /var/lib/mediagoblin/
229
+        restore_directory_from_friend $temp_restore_dir mediagoblin
230
+        if [ -d ${temp_restore_dir}$MEDIAGOBLIN_BASE_DIR ]; then
231
+            cp -r ${temp_restore_dir}$MEDIAGOBLIN_BASE_DIR/* $MEDIAGOBLIN_BASE_DIR/
232
+        else
233
+            cp -r ${temp_restore_dir}/* $MEDIAGOBLIN_BASE_DIR/
234
+        fi
222 235
         if [ ! "$?" = "0" ]; then
223 236
             exit 264824
224 237
         fi
225
-        restore_directory_from_friend /root/tempmediagoblin2 mediagoblindata
226
-        cp -r /root/tempmediagoblin/var/lib/mediagoblin/* /var/lib/mediagoblin/
238
+        restore_directory_from_friend ${temp_restore_dir}2 mediagoblindata
239
+        if [ -d ${temp_restore_dir}2/var/lib/mediagoblin ]; then
240
+            cp -r ${temp_restore_dir}2/var/lib/mediagoblin/* /var/lib/mediagoblin/
241
+        else
242
+            cp -r ${temp_restore_dir}2/* /var/lib/mediagoblin/
243
+        fi
227 244
         if [ ! "$?" = "0" ]; then
228 245
             exit 268492
229 246
         fi
230
-        rm -rf /root/tempmediagoblin
231
-        rm -rf /root/tempmediagoblin2
247
+        rm -rf ${temp_restore_dir}
248
+        rm -rf ${temp_restore_dir}2
232 249
         chown -hR mediagoblin:www-data $MEDIAGOBLIN_BASE_DIR
233 250
         chown -hR mediagoblin:www-data /var/lib/mediagoblin
234 251
         chmod -R g+wx /var/lib/mediagoblin

+ 25
- 5
src/freedombone-app-mumble Bestand weergeven

@@ -107,7 +107,11 @@ function restore_local_mumble {
107 107
         function_check restore_directory_from_usb
108 108
         restore_directory_from_usb $temp_restore_dir voip
109 109
         restore_directory_from_usb $temp_restore_dir mumble
110
-        cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/mumble-server.ini /etc/
110
+        if [ -d $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup ]; then
111
+            cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/mumble-server.ini /etc/
112
+        else
113
+            cp -f $temp_restore_dir/mumble-server.ini /etc/
114
+        fi
111 115
         if [ ! "$?" = "0" ]; then
112 116
             rm -rf $temp_restore_dir
113 117
             function_check set_user_permissions
@@ -116,7 +120,11 @@ function restore_local_mumble {
116 120
             backup_unmount_drive
117 121
             exit 3679
118 122
         fi
119
-        cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/mumble-server.sqlite /var/lib/mumble-server/
123
+        if [ -d $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup ]; then
124
+            cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/mumble-server.sqlite /var/lib/mumble-server/
125
+        else
126
+            cp -f $temp_restore_dir/mumble-server.sqlite /var/lib/mumble-server/
127
+        fi
120 128
         if [ ! "$?" = "0" ]; then
121 129
             rm -rf $temp_restore_dir
122 130
             function_check set_user_permissions
@@ -152,17 +160,29 @@ function restore_remote_mumble {
152 160
         temp_restore_dir=/root/tempmumble
153 161
         function_check restore_directory_from_friend
154 162
         restore_directory_from_friend $temp_restore_dir mumble
155
-        cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/mumble-server.ini /etc/
163
+        if [ -d $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup ]; then
164
+            cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/mumble-server.ini /etc/
165
+        else
166
+            cp -f $temp_restore_dir/mumble-server.ini /etc/
167
+        fi
156 168
         if [ ! "$?" = "0" ]; then
157 169
             rm -rf $temp_restore_dir
158 170
             exit 7823
159 171
         fi
160
-        cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/sipwitch.conf /etc/sipwitch.conf
172
+        if [ -d $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup ]; then
173
+            cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/sipwitch.conf /etc/sipwitch.conf
174
+        else
175
+            cp -f $temp_restore_dir/sipwitch.conf /etc/sipwitch.conf
176
+        fi
161 177
         if [ ! "$?" = "0" ]; then
162 178
             rm -rf $temp_restore_dir
163 179
             exit 7823
164 180
         fi
165
-        cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/mumble-server.sqlite /var/lib/mumble-server/
181
+        if [ $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup ]; then
182
+            cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/mumble-server.sqlite /var/lib/mumble-server/
183
+        else
184
+            cp -f $temp_restore_dir/mumble-server.sqlite /var/lib/mumble-server/
185
+        fi
166 186
         if [ ! "$?" = "0" ]; then
167 187
             rm -rf $temp_restore_dir
168 188
             exit 276

+ 28
- 8
src/freedombone-app-nextcloud Bestand weergeven

@@ -254,8 +254,13 @@ function restore_local_nextcloud {
254 254
 
255 255
         temp_restore_dir=/root/tempnextcloudfiles
256 256
         restore_directory_from_usb $temp_restore_dir nextcloudfiles
257
-        temp_source_dir=$(find ${temp_restore_dir} -name data)
258
-        cp -r ${temp_source_dir} /var/www/${NEXTCLOUD_DOMAIN_NAME}/
257
+
258
+        if [ -d $temp_restore_dir/var/www/${NEXTCLOUD_DOMAIN_NAME}/data ]; then
259
+            cp -r $temp_restore_dir/var/www/${NEXTCLOUD_DOMAIN_NAME}/data /var/www/${NEXTCLOUD_DOMAIN_NAME}/
260
+        else
261
+            cp -r $temp_restore_dir/* /var/www/${NEXTCLOUD_DOMAIN_NAME}/
262
+        fi
263
+
259 264
         if [ ! "$?" = "0" ]; then
260 265
             set_user_permissions
261 266
             backup_unmount_drive
@@ -265,8 +270,13 @@ function restore_local_nextcloud {
265 270
 
266 271
         temp_restore_dir=/root/tempnextcloudconfig
267 272
         restore_directory_from_usb $temp_restore_dir nextcloudconfig
268
-        temp_source_dir=$(find ${temp_restore_dir} -name config)
269
-        cp -r ${temp_source_dir} /var/www/${NEXTCLOUD_DOMAIN_NAME}/htdocs/
273
+
274
+        if [ -d $temp_restore_dir/var/www/${NEXTCLOUD_DOMAIN_NAME}/htdocs/config ]; then
275
+            cp -r $temp_restore_dir/var/www/${NEXTCLOUD_DOMAIN_NAME}/htdocs/config /var/www/${NEXTCLOUD_DOMAIN_NAME}/htdocs
276
+        else
277
+            cp -r $temp_restore_dir/* /var/www/${NEXTCLOUD_DOMAIN_NAME}/htdocs/config/
278
+        fi
279
+
270 280
         if [ ! "$?" = "0" ]; then
271 281
             set_user_permissions
272 282
             backup_unmount_drive
@@ -324,8 +334,13 @@ function restore_remote_nextcloud {
324 334
 
325 335
         temp_restore_dir=/root/tempnextcloudfiles
326 336
         restore_directory_from_friend $temp_restore_dir nextcloudfiles
327
-        temp_source_dir=$(find ${temp_restore_dir} -name data)
328
-        cp -r ${temp_source_dir} /var/www/${NEXTCLOUD_DOMAIN_NAME}/
337
+
338
+        if [ -d $temp_restore_dir/var/www/${NEXTCLOUD_DOMAIN_NAME}/data ]; then
339
+            cp -r $temp_restore_dir/var/www/${NEXTCLOUD_DOMAIN_NAME}/data /var/www/${NEXTCLOUD_DOMAIN_NAME}/
340
+        else
341
+            cp -r $temp_restore_dir/* /var/www/${NEXTCLOUD_DOMAIN_NAME}/
342
+        fi
343
+
329 344
         if [ ! "$?" = "0" ]; then
330 345
             exit 768254
331 346
         fi
@@ -333,8 +348,13 @@ function restore_remote_nextcloud {
333 348
 
334 349
         temp_restore_dir=/root/tempnextcloudconfig
335 350
         restore_directory_from_friend $temp_restore_dir nextcloudconfig
336
-        temp_source_dir=$(find ${temp_restore_dir} -name config)
337
-        cp -r ${temp_source_dir} /var/www/${NEXTCLOUD_DOMAIN_NAME}/htdocs/
351
+
352
+        if [ -d $temp_restore_dir/var/www/${NEXTCLOUD_DOMAIN_NAME}/htdocs/config ]; then
353
+            cp -r $temp_restore_dir/var/www/${NEXTCLOUD_DOMAIN_NAME}/htdocs/config /var/www/${NEXTCLOUD_DOMAIN_NAME}/htdocs
354
+        else
355
+            cp -r $temp_restore_dir/* /var/www/${NEXTCLOUD_DOMAIN_NAME}/htdocs/config/
356
+        fi
357
+
338 358
         if [ ! "$?" = "0" ]; then
339 359
             exit 573427
340 360
         fi

+ 20
- 4
src/freedombone-app-pelican Bestand weergeven

@@ -449,7 +449,11 @@ function restore_local_pelican {
449 449
             temp_restore_dir=/root/temppelican
450 450
             function_check restore_directory_from_usb
451 451
             restore_directory_from_usb $temp_restore_dir pelican
452
-            cp -r $temp_restore_dir/etc/blog/* /etc/blog/
452
+            if [ -d $temp_restore_dir/etc/blog ]; then
453
+                cp -r $temp_restore_dir/etc/blog/* /etc/blog/
454
+            else
455
+                cp -r $temp_restore_dir/* /etc/blog/
456
+            fi
453 457
             if [ ! "$?" = "0" ]; then
454 458
                 rm -rf $temp_restore_dir
455 459
                 function_check set_user_permissions
@@ -466,7 +470,11 @@ function restore_local_pelican {
466 470
             temp_restore_dir=/root/temppelican-site
467 471
             function_check restore_directory_from_usb
468 472
             restore_directory_from_usb $temp_restore_dir pelican-site
469
-            cp -r $temp_restore_dir/var/www/$PELICAN_DOMAIN_NAME/htdocs/* /var/www/$PELICAN_DOMAIN_NAME/htdocs/
473
+            if [ -d $temp_restore_dir/var/www/$PELICAN_DOMAIN_NAME/htdocs ]; then
474
+                cp -r $temp_restore_dir/var/www/$PELICAN_DOMAIN_NAME/htdocs/* /var/www/$PELICAN_DOMAIN_NAME/htdocs/
475
+            else
476
+                cp -r $temp_restore_dir/* /var/www/$PELICAN_DOMAIN_NAME/htdocs/
477
+            fi
470 478
             if [ ! "$?" = "0" ]; then
471 479
                 rm -rf $temp_restore_dir
472 480
                 function_check set_user_permissions
@@ -495,7 +503,11 @@ function restore_remote_pelican {
495 503
             temp_restore_dir=/root/temppelican
496 504
             function_check restore_directory_from_friend
497 505
             restore_directory_from_friend $temp_restore_dir pelican
498
-            cp -r $temp_restore_dir/etc/blog/* /etc/blog/
506
+            if [ -d $temp_restore_dir/etc/blog ]; then
507
+                cp -r $temp_restore_dir/etc/blog/* /etc/blog/
508
+            else
509
+                cp -r $temp_restore_dir/* /etc/blog/
510
+            fi
499 511
             if [ ! "$?" = "0" ]; then
500 512
                 exit 782352
501 513
             fi
@@ -507,7 +519,11 @@ function restore_remote_pelican {
507 519
             temp_restore_dir=/root/temppelican-site
508 520
             function_check restore_directory_from_friend
509 521
             restore_directory_from_friend $temp_restore_dir pelican-site
510
-            cp -r $temp_restore_dir/var/www/$PELICAN_DOMAIN_NAME/htdocs/* /var/www/$PELICAN_DOMAIN_NAME/htdocs/
522
+            if [ -d $temp_restore_dir/var/www/$PELICAN_DOMAIN_NAME/htdocs ]; then
523
+                cp -r $temp_restore_dir/var/www/$PELICAN_DOMAIN_NAME/htdocs/* /var/www/$PELICAN_DOMAIN_NAME/htdocs/
524
+            else
525
+                cp -r $temp_restore_dir/* /var/www/$PELICAN_DOMAIN_NAME/htdocs/
526
+            fi
511 527
             if [ ! "$?" = "0" ]; then
512 528
                 exit 76382562
513 529
             fi

+ 36
- 6
src/freedombone-app-postactiv Bestand weergeven

@@ -446,16 +446,31 @@ function restore_local_postactiv {
446 446
         function_check restore_directory_from_usb
447 447
         restore_directory_from_usb $temp_restore_dir postactivconfig
448 448
         if [ -d $temp_restore_dir ]; then
449
-            cp $temp_restore_dir$postactiv_dir/backup/config.php $postactiv_dir/
449
+            if [ -d $temp_restore_dir$postactiv_dir ]; then
450
+                cp $temp_restore_dir$postactiv_dir/backup/config.php $postactiv_dir/
451
+                cp -rp $temp_restore_dir$postactiv_dir/static $postactiv_dir/
452
+            else
453
+                cp $temp_restore_dir/backup/config.php $postactiv_dir/
454
+                if [ ! -d $postactiv_dir/static ]; then
455
+                    mkdir $postactiv_dir/static
456
+                fi
457
+                cp -rp $temp_restore_dir/static/* $postactiv_dir/static/
458
+            fi
450 459
             chown www-data:www-data $postactiv_dir/config.php
451
-            cp -rp $temp_restore_dir$postactiv_dir/static $postactiv_dir/
452 460
             chown -R www-data:www-data $postactiv_dir/static
453 461
             rm -rf $temp_restore_dir
454 462
         fi
455 463
 
456 464
         restore_directory_from_usb $temp_restore_dir postactivfile
457 465
         if [ -d $temp_restore_dir ]; then
458
-            cp -rp $temp_restore_dir$postactiv_dir/file $postactiv_dir/
466
+            if [ -d $temp_restore_dir$postactiv_dir/file ]; then
467
+                cp -rp $temp_restore_dir$postactiv_dir/file $postactiv_dir/
468
+            else
469
+                if [ ! -d $postactiv_dir/file ]; then
470
+                    mkdir $postactiv_dir/file
471
+                fi
472
+                cp -rp $temp_restore_dir/* $postactiv_dir/file/
473
+            fi
459 474
             chown -R www-data:www-data $postactiv_dir/file
460 475
             rm -rf $temp_restore_dir
461 476
         fi
@@ -527,16 +542,31 @@ function restore_remote_postactiv {
527 542
         function_check restore_directory_from_friend
528 543
         restore_directory_from_friend $temp_restore_dir postactivconfig
529 544
         if [ -d $temp_restore_dir ]; then
530
-            cp $temp_restore_dir$postactiv_dir/backup/config.php $postactiv_dir/
545
+            if [ -d $temp_restore_dir$postactiv_dir ]; then
546
+                cp $temp_restore_dir$postactiv_dir/backup/config.php $postactiv_dir/
547
+                cp -rp $temp_restore_dir$postactiv_dir/static $postactiv_dir/
548
+            else
549
+                cp $temp_restore_dir/config.php $postactiv_dir/
550
+                if [ ! -d $postactiv_dir/static ]; then
551
+                    mkdir $postactiv_dir/static
552
+                fi
553
+                cp -rp $temp_restore_dir/static/* $postactiv_dir/static/
554
+            fi
531 555
             chown www-data:www-data $postactiv_dir/config.php
532
-            cp -rp $temp_restore_dir$postactiv_dir/static $postactiv_dir/
533 556
             chown -R www-data:www-data $postactiv_dir/static
534 557
             rm -rf $temp_restore_dir
535 558
         fi
536 559
 
537 560
         restore_directory_from_friend $temp_restore_dir postactivfile
538 561
         if [ -d $temp_restore_dir ]; then
539
-            cp -rp $temp_restore_dir$postactiv_dir/file $postactiv_dir/
562
+            if [ -d $temp_restore_dir$postactiv_dir/file ]; then
563
+                cp -rp $temp_restore_dir$postactiv_dir/file $postactiv_dir/
564
+            else
565
+                if [ ! -d $postactiv_dir/file ]; then
566
+                    mkdir $postactiv_dir/file
567
+                fi
568
+                cp -rp $temp_restore_dir/* $postactiv_dir/file/
569
+            fi
540 570
             chown -R www-data:www-data $postactiv_dir/file
541 571
             rm -rf $temp_restore_dir
542 572
         fi

+ 20
- 4
src/freedombone-app-radicale Bestand weergeven

@@ -214,7 +214,11 @@ function restore_local_radicale {
214 214
         temp_restore_dir=/root/tempradicale
215 215
         function_check restore_directory_from_usb
216 216
         restore_directory_from_usb $temp_restore_dir radicale
217
-        cp -r $temp_restore_dir${RADICALE_DIRECTORY}/* ${RADICALE_DIRECTORY}
217
+        if [ -d $temp_restore_dir${RADICALE_DIRECTORY} ]; then
218
+            cp -r $temp_restore_dir${RADICALE_DIRECTORY}/* ${RADICALE_DIRECTORY}
219
+        else
220
+            cp -r $temp_restore_dir/* ${RADICALE_DIRECTORY}/
221
+        fi
218 222
         if [ ! "$?" = "0" ]; then
219 223
             function_check backup_unmount_drive
220 224
             backup_unmount_drive
@@ -224,7 +228,11 @@ function restore_local_radicale {
224 228
 
225 229
         temp_restore_dir=/root/tempradicalewww
226 230
         restore_directory_from_usb $temp_restore_dir radicalewww
227
-        cp -r $temp_restore_dir/var/www/radicale/* /var/www/radicale
231
+        if [ -d $temp_restore_dir/var/www/radicale ]; then
232
+            cp -r $temp_restore_dir/var/www/radicale/* /var/www/radicale
233
+        else
234
+            cp -r $temp_restore_dir/* /var/www/radicale/*
235
+        fi
228 236
         if [ ! "$?" = "0" ]; then
229 237
             function_check backup_unmount_drive
230 238
             backup_unmount_drive
@@ -251,7 +259,11 @@ function restore_remote_radicale {
251 259
         temp_restore_dir=/root/tempradicale
252 260
         function_check restore_directory_from_friend
253 261
         restore_directory_from_friend $temp_restore_dir radicale
254
-        cp -r $temp_restore_dir${RADICALE_DIRECTORY}/* ${RADICALE_DIRECTORY}
262
+        if [ -d $temp_restore_dir${RADICALE_DIRECTORY} ]; then
263
+            cp -r $temp_restore_dir${RADICALE_DIRECTORY}/* ${RADICALE_DIRECTORY}
264
+        else
265
+            cp -r $temp_restore_dir/* ${RADICALE_DIRECTORY}/
266
+        fi
255 267
         if [ ! "$?" = "0" ]; then
256 268
             exit 236746
257 269
         fi
@@ -259,7 +271,11 @@ function restore_remote_radicale {
259 271
 
260 272
         temp_restore_dir=/root/tempradicalewww
261 273
         restore_directory_from_friend $temp_restore_dir radicalewww
262
-        cp -r $temp_restore_dir/var/www/radicale/* /var/www/radicale
274
+        if [ -d $temp_restore_dir/var/www/radicale ]; then
275
+            cp -r $temp_restore_dir/var/www/radicale/* /var/www/radicale
276
+        else
277
+            cp -r $temp_restore_dir/* /var/www/radicale
278
+        fi
263 279
         if [ ! "$?" = "0" ]; then
264 280
             exit 3674284
265 281
         fi

+ 2
- 2
src/freedombone-app-riot Bestand weergeven

@@ -33,9 +33,9 @@ VARIANTS='full full-vim chat'
33 33
 IN_DEFAULT_INSTALL=0
34 34
 SHOW_ON_ABOUT=1
35 35
 
36
-RIOT_VERSION='0.11.4'
36
+RIOT_VERSION='0.12.1'
37 37
 RIOT_FILENAME="riot-v${RIOT_VERSION}"
38
-RIOT_HASH='792b8eb398ec08c6f32f64b27f92d31d658c6d2338c1e43c84136f25f64d1cb2'
38
+RIOT_HASH='f6fc2df335af2abcf9fa1329819d20b4d1a0fc8a94a8f087b5f09941f2d5c44a'
39 39
 RIOT_DOWNLOAD_URL="https://github.com/vector-im/riot-web/releases/download/v${RIOT_VERSION}"
40 40
 RIOT_ONION_PORT=8115
41 41
 RIOT_ONION_HOSTNAME=

+ 14
- 5
src/freedombone-app-rss Bestand weergeven

@@ -171,9 +171,13 @@ function restore_local_rss {
171 171
     restore_database ttrss ${RSS_READER_DOMAIN_NAME}
172 172
 
173 173
     if [ -d /etc/share/tt-rss ]; then
174
-        if [ -d /root/tempttrss/etc/share/tt-rss ]; then
175
-            rm -rf /etc/share/tt-rss
176
-            mv /root/tempttrss/etc/share/tt-rss /etc/share/
174
+        if [ -d $temp_restore_dir/etc/share/tt-rss ]; then
175
+            if [ -d $temp_restore_dir/etc/share/tt-rss ]; then
176
+                rm -rf /etc/share/tt-rss
177
+                mv $temp_restore_dir/etc/share/tt-rss /etc/share/
178
+            else
179
+                cp -r $temp_restore_dir/* /etc/share/tt-rss/
180
+            fi
177 181
             if [ ! "$?" = "0" ]; then
178 182
                 function_check set_user_permissions
179 183
                 set_user_permissions
@@ -230,6 +234,7 @@ function backup_remote_rss {
230 234
 }
231 235
 
232 236
 function restore_remote_rss {
237
+    temp_restore_dir=/root/tempttrss
233 238
     if grep -q "rss reader domain" $COMPLETION_FILE; then
234 239
         echo $"Restoring ttrss"
235 240
         function_check restore_database_from_friend
@@ -240,8 +245,12 @@ function restore_remote_rss {
240 245
         restore_database_from_friend ttrss ${RSS_READER_DOMAIN_NAME}
241 246
 
242 247
         if [ -d /etc/share/tt-rss ]; then
243
-            rm -rf /etc/share/tt-rss
244
-            mv /root/tempttrss/etc/share/tt-rss /etc/share/
248
+            if [ -d $temp_restore_dir/etc/share/tt-rss ]; then
249
+                rm -rf /etc/share/tt-rss
250
+                mv $temp_restore_dir/etc/share/tt-rss /etc/share/
251
+            else
252
+                cp -r $temp_restore_dir/* /etc/share/tt-rss/
253
+            fi
245 254
             if [ ! "$?" = "0" ]; then
246 255
                 exit 6391
247 256
             fi

+ 12
- 2
src/freedombone-app-scuttlebot Bestand weergeven

@@ -144,8 +144,13 @@ function restore_local_scuttlebot {
144 144
         temp_restore_dir=/root/tempscuttlebot
145 145
         function_check restore_directory_from_usb
146 146
         restore_directory_from_usb $temp_restore_dir scuttlebot
147
-        cp -r $temp_restore_dir/etc/scuttlebot/.ssb /etc/scuttlebot/
147
+        if [ -d $temp_restore_dir/etc/scuttlebot/.ssb ]; then
148
+            cp -r $temp_restore_dir/etc/scuttlebot/.ssb /etc/scuttlebot/
149
+        else
150
+            cp -r $temp_restore_dir/* /etc/scuttlebot/.ssb/*
151
+        fi
148 152
         systemctl start scuttlebot
153
+        rm -rf $temp_restore_dir
149 154
     fi
150 155
 }
151 156
 
@@ -164,8 +169,13 @@ function restore_remote_scuttlebot {
164 169
         temp_restore_dir=/root/tempscuttlebot
165 170
         function_check restore_directory_from_friend
166 171
         restore_directory_from_friend $temp_restore_dir scuttlebot
167
-        cp -r $temp_restore_dir/etc/scuttlebot/.ssb /etc/scuttlebot/
172
+        if [ -d $temp_restore_dir/etc/scuttlebot/.ssb ]; then
173
+            cp -r $temp_restore_dir/etc/scuttlebot/.ssb /etc/scuttlebot/
174
+        else
175
+            cp -r $temp_restore_dir/* /etc/scuttlebot/.ssb/*
176
+        fi
168 177
         systemctl start scuttlebot
178
+        rm -rf $temp_restore_dir
169 179
     fi
170 180
 }
171 181
 

+ 22
- 2
src/freedombone-app-sip Bestand weergeven

@@ -145,7 +145,11 @@ function restore_local_sip {
145 145
         temp_restore_dir=/root/tempsip
146 146
         function_check restore_directory_from_usb
147 147
         restore_directory_from_usb $temp_restore_dir sip
148
-        cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/sipwitch.conf /etc/sipwitch.conf
148
+        if [ -d $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup ]; then
149
+            cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/sipwitch.conf /etc/sipwitch.conf
150
+        else
151
+            cp -f $temp_restore_dir/sipwitch.conf /etc/sipwitch.conf
152
+        fi
149 153
         if [ ! "$?" = "0" ]; then
150 154
             rm -rf $temp_restore_dir
151 155
             function_check set_user_permissions
@@ -173,7 +177,23 @@ function backup_remote_sip {
173 177
 }
174 178
 
175 179
 function restore_remote_sip {
176
-    echo -n ''
180
+    temp_restore_dir=/root/tempsip
181
+    function_check restore_directory_from_friend
182
+    restore_directory_from_friend $temp_restore_dir sip
183
+    if [ -d $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup ]; then
184
+        cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/sipwitch.conf /etc/sipwitch.conf
185
+    else
186
+        cp -f $temp_restore_dir/sipwitch.conf /etc/sipwitch.conf
187
+    fi
188
+    if [ ! "$?" = "0" ]; then
189
+        rm -rf $temp_restore_dir
190
+        function_check set_user_permissions
191
+        set_user_permissions
192
+        backup_unmount_drive
193
+        exit 3679
194
+    fi
195
+    rm -rf $temp_restore_dir
196
+    systemctl restart sipwitch
177 197
 }
178 198
 
179 199
 function remove_sip {

+ 34
- 6
src/freedombone-app-syncthing Bestand weergeven

@@ -286,7 +286,13 @@ function restore_local_syncthing {
286 286
         echo $"Restoring syncthing configuration"
287 287
         function_check restore_directory_from_usb
288 288
         restore_directory_from_usb ${temp_restore_dir}config syncthingconfig
289
-        cp -r ${temp_restore_dir}config/* /
289
+        #cp -r ${temp_restore_dir}config/* /
290
+
291
+        if [ ! -d /root/.config/syncthing ]; then
292
+            mkdir -p /root/.config/syncthing
293
+        fi
294
+        cp -r ${temp_restore_dir}config/* /root/.config/syncthing/
295
+
290 296
         if [ ! "$?" = "0" ]; then
291 297
             set_user_permissions
292 298
             backup_unmount_drive
@@ -300,7 +306,13 @@ function restore_local_syncthing {
300 306
     if [ -d $USB_MOUNT/backup/syncthingshared ]; then
301 307
         echo $"Restoring syncthing shared files"
302 308
         restore_directory_from_usb ${temp_restore_dir}shared syncthingshared
303
-        cp -r ${temp_restore_dir}shared/* /
309
+        #cp -r ${temp_restore_dir}shared/* /
310
+
311
+        if [ ! -d /var/lib/syncthing/SyncShared ]; then
312
+            mkdir -p /var/lib/syncthing/SyncShared
313
+        fi
314
+        cp -r ${temp_restore_dir}shared/* /var/lib/syncthing/SyncShared/
315
+
304 316
         if [ ! "$?" = "0" ]; then
305 317
             set_user_permissions
306 318
             backup_unmount_drive
@@ -320,7 +332,11 @@ function restore_local_syncthing {
320 332
                 fi
321 333
                 echo $"Restoring syncthing files for $USERNAME"
322 334
                 restore_directory_from_usb ${temp_restore_dir} syncthing/$USERNAME
323
-                cp -r ${temp_restore_dir}/home/$USERNAME/Sync /home/$USERNAME/
335
+                if [ -d ${temp_restore_dir}/home/$USERNAME/Sync ]; then
336
+                    cp -r ${temp_restore_dir}/home/$USERNAME/Sync /home/$USERNAME/
337
+                else
338
+                    cp -r ${temp_restore_dir}/* /home/$USERNAME/Sync/
339
+                fi
324 340
                 if [ ! "$?" = "0" ]; then
325 341
                     rm -rf ${temp_restore_dir}
326 342
                     set_user_permissions
@@ -399,7 +415,11 @@ function restore_remote_syncthing {
399 415
         temp_restore_dir=/root/tempsyncthingconfig
400 416
         function_check restore_directory_from_friend
401 417
         restore_directory_from_friend $temp_restore_dir syncthingconfig
402
-        cp -r $temp_restore_dir/* /
418
+        #cp -r $temp_restore_dir/* /
419
+        if [ ! -d /root/.config/syncthing ]; then
420
+            mkdir -p /root/.config/syncthing
421
+        fi
422
+        cp -r ${temp_restore_dir}config/* /root/.config/syncthing/
403 423
         if [ ! "$?" = "0" ]; then
404 424
             systemctl start syncthing
405 425
             systemctl start cron
@@ -413,7 +433,11 @@ function restore_remote_syncthing {
413 433
         temp_restore_dir=/root/tempsyncthingshared
414 434
         function_check restore_directory_from_friend
415 435
         restore_directory_from_friend $temp_restore_dir syncthingshared
416
-        cp -r $temp_restore_dir/* /
436
+        #cp -r $temp_restore_dir/* /
437
+        if [ ! -d /var/lib/syncthing/SyncShared ]; then
438
+            mkdir -p /var/lib/syncthing/SyncShared
439
+        fi
440
+        cp -r ${temp_restore_dir}shared/* /var/lib/syncthing/SyncShared/
417 441
         if [ ! "$?" = "0" ]; then
418 442
             systemctl start syncthing
419 443
             systemctl start cron
@@ -433,7 +457,11 @@ function restore_remote_syncthing {
433 457
                 temp_restore_dir=/root/tempsyncthing
434 458
                 function_check restore_directory_from_friend
435 459
                 restore_directory_from_friend $temp_restore_dir syncthing/$USERNAME
436
-                cp -r $temp_restore_dir/home/$USERNAME/Sync /home/$USERNAME/
460
+                if [ -d $temp_restore_dir/home/$USERNAME/Sync ]; then
461
+                    cp -r $temp_restore_dir/home/$USERNAME/Sync /home/$USERNAME/
462
+                else
463
+                    cp -r $temp_restore_dir/* /home/$USERNAME/Sync/
464
+                fi
437 465
                 if [ ! "$?" = "0" ]; then
438 466
                     rm -rf $temp_restore_dir
439 467
                     systemctl start syncthing

+ 26
- 8
src/freedombone-app-tahoelafs Bestand weergeven

@@ -298,13 +298,22 @@ function restore_local_tahoelafs {
298 298
     systemctl stop tahoelafs-client
299 299
     temp_restore_dir=/root/temptahoelafs
300 300
     restore_directory_from_usb $temp_restore_dir tahoelafs
301
-    mv $TAHOE_DIR ${TAHOE_DIR}-old
302
-    cp -r $temp_restore_dir$TAHOE_DIR $TAHOE_DIR
301
+    if [ -d $temp_restore_dir$TAHOE_DIR ]; then
302
+        mv $TAHOE_DIR ${TAHOE_DIR}-old
303
+        cp -r $temp_restore_dir$TAHOE_DIR $TAHOE_DIR
304
+    else
305
+        cp -r $temp_restore_dir/* $TAHOE_DIR/
306
+    fi
303 307
     if [ ! "$?" = "0" ]; then
304
-        mv ${TAHOE_DIR}-old $TAHOE_DIR
308
+        if [ -d ${TAHOE_DIR}-old ]; then
309
+            mv ${TAHOE_DIR}-old $TAHOE_DIR
310
+        fi
305 311
         exit 246833
306 312
     fi
307
-    rm -rf ${TAHOE_DIR}-old
313
+    if [ -d ${TAHOE_DIR}-old ]; then
314
+        rm -rf ${TAHOE_DIR}-old
315
+    fi
316
+    rm -rf $temp_restore_dir
308 317
     chown -R tahoelafs:debian-tor $TAHOE_DIR
309 318
     systemctl start tahoelafs-client
310 319
     systemctl start tahoelafs-storage
@@ -331,13 +340,22 @@ function restore_remote_tahoelafs {
331 340
     systemctl stop tahoelafs-client
332 341
     temp_restore_dir=/root/temptahoelafs
333 342
     restore_directory_from_friend $temp_restore_dir tahoelafs
334
-    mv $TAHOE_DIR ${TAHOE_DIR}-old
335
-    cp -r $temp_restore_dir$TAHOE_DIR $TAHOE_DIR
343
+    if [ -d $temp_restore_dir$TAHOE_DIR ]; then
344
+        mv $TAHOE_DIR ${TAHOE_DIR}-old
345
+        cp -r $temp_restore_dir$TAHOE_DIR $TAHOE_DIR
346
+    else
347
+        cp -r $temp_restore_dir/* $TAHOE_DIR/
348
+    fi
336 349
     if [ ! "$?" = "0" ]; then
337
-        mv ${TAHOE_DIR}old $TAHOE_DIR
350
+        if [ -d ${$TAHOE_DIR}-old ]; then
351
+            mv ${TAHOE_DIR}-old $TAHOE_DIR
352
+        fi
338 353
         exit 623925
339 354
     fi
340
-    rm -rf ${$TAHOE_DIR}-old
355
+    if [ -d ${$TAHOE_DIR}-old ]; then
356
+        rm -rf ${$TAHOE_DIR}-old
357
+    fi
358
+    rm -rf $temp_restore_dir
341 359
     chown -R tahoelafs:debian-tor $TAHOE_DIR
342 360
     systemctl start tahoelafs-client
343 361
     systemctl start tahoelafs-storage

+ 4
- 2
src/freedombone-app-tox Bestand weergeven

@@ -213,7 +213,8 @@ function restore_local_tox {
213 213
     if [ -d $USB_MOUNT/backup/tox ]; then
214 214
         echo $"Restoring Tox node settings"
215 215
         function_check restore_directory_from_usb
216
-        restore_directory_from_usb / tox
216
+        #restore_directory_from_usb / tox
217
+        restore_directory_from_usb /var/lib/tox-bootstrapd tox
217 218
         if [ ! "$?" = "0" ]; then
218 219
             function_check set_user_permissions
219 220
             set_user_permissions
@@ -250,7 +251,8 @@ function restore_remote_tox {
250 251
     if [ -d $SERVER_DIRECTORY/backup/tox ]; then
251 252
         echo $"Restoring Tox node settings"
252 253
         function_check restore_directory_from_friend
253
-        restore_directory_from_friend / tox
254
+        #restore_directory_from_friend / tox
255
+        restore_directory_from_friend /var/lib/tox-bootstrapd tox
254 256
         if [ ! "$?" = "0" ]; then
255 257
             exit 93653
256 258
         fi

+ 26
- 37
src/freedombone-app-turtl Bestand weergeven

@@ -249,18 +249,14 @@ function restore_local_turtl {
249 249
     if [ $TURTL_DOMAIN_NAME ]; then
250 250
         temp_restore_dir=/root/tempturtl
251 251
         restore_directory_from_usb $temp_restore_dir turtl
252
-        if [ -d $TURTL_BASE_DIR ]; then
253
-            if [ -d /etc/turtl_previous ]; then
254
-                rm -rf /etc/turtl_previous
255
-            fi
256
-            mv $TURTL_BASE_DIR /etc/turtl_previous
252
+
253
+        if [ -d ${temp_restore_dir}/etc/turtl ]; then
254
+            cp -r ${temp_restore_dir}/etc/turtl/* /etc/turtl/
255
+        else
256
+            cp -r ${temp_restore_dir}/* /etc/turtl/
257 257
         fi
258
-        temp_source_dir=$(find ${temp_restore_dir} -name turtl)
259
-        cp -r ${temp_source_dir} /etc/
258
+
260 259
         if [ ! "$?" = "0" ]; then
261
-            if [ -d /etc/turtl_previous ]; then
262
-                mv /etc/turtl_previous $TURTL_BASE_DIR
263
-            fi
264 260
             set_user_permissions
265 261
             backup_unmount_drive
266 262
             exit 36723
@@ -270,18 +266,14 @@ function restore_local_turtl {
270 266
 
271 267
         temp_restore_dir=/root/temprethinkdb
272 268
         restore_directory_from_usb $temp_restore_dir rethinkdb
273
-        if [ -d /var/lib/rethinkdb ]; then
274
-            if [ -d /var/lib/previous_rethinkdb ]; then
275
-                rm -rf /var/lib/previous_rethinkdb
276
-            fi
277
-            mv /var/lib/rethinkdb /var/lib/previous_rethinkdb
269
+
270
+        if [ -d ${temp_restore_dir}/var/lib/rethinkdb ]; then
271
+            cp -r ${temp_restore_dir}/var/lib/rethinkdb/* /var/lib/rethinkdb/
272
+        else
273
+            cp -r ${temp_restore_dir}/* /var/lib/rethinkdb/
278 274
         fi
279
-        temp_source_dir=$(find ${temp_restore_dir} -name rethinkdb)
280
-        cp -r ${temp_source_dir} /var/lib/
275
+
281 276
         if [ ! "$?" = "0" ]; then
282
-            if [ -d /var/lib/previous_rethinkdb ]; then
283
-                mv /var/lib/previous_rethinkdb /var/lib/rethinkdb
284
-            fi
285 277
             set_user_permissions
286 278
             backup_unmount_drive
287 279
             exit 378324
@@ -319,18 +311,18 @@ function restore_remote_turtl {
319 311
         mkdir $temp_restore_dir
320 312
         function_check restore_directory_from_friend
321 313
         restore_directory_from_friend $temp_restore_dir turtl
322
-        if [ -d $TURTL_BASE_DIR ]; then
323
-            if [ -d /etc/turtl_previous ]; then
324
-                rm -rf /etc/turtl_previous
325
-            fi
326
-            mv $TURTL_BASE_DIR /etc/turtl_previous
314
+
315
+        if [ -d ${temp_restore_dir}/etc/turtl ]; then
316
+            cp -r ${temp_restore_dir}/etc/turtl/* /etc/turtl/
317
+        else
318
+            cp -r ${temp_restore_dir}/* /etc/turtl/
327 319
         fi
328
-        temp_source_dir=$(find ${temp_restore_dir} -name turtl)
329
-        cp -r ${temp_source_dir} /etc/
320
+
330 321
         if [ ! "$?" = "0" ]; then
331 322
             if [ -d /etc/turtl_previous ]; then
332 323
                 mv /etc/turtl_previous $TURTL_BASE_DIR
333 324
             fi
325
+            set_user_permissions
334 326
             exit 37823
335 327
         fi
336 328
         rm -rf ${temp_restore_dir}
@@ -339,18 +331,15 @@ function restore_remote_turtl {
339 331
         mkdir $temp_restore_dir
340 332
         function_check restore_directory_from_friend
341 333
         restore_directory_from_friend $temp_restore_dir rethinkdb
342
-        if [ -d /var/lib/rethinkdb ]; then
343
-            if [ -d /var/lib/previous_rethinkdb ]; then
344
-                rm -rf /var/lib/previous_rethinkdb
345
-            fi
346
-            mv /var/lib/rethinkdb /var/lib/previous_rethinkdb
334
+
335
+        if [ -d ${temp_restore_dir}/var/lib/rethinkdb ]; then
336
+            cp -r ${temp_restore_dir}/var/lib/rethinkdb/* /var/lib/rethinkdb/
337
+        else
338
+            cp -r ${temp_restore_dir}/* /var/lib/rethinkdb/
347 339
         fi
348
-        temp_source_dir=$(find ${temp_restore_dir} -name rethinkdb)
349
-        cp -r ${temp_source_dir} /var/lib/
340
+
350 341
         if [ ! "$?" = "0" ]; then
351
-            if [ -d /var/lib/previous_rethinkdb ]; then
352
-                mv /var/lib/previous_rethinkdb /var/lib/rethinkdb
353
-            fi
342
+            set_user_permissions
354 343
             exit 26783
355 344
         fi
356 345
         rm -rf ${temp_restore_dir}

+ 16
- 2
src/freedombone-app-vim Bestand weergeven

@@ -100,7 +100,14 @@ function restore_local_vim {
100 100
                 echo $"Restoring Vim config for $USERNAME"
101 101
                 function_check restore_directory_from_usb
102 102
                 restore_directory_from_usb $temp_restore_dir vim/$USERNAME
103
-                cp -r $temp_restore_dir/home/$USERNAME/$VIM_TEMP_DIR /home/$USERNAME/
103
+                if [ -d $temp_restore_dir/home/$USERNAME/$VIM_TEMP_DIR ]; then
104
+                    cp -r $temp_restore_dir/home/$USERNAME/$VIM_TEMP_DIR /home/$USERNAME/
105
+                else
106
+                    if [ ! -d /home/$USERNAME/$VIM_TEMP_DIR ]; then
107
+                        mkdir /home/$USERNAME/$VIM_TEMP_DIR
108
+                    fi
109
+                    cp -r $temp_restore_dir/* /home/$USERNAME/$VIM_TEMP_DIR/
110
+                fi
104 111
                 if [ ! "$?" = "0" ]; then
105 112
                     rm -rf $temp_restore_dir
106 113
                     function_check set_user_permissions
@@ -168,7 +175,14 @@ function restore_remote_vim {
168 175
                 echo $"Restoring Vim config for $USERNAME"
169 176
                 function_check restore_directory_from_friend
170 177
                 restore_directory_from_friend $temp_restore_dir vim/$USERNAME
171
-                cp -r $temp_restore_dir/home/$USERNAME/$VIM_TEMP_DIR /home/$USERNAME/
178
+                if [ -d $temp_restore_dir/home/$USERNAME/$VIM_TEMP_DIR ]; then
179
+                    cp -r $temp_restore_dir/home/$USERNAME/$VIM_TEMP_DIR /home/$USERNAME/
180
+                else
181
+                    if [ ! -d /home/$USERNAME/$VIM_TEMP_DIR ]; then
182
+                        mkdir /home/$USERNAME/$VIM_TEMP_DIR
183
+                    fi
184
+                    cp -r $temp_restore_dir/* /home/$USERNAME/$VIM_TEMP_DIR/
185
+                fi
172 186
                 if [ ! "$?" = "0" ]; then
173 187
                     rm -rf $temp_restore_dir
174 188
                     function_check set_user_permissions

+ 12
- 4
src/freedombone-app-wekan Bestand weergeven

@@ -134,8 +134,12 @@ function restore_local_wekan {
134 134
         temp_restore_dir=/root/tempwekan
135 135
         function_check restore_directory_from_usb
136 136
         restore_directory_from_usb $temp_restore_dir wekan
137
-        cp -r $temp_restore_dir$WEKAN_DIR/data/* $WEKAN_DIR/data/
138
-
137
+        if [ -d $temp_restore_dir$WEKAN_DIR/data ]; then
138
+            cp -r $temp_restore_dir$WEKAN_DIR/data/* $WEKAN_DIR/data/
139
+        else
140
+            cp -r $temp_restore_dir/* $WEKAN_DIR/data/
141
+        fi
142
+        rm -rf $temp_restore_dir
139 143
         systemctl start wekan
140 144
     fi
141 145
 }
@@ -177,8 +181,12 @@ function restore_remote_wekan {
177 181
         temp_restore_dir=/root/tempwekan
178 182
         function_check restore_directory_from_usb
179 183
         restore_directory_from_friend $temp_restore_dir wekan
180
-        cp -r $temp_restore_dir$WEKAN_DIR/data/* $WEKAN_DIR/data/
181
-
184
+        if [ -d $temp_restore_dir$WEKAN_DIR/data ]; then
185
+            cp -r $temp_restore_dir$WEKAN_DIR/data/* $WEKAN_DIR/data/
186
+        else
187
+            cp -r $temp_restore_dir/* $WEKAN_DIR/data/
188
+        fi
189
+        rm -rf $temp_restore_dir
182 190
         systemctl start wekan
183 191
     fi
184 192
 }

+ 10
- 2
src/freedombone-app-xmpp Bestand weergeven

@@ -460,7 +460,11 @@ function restore_local_xmpp {
460 460
         temp_restore_dir=/root/tempxmpp
461 461
         function_check restore_directory_from_usb
462 462
         restore_directory_from_usb $temp_restore_dir xmpp
463
-        cp -r $temp_restore_dir/var/lib/prosody/* /var/lib/prosody
463
+        if [ -d $temp_restore_dir/var/lib/prosody ]; then
464
+            cp -r $temp_restore_dir/var/lib/prosody/* /var/lib/prosody
465
+        else
466
+            cp -r $temp_restore_dir/* /var/lib/prosody/
467
+        fi
464 468
         if [ ! "$?" = "0" ]; then
465 469
             function_check set_user_permissions
466 470
             set_user_permissions
@@ -489,7 +493,11 @@ function restore_remote_xmpp {
489 493
         temp_restore_dir=/root/tempxmpp
490 494
         function_check restore_directory_from_friend
491 495
         restore_directory_from_friend $temp_restore_dir xmpp
492
-        cp -r $temp_restore_dir/var/lib/prosody/* /var/lib/prosody
496
+        if [ -d $temp_restore_dir/var/lib/prosody ]; then
497
+            cp -r $temp_restore_dir/var/lib/prosody/* /var/lib/prosody
498
+        else
499
+            cp -r $temp_restore_dir/* /var/lib/prosody/
500
+        fi
493 501
         if [ ! "$?" = "0" ]; then
494 502
             exit 725
495 503
         fi

+ 4
- 3
src/freedombone-image-customise Bestand weergeven

@@ -1065,8 +1065,9 @@ function image_setup_utils {
1065 1065
     rm $rootdir/root/sysctl.conf
1066 1066
 
1067 1067
     # all the packages
1068
-    chroot "$rootdir" apt-get -yq install cryptsetup libgfshare-bin obnam sshpass wget avahi-daemon
1069
-    chroot "$rootdir" apt-get -yq install avahi-utils avahi-discover connect-proxy openssh-server
1068
+    chroot "$rootdir" apt-get -yq install cryptsetup libgfshare-bin duplicity sshpass wget
1069
+    chroot "$rootdir" apt-get -yq install avahi-daemon avahi-utils avahi-discover
1070
+    chroot "$rootdir" apt-get -yq install connect-proxy openssh-server
1070 1071
     chroot "$rootdir" apt-get -yq install sudo git dialog build-essential avahi-daemon avahi-utils
1071 1072
     chroot "$rootdir" apt-get -yq install avahi-discover avahi-autoipd iptables dnsutils net-tools
1072 1073
     chroot "$rootdir" apt-get -yq install network-manager iputils-ping libnss-mdns libnss-myhostname
@@ -1166,7 +1167,7 @@ function image_setup_utils {
1166 1167
     chroot "$rootdir" apt-get -yq install dovecot-imapd
1167 1168
 
1168 1169
     #backup
1169
-    chroot "$rootdir" apt-get -yq install obnam gnupg
1170
+    chroot "$rootdir" apt-get -yq install duplicity gnupg
1170 1171
 
1171 1172
     # monkeysphere
1172 1173
     #chroot "$rootdir" apt-get -yq install monkeysphere msva-perl

+ 132
- 36
src/freedombone-restore-local Bestand weergeven

@@ -123,8 +123,10 @@ function restore_blocklist {
123 123
         temp_restore_dir=/root/tempblocklist
124 124
         restore_directory_from_usb $temp_restore_dir blocklist
125 125
 
126
-        if [ -f $temp_restore_dir/root/tempbackupblocklist/${PROJECT_NAME}-firewall-domains.cfg ]; then
126
+        if [ -d $temp_restore_dir/root/tempbackupblocklist ]; then
127 127
             cp -f $temp_restore_dir/root/tempbackupblocklist/${PROJECT_NAME}-firewall-domains.cfg /root/${PROJECT_NAME}-firewall-domains.cfg
128
+        else
129
+            cp -f $temp_restore_dir/${PROJECT_NAME}-firewall-domains.cfg /root/${PROJECT_NAME}-firewall-domains.cfg
128 130
         fi
129 131
 
130 132
         rm -rf $temp_restore_dir
@@ -146,13 +148,25 @@ function restore_configfiles {
146 148
         temp_restore_dir=/root/tempconfigfiles
147 149
         restore_directory_from_usb $temp_restore_dir configfiles
148 150
 
149
-        if [ -f $temp_restore_dir/root/.nostore ]; then
150
-            if [ ! -f /root/.nostore ]; then
151
-                touch /root/.nostore
151
+        if [ -d $temp_restore_dir/root ]; then
152
+            if [ -f $temp_restore_dir/root/.nostore ]; then
153
+                if [ ! -f /root/.nostore ]; then
154
+                    touch /root/.nostore
155
+                fi
156
+            else
157
+                if [ -f /root/.nostore ]; then
158
+                    rm /root/.nostore
159
+                fi
152 160
             fi
153 161
         else
154
-            if [ -f /root/.nostore ]; then
155
-                rm /root/.nostore
162
+            if [ -f $temp_restore_dir/.nostore ]; then
163
+                if [ ! -f /root/.nostore ]; then
164
+                    touch /root/.nostore
165
+                fi
166
+            else
167
+                if [ -f /root/.nostore ]; then
168
+                    rm /root/.nostore
169
+                fi
156 170
             fi
157 171
         fi
158 172
 
@@ -196,8 +210,14 @@ function restore_configfiles {
196 210
         fi
197 211
 
198 212
         # restore nginx password hashes
199
-        if [ -f $temp_restore_dir/root/htpasswd ]; then
200
-            cp -f $temp_restore_dir/root/htpasswd /etc/nginx/.htpasswd
213
+        if [ -d $temp_restore_dir/root ]; then
214
+            if [ -f $temp_restore_dir/root/htpasswd ]; then
215
+                cp -f $temp_restore_dir/root/htpasswd /etc/nginx/.htpasswd
216
+            fi
217
+        else
218
+            if [ -f $temp_restore_dir/htpasswd ]; then
219
+                cp -f $temp_restore_dir/htpasswd /etc/nginx/.htpasswd
220
+            fi
201 221
         fi
202 222
 
203 223
         rm -rf $temp_restore_dir
@@ -238,11 +258,19 @@ function restore_mariadb {
238 258
         db_pass=$(cat /root/.mariadboriginal)
239 259
         if [ ${#db_pass} -gt 0 ]; then
240 260
             echo $"Restore the MariaDB user table"
241
-            mysqlsuccess=$(mysql -u root --password="$db_pass" mysql -o < ${temp_restore_dir}${temp_restore_dir}/mysql.sql)
261
+            if [ -d ${temp_restore_dir}${temp_restore_dir} ]; then
262
+                mysqlsuccess=$(mysql -u root --password="$db_pass" mysql -o < ${temp_restore_dir}${temp_restore_dir}/mysql.sql)
263
+            else
264
+                mysqlsuccess=$(mysql -u root --password="$db_pass" mysql -o < ${temp_restore_dir}/mysql.sql)
265
+            fi
242 266
             if [ ! "$?" = "0" ]; then
243 267
                 echo $"Try again using the password obtained from backup"
244 268
                 db_pass=$(${PROJECT_NAME}-pass -u root -a mariadb)
245
-                mysqlsuccess=$(mysql -u root --password="$db_pass" mysql -o < ${temp_restore_dir}${temp_restore_dir}/mysql.sql)
269
+                if [ -d ${temp_restore_dir}${temp_restore_dir} ]; then
270
+                    mysqlsuccess=$(mysql -u root --password="$db_pass" mysql -o < ${temp_restore_dir}${temp_restore_dir}/mysql.sql)
271
+                else
272
+                    mysqlsuccess=$(mysql -u root --password="$db_pass" mysql -o < ${temp_restore_dir}/mysql.sql)
273
+                fi
246 274
             fi
247 275
             if [ ! "$?" = "0" ]; then
248 276
                 echo "$mysqlsuccess"
@@ -269,7 +297,8 @@ function restore_letsencrypt {
269 297
     fi
270 298
     if [ -d $USB_MOUNT/backup/letsencrypt ]; then
271 299
         echo $"Restoring Lets Encrypt settings"
272
-        restore_directory_from_usb / letsencrypt
300
+        #restore_directory_from_usb / letsencrypt
301
+        restore_directory_from_usb /etc/letsencrypt letsencrypt
273 302
         chgrp -R ssl-cert /etc/letsencrypt
274 303
         chmod -R g=rX /etc/letsencrypt
275 304
     fi
@@ -284,7 +313,8 @@ function restore_passwordstore {
284 313
     if [ -d $USB_MOUNT/backup/passwordstore ]; then
285 314
         store_original_mariadb_password
286 315
         echo $"Restoring password store"
287
-        restore_directory_from_usb / passwordstore
316
+        #restore_directory_from_usb / passwordstore
317
+        restore_directory_from_usb /root/.passwords passwordstore
288 318
     fi
289 319
 }
290 320
 
@@ -296,7 +326,8 @@ function restore_tor {
296 326
     fi
297 327
     if [ -d $USB_MOUNT/backup/tor ]; then
298 328
         echo $"Restoring Tor settings"
299
-        restore_directory_from_usb / tor
329
+        #restore_directory_from_usb / tor
330
+        restore_directory_from_usb /var/lib/tor tor
300 331
     fi
301 332
 }
302 333
 
@@ -316,15 +347,28 @@ function restore_mutt_settings {
316 347
                 echo $"Restoring Mutt settings for $USERNAME"
317 348
                 temp_restore_dir=/root/tempmutt
318 349
                 restore_directory_from_usb $temp_restore_dir mutt/$USERNAME
319
-                if [ -f $temp_restore_dir/home/$USERNAME/tempbackup/.muttrc ]; then
320
-                    cp -f $temp_restore_dir/home/$USERNAME/tempbackup/.muttrc /home/$USERNAME/.muttrc
321
-                    sed -i '/set sidebar_delim/d' /home/$USERNAME/.muttrc
322
-                    sed -i '/set sidebar_sort/d' /home/$USERNAME/.muttrc
323
-                fi
324
-                if [ -f $temp_restore_dir/home/$USERNAME/tempbackup/Muttrc ]; then
325
-                    cp -f $temp_restore_dir/home/$USERNAME/tempbackup/Muttrc /etc/Muttrc
326
-                    sed -i '/set sidebar_delim/d' /etc/Muttrc
327
-                    sed -i '/set sidebar_sort/d' /etc/Muttrc
350
+                if [ -d $temp_restore_dir/home/$USERNAME/tempbackup ]; then
351
+                    if [ -f $temp_restore_dir/home/$USERNAME/tempbackup/.muttrc ]; then
352
+                        cp -f $temp_restore_dir/home/$USERNAME/tempbackup/.muttrc /home/$USERNAME/.muttrc
353
+                        sed -i '/set sidebar_delim/d' /home/$USERNAME/.muttrc
354
+                        sed -i '/set sidebar_sort/d' /home/$USERNAME/.muttrc
355
+                    fi
356
+                    if [ -f $temp_restore_dir/home/$USERNAME/tempbackup/Muttrc ]; then
357
+                        cp -f $temp_restore_dir/home/$USERNAME/tempbackup/Muttrc /etc/Muttrc
358
+                        sed -i '/set sidebar_delim/d' /etc/Muttrc
359
+                        sed -i '/set sidebar_sort/d' /etc/Muttrc
360
+                    fi
361
+                else
362
+                    if [ -f $temp_restore_dir/.muttrc ]; then
363
+                        cp -f $temp_restore_dir/.muttrc /home/$USERNAME/.muttrc
364
+                        sed -i '/set sidebar_delim/d' /home/$USERNAME/.muttrc
365
+                        sed -i '/set sidebar_sort/d' /home/$USERNAME/.muttrc
366
+                    fi
367
+                    if [ -f $temp_restore_dir/Muttrc ]; then
368
+                        cp -f $temp_restore_dir/Muttrc /etc/Muttrc
369
+                        sed -i '/set sidebar_delim/d' /etc/Muttrc
370
+                        sed -i '/set sidebar_sort/d' /etc/Muttrc
371
+                    fi
328 372
                 fi
329 373
                 if [ ! "$?" = "0" ]; then
330 374
                     rm -rf $temp_restore_dir
@@ -353,7 +397,11 @@ function restore_gpg {
353 397
                 echo $"Restoring gnupg settings for $USERNAME"
354 398
                 temp_restore_dir=/root/tempgnupg
355 399
                 restore_directory_from_usb $temp_restore_dir gnupg/$USERNAME
356
-                cp -r $temp_restore_dir/home/$USERNAME/.gnupg /home/$USERNAME/
400
+                if [ -d $temp_restore_dir/home/$USERNAME/.gnupg ]; then
401
+                    cp -r $temp_restore_dir/home/$USERNAME/.gnupg /home/$USERNAME/
402
+                else
403
+                    cp -r $temp_restore_dir/* /home/$USERNAME/.gnupg/
404
+                fi
357 405
                 if [ ! "$?" = "0" ]; then
358 406
                     rm -rf $temp_restore_dir
359 407
                     set_user_permissions
@@ -393,7 +441,11 @@ function restore_procmail {
393 441
                 temp_restore_dir=/root/tempprocmail
394 442
                 restore_directory_from_usb $temp_restore_dir procmail/$USERNAME
395 443
                 if [ -d $temp_restore_dir ]; then
396
-                    cp -f $temp_restore_dir/home/$USERNAME/tempbackup/.procmailrc /home/$USERNAME/
444
+                    if [ -d $temp_restore_dir/home/$USERNAME/tempbackup ]; then
445
+                        cp -f $temp_restore_dir/home/$USERNAME/tempbackup/.procmailrc /home/$USERNAME/
446
+                    else
447
+                        cp -f $temp_restore_dir/.procmailrc /home/$USERNAME/.procmailrc
448
+                    fi
397 449
                     if [ ! "$?" = "0" ]; then
398 450
                         rm -rf $temp_restore_dir
399 451
                         set_user_permissions
@@ -424,7 +476,11 @@ function restore_spamassassin {
424 476
                     echo $"Restoring spamassassin settings for $USERNAME"
425 477
                     temp_restore_dir=/root/tempspamassassin
426 478
                     restore_directory_from_usb $temp_restore_dir spamassassin/$USERNAME
427
-                    cp -rf $temp_restore_dir/home/$USERNAME/.spamassassin /home/$USERNAME/
479
+                    if [ -d $temp_restore_dir/home/$USERNAME ]; then
480
+                        cp -rf $temp_restore_dir/home/$USERNAME/.spamassassin /home/$USERNAME/
481
+                    else
482
+                        cp -rf $temp_restore_dir/* /home/$USERNAME/.spamassassin/
483
+                    fi
428 484
                     if [ ! "$?" = "0" ]; then
429 485
                         rm -rf $temp_restore_dir
430 486
                         set_user_permissions
@@ -457,7 +513,11 @@ function restore_admin_readme {
457 513
 
458 514
         temp_restore_dir=/root/tempreadme
459 515
         restore_directory_from_usb $temp_restore_dir readme
460
-        cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/README /home/$ADMIN_USERNAME/
516
+        if [ -d $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup ]; then
517
+            cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/README /home/$ADMIN_USERNAME/
518
+        else
519
+            cp -f $temp_restore_dir/README /home/$ADMIN_USERNAME/README
520
+        fi
461 521
         if [ ! "$?" = "0" ]; then
462 522
             rm -rf $temp_restore_dir
463 523
             set_user_permissions
@@ -484,7 +544,11 @@ function restore_user_ssh_keys {
484 544
                 echo $"Restoring ssh keys for $USERNAME"
485 545
                 temp_restore_dir=/root/tempssh
486 546
                 restore_directory_from_usb $temp_restore_dir ssh/$USERNAME
487
-                cp -r $temp_restore_dir/home/$USERNAME/.ssh /home/$USERNAME/
547
+                if [ -d $temp_restore_dir/home/$USERNAME/.ssh ]; then
548
+                    cp -r $temp_restore_dir/home/$USERNAME/.ssh /home/$USERNAME/
549
+                else
550
+                    cp -r $temp_restore_dir/* /home/$USERNAME/.ssh/
551
+                fi
488 552
                 if [ ! "$?" = "0" ]; then
489 553
                     rm -rf $temp_restore_dir
490 554
                     set_user_permissions
@@ -513,7 +577,11 @@ function restore_user_config {
513 577
                 echo $"Restoring config files for $USERNAME"
514 578
                 temp_restore_dir=/root/tempconfig
515 579
                 restore_directory_from_usb $temp_restore_dir config/$USERNAME
516
-                cp -r $temp_restore_dir/home/$USERNAME/.config /home/$USERNAME/
580
+                if [ -d $temp_restore_dir/home/$USERNAME/.config ]; then
581
+                    cp -r $temp_restore_dir/home/$USERNAME/.config /home/$USERNAME/
582
+                else
583
+                    cp -r $temp_restore_dir/* /home/$USERNAME/.config/
584
+                fi
517 585
                 if [ ! "$?" = "0" ]; then
518 586
                     rm -rf $temp_restore_dir
519 587
                     set_user_permissions
@@ -542,7 +610,11 @@ function restore_user_monkeysphere {
542 610
                 echo $"Restoring monkeysphere ids for $USERNAME"
543 611
                 temp_restore_dir=/root/tempmonkeysphere
544 612
                 restore_directory_from_usb $temp_restore_dir monkeysphere/$USERNAME
545
-                cp -r $temp_restore_dir/home/$USERNAME/.monkeysphere /home/$USERNAME/
613
+                if [ -d $temp_restore_dir/home/$USERNAME/.monkeysphere ]; then
614
+                    cp -r $temp_restore_dir/home/$USERNAME/.monkeysphere /home/$USERNAME/
615
+                else
616
+                    cp -r $temp_restore_dir/* /home/$USERNAME/.monkeysphere
617
+                fi
546 618
                 if [ ! "$?" = "0" ]; then
547 619
                     rm -rf $temp_restore_dir
548 620
                     set_user_permissions
@@ -579,7 +651,11 @@ function restore_user_fin {
579 651
                 echo $"Restoring fin files for $USERNAME"
580 652
                 temp_restore_dir=/root/tempfin
581 653
                 restore_directory_from_usb $temp_restore_dir fin/$USERNAME
582
-                cp -r $temp_restore_dir/home/$USERNAME/.fin /home/$USERNAME/
654
+                if [ -d $temp_restore_dir/home/$USERNAME/.fin ]; then
655
+                    cp -r $temp_restore_dir/home/$USERNAME/.fin /home/$USERNAME/
656
+                else
657
+                    cp -r $temp_restore_dir/* /home/$USERNAME/.fin/
658
+                fi
583 659
                 if [ ! "$?" = "0" ]; then
584 660
                     rm -rf $temp_restore_dir
585 661
                     set_user_permissions
@@ -608,7 +684,11 @@ function restore_user_local {
608 684
                 echo $"Restoring local files for $USERNAME"
609 685
                 temp_restore_dir=/root/templocal
610 686
                 restore_directory_from_usb $temp_restore_dir local/$USERNAME
611
-                cp -r $temp_restore_dir/home/$USERNAME/.local /home/$USERNAME/
687
+                if [ -d $temp_restore_dir/home/$USERNAME/.local ]; then
688
+                    cp -r $temp_restore_dir/home/$USERNAME/.local /home/$USERNAME/
689
+                else
690
+                    cp -r $temp_restore_dir/* /home/$USERNAME/.local/
691
+                fi
612 692
                 if [ ! "$?" = "0" ]; then
613 693
                     rm -rf $temp_restore_dir
614 694
                     set_user_permissions
@@ -631,7 +711,11 @@ function restore_certs {
631 711
         echo $"Restoring certificates"
632 712
         mkdir /root/tempssl
633 713
         restore_directory_from_usb /root/tempssl ssl
634
-        cp -r /root/tempssl/etc/ssl/* /etc/ssl
714
+        if [ -d /root/tempssl/etc/ssl ]; then
715
+            cp -r /root/tempssl/etc/ssl/* /etc/ssl
716
+        else
717
+            cp -r /root/tempssl/* /etc/ssl/
718
+        fi
635 719
         if [ ! "$?" = "0" ]; then
636 720
             set_user_permissions
637 721
             backup_unmount_drive
@@ -686,7 +770,11 @@ function restore_personal_settings {
686 770
                     if [ -d /home/$USERNAME/personal ]; then
687 771
                         rm -rf /home/$USERNAME/personal
688 772
                     fi
689
-                    mv $temp_restore_dir/home/$USERNAME/personal /home/$USERNAME
773
+                    if [ -d $temp_restore_dir/home/$USERNAME/personal ]; then
774
+                        mv $temp_restore_dir/home/$USERNAME/personal /home/$USERNAME
775
+                    else
776
+                        cp -r $temp_restore_dir/* /home/$USERNAME/personal/
777
+                    fi
690 778
                     if [ ! "$?" = "0" ]; then
691 779
                         set_user_permissions
692 780
                         backup_unmount_drive
@@ -709,7 +797,11 @@ function restore_mailing_list {
709 797
         echo $"Restoring public mailing list"
710 798
         temp_restore_dir=/root/tempmailinglist
711 799
         restore_directory_from_usb $temp_restore_dir mailinglist
712
-        cp -r $temp_restore_dir/root/spool/mlmmj/* /var/spool/mlmmj
800
+        if [ -d $temp_restore_dir/root/spool/mlmmj ]; then
801
+            cp -r $temp_restore_dir/root/spool/mlmmj/* /var/spool/mlmmj
802
+        else
803
+            cp -r $temp_restore_dir/* /var/spool/mlmmj/
804
+        fi
713 805
         if [ ! "$?" = "0" ]; then
714 806
             set_user_permissions
715 807
             backup_unmount_drive
@@ -738,11 +830,15 @@ function restore_email {
738 830
                 if [ ! -d /home/$USERNAME/Maildir ]; then
739 831
                     mkdir /home/$USERNAME/Maildir
740 832
                 fi
741
-                tar -xzvf $temp_restore_dir/root/tempbackupemail/$USERNAME/maildir.tar.gz -C /
833
+                if [ -d $temp_restore_dir/root/tempbackupemail/$USERNAME ]; then
834
+                    tar -xzvf $temp_restore_dir/root/tempbackupemail/$USERNAME/maildir.tar.gz -C /
835
+                else
836
+                    tar -xzvf $temp_restore_dir/maildir.tar.gz -C /
837
+                fi
742 838
                 if [ ! "$?" = "0" ]; then
743 839
                     set_user_permissions
744 840
                     backup_unmount_drive
745
-                    exit 927
841
+                    exit 9276382
746 842
                 fi
747 843
                 rm -rf $temp_restore_dir
748 844
             fi

+ 123
- 37
src/freedombone-restore-remote Bestand weergeven

@@ -113,10 +113,11 @@ function restore_blocklist {
113 113
         echo $"Restoring blocklist"
114 114
         temp_restore_dir=/root/tempblocklist
115 115
         restore_directory_from_friend $temp_restore_dir blocklist
116
-        restore_directory_from_usb $temp_restore_dir blocklist
117 116
 
118
-        if [ -f $temp_restore_dir/root/tempbackupblocklist/${PROJECT_NAME}-firewall-domains.cfg ]; then
117
+        if [ -d $temp_restore_dir/root/tempbackupblocklist ]; then
119 118
             cp -f $temp_restore_dir/root/tempbackupblocklist/${PROJECT_NAME}-firewall-domains.cfg /root/${PROJECT_NAME}-firewall-domains.cfg
119
+        else
120
+            cp -f $temp_restore_dir/${PROJECT_NAME}-firewall-domains.cfg /root/${PROJECT_NAME}-firewall-domains.cfg
120 121
         fi
121 122
 
122 123
         rm -rf $temp_restore_dir
@@ -136,13 +137,25 @@ function restore_configfiles {
136 137
         temp_restore_dir=/root/tempconfigfiles
137 138
         restore_directory_from_friend $temp_restore_dir configfiles
138 139
 
139
-        if [ -f $temp_restore_dir/root/.nostore ]; then
140
-            if [ ! -f /root/.nostore ]; then
141
-                touch /root/.nostore
140
+        if [ -d $temp_restore_dir/root ]; then
141
+            if [ -f $temp_restore_dir/root/.nostore ]; then
142
+                if [ ! -f /root/.nostore ]; then
143
+                    touch /root/.nostore
144
+                fi
145
+            else
146
+                if [ -f /root/.nostore ]; then
147
+                    rm /root/.nostore
148
+                fi
142 149
             fi
143 150
         else
144
-            if [ -f /root/.nostore ]; then
145
-                rm /root/.nostore
151
+            if [ -f $temp_restore_dir/.nostore ]; then
152
+                if [ ! -f /root/.nostore ]; then
153
+                    touch /root/.nostore
154
+                fi
155
+            else
156
+                if [ -f /root/.nostore ]; then
157
+                    rm /root/.nostore
158
+                fi
146 159
             fi
147 160
         fi
148 161
 
@@ -214,11 +227,19 @@ function restore_mariadb {
214 227
         db_pass=$(cat /root/.mariadboriginal)
215 228
         if [ ${#db_pass} -gt 0 ]; then
216 229
             echo $"Restore the MariaDB user table"
217
-            mysqlsuccess=$(mysql -u root --password="$db_pass" mysql -o < ${temp_restore_dir}${temp_restore_dir}/mysql.sql)
230
+            if [ -d ${temp_restore_dir}${temp_restore_dir} ]; then
231
+                mysqlsuccess=$(mysql -u root --password="$db_pass" mysql -o < ${temp_restore_dir}${temp_restore_dir}/mysql.sql)
232
+            else
233
+                mysqlsuccess=$(mysql -u root --password="$db_pass" mysql -o < ${temp_restore_dir}/mysql.sql)
234
+            fi
218 235
             if [ ! "$?" = "0" ]; then
219 236
                 echo $"Try again using the password obtained from backup"
220 237
                 db_pass=$(${PROJECT_NAME}-pass -u root -a mariadb)
221
-                mysqlsuccess=$(mysql -u root --password="$db_pass" mysql -o < ${temp_restore_dir}${temp_restore_dir}/mysql.sql)
238
+                if [ -d ${temp_restore_dir}${temp_restore_dir} ]; then
239
+                    mysqlsuccess=$(mysql -u root --password="$db_pass" mysql -o < ${temp_restore_dir}${temp_restore_dir}/mysql.sql)
240
+                else
241
+                    mysqlsuccess=$(mysql -u root --password="$db_pass" mysql -o < ${temp_restore_dir}/mysql.sql)
242
+                fi
222 243
             fi
223 244
             if [ ! "$?" = "0" ]; then
224 245
                 echo "$mysqlsuccess"
@@ -242,7 +263,7 @@ function restore_letsencrypt {
242 263
     fi
243 264
     if [ -d $SERVER_DIRECTORY/backup/letsencrypt ]; then
244 265
         echo $"Restoring Lets Encrypt settings"
245
-        restore_directory_from_friend / letsencrypt
266
+        restore_directory_from_friend /etc/letsencrypt letsencrypt
246 267
     fi
247 268
 }
248 269
 
@@ -255,7 +276,7 @@ function restore_passwordstore {
255 276
     if [ -d $SERVER_DIRECTORY/backup/passwordstore ]; then
256 277
         store_original_mariadb_password
257 278
         echo $"Restoring password store"
258
-        restore_directory_from_friend / passwordstore
279
+        restore_directory_from_friend /root/.passwords passwordstore
259 280
     fi
260 281
 }
261 282
 
@@ -267,7 +288,7 @@ function restore_tor {
267 288
     fi
268 289
     if [ -d $SERVER_DIRECTORY/backup/tor ]; then
269 290
         echo $"Restoring Tor settings"
270
-        restore_directory_from_friend / tor
291
+        restore_directory_from_friend /var/lib/tor tor
271 292
     fi
272 293
 }
273 294
 
@@ -287,15 +308,28 @@ function restore_mutt_settings {
287 308
                 echo $"Restoring Mutt settings for $USERNAME"
288 309
                 temp_restore_dir=/root/tempmutt
289 310
                 restore_directory_from_friend ${temp_restore_dir} mutt/$USERNAME
290
-                if [ -f ${temp_restore_dir}/home/$USERNAME/tempbackup/.muttrc ]; then
291
-                    cp -f ${temp_restore_dir}/home/$USERNAME/tempbackup/.muttrc /home/$USERNAME/.muttrc
292
-                    sed -i '/set sidebar_delim/d' /home/$USERNAME/.muttrc
293
-                    sed -i '/set sidebar_sort/d' /home/$USERNAME/.muttrc
294
-                fi
295
-                if [ -f ${temp_restore_dir}/home/$USERNAME/tempbackup/Muttrc ]; then
296
-                    cp -f ${temp_restore_dir}/home/$USERNAME/tempbackup/Muttrc /etc/Muttrc
297
-                    sed -i '/set sidebar_delim/d' /etc/Muttrc
298
-                    sed -i '/set sidebar_sort/d' /etc/Muttrc
311
+                if [ -d ${temp_restore_dir}/home/$USERNAME/tempbackup ]; then
312
+                    if [ -f ${temp_restore_dir}/home/$USERNAME/tempbackup/.muttrc ]; then
313
+                        cp -f ${temp_restore_dir}/home/$USERNAME/tempbackup/.muttrc /home/$USERNAME/.muttrc
314
+                        sed -i '/set sidebar_delim/d' /home/$USERNAME/.muttrc
315
+                        sed -i '/set sidebar_sort/d' /home/$USERNAME/.muttrc
316
+                    fi
317
+                    if [ -f ${temp_restore_dir}/home/$USERNAME/tempbackup/Muttrc ]; then
318
+                        cp -f ${temp_restore_dir}/home/$USERNAME/tempbackup/Muttrc /etc/Muttrc
319
+                        sed -i '/set sidebar_delim/d' /etc/Muttrc
320
+                        sed -i '/set sidebar_sort/d' /etc/Muttrc
321
+                    fi
322
+                else
323
+                    if [ -f ${temp_restore_dir}/.muttrc ]; then
324
+                        cp -f ${temp_restore_dir}/.muttrc /home/$USERNAME/.muttrc
325
+                        sed -i '/set sidebar_delim/d' /home/$USERNAME/.muttrc
326
+                        sed -i '/set sidebar_sort/d' /home/$USERNAME/.muttrc
327
+                    fi
328
+                    if [ -f ${temp_restore_dir}/Muttrc ]; then
329
+                        cp -f ${temp_restore_dir}/Muttrc /etc/Muttrc
330
+                        sed -i '/set sidebar_delim/d' /etc/Muttrc
331
+                        sed -i '/set sidebar_sort/d' /etc/Muttrc
332
+                    fi
299 333
                 fi
300 334
                 if [ ! "$?" = "0" ]; then
301 335
                     rm -rf ${temp_restore_dir}
@@ -322,7 +356,11 @@ function restore_gpg {
322 356
                 echo $"Restoring gnupg settings for $USERNAME"
323 357
                 temp_restore_dir=/root/tempgnupg
324 358
                 restore_directory_from_friend ${temp_restore_dir} gnupg/$USERNAME
325
-                cp -r ${temp_restore_dir}/home/$USERNAME/.gnupg /home/$USERNAME/
359
+                if [ -d ${temp_restore_dir}/home/$USERNAME/.gnupg ]; then
360
+                    cp -r ${temp_restore_dir}/home/$USERNAME/.gnupg /home/$USERNAME/
361
+                else
362
+                    cp -r ${temp_restore_dir}/* /home/$USERNAME/.gnupg/
363
+                fi
326 364
                 if [ ! "$?" = "0" ]; then
327 365
                     rm -rf ${temp_restore_dir}
328 366
                     exit 276
@@ -356,7 +394,11 @@ function restore_procmail {
356 394
                 echo $"Restoring procmail settings for $USERNAME"
357 395
                 temp_restore_dir=/root/tempprocmail
358 396
                 restore_directory_from_friend ${temp_restore_dir} procmail/$USERNAME
359
-                cp -f ${temp_restore_dir}/home/$USERNAME/tempbackup/.procmailrc /home/$USERNAME/
397
+                if [ -d ${temp_restore_dir}/home/$USERNAME/tempbackup ]; then
398
+                    cp -f ${temp_restore_dir}/home/$USERNAME/tempbackup/.procmailrc /home/$USERNAME/
399
+                else
400
+                    cp -f ${temp_restore_dir}/.procmailrc /home/$USERNAME/.procmailrc
401
+                fi
360 402
                 if [ ! "$?" = "0" ]; then
361 403
                     rm -rf ${temp_restore_dir}
362 404
                     exit 276
@@ -383,7 +425,11 @@ function restore_spamassassin {
383 425
                 echo $"Restoring spamassassin settings for $USERNAME"
384 426
                 temp_restore_dir=/root/tempspamassassin
385 427
                 restore_directory_from_friend $temp_restore_dir spamassassin/$USERNAME
386
-                cp -rf $temp_restore_dir/home/$USERNAME/.spamassassin /home/$USERNAME/
428
+                if [ -d $temp_restore_dir/home/$USERNAME ]; then
429
+                    cp -rf $temp_restore_dir/home/$USERNAME/.spamassassin /home/$USERNAME/
430
+                else
431
+                    cp -rf $temp_restore_dir/* /home/$USERNAME/.spamassassin/
432
+                fi
387 433
                 if [ ! "$?" = "0" ]; then
388 434
                     rm -rf $temp_restore_dir
389 435
                     exit 276
@@ -404,7 +450,11 @@ function restore_admin_readme {
404 450
         echo $"Restoring README"
405 451
         temp_restore_dir=/root/tempreadme
406 452
         restore_directory_from_friend $temp_restore_dir readme
407
-        cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/README /home/$ADMIN_USERNAME/
453
+        if [ -d $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup ]; then
454
+            cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/README /home/$ADMIN_USERNAME/
455
+        else
456
+            cp -f $temp_restore_dir/README /home/$ADMIN_USERNAME/README
457
+        fi
408 458
         if [ ! "$?" = "0" ]; then
409 459
             rm -rf $temp_restore_dir
410 460
             exit 276
@@ -429,7 +479,11 @@ function restore_ssh_keys {
429 479
                 echo $"Restoring ssh keys for $USERNAME"
430 480
                 temp_restore_dir=/root/tempssh
431 481
                 restore_directory_from_friend $temp_restore_dir ssh/$USERNAME
432
-                cp -r $temp_restore_dir/home/$USERNAME/.ssh /home/$USERNAME/
482
+                if [ -d $temp_restore_dir/home/$USERNAME/.ssh ]; then
483
+                    cp -r $temp_restore_dir/home/$USERNAME/.ssh /home/$USERNAME/
484
+                else
485
+                    cp -r $temp_restore_dir/* /home/$USERNAME/.ssh/
486
+                fi
433 487
                 if [ ! "$?" = "0" ]; then
434 488
                     rm -rf $temp_restore_dir
435 489
                     exit 664
@@ -456,7 +510,11 @@ function restore_user_config {
456 510
                 echo $"Restoring config files for $USERNAME"
457 511
                 temp_restore_dir=/root/tempconfig
458 512
                 restore_directory_from_friend $temp_restore_dir config/$USERNAME
459
-                cp -r $temp_restore_dir/home/$USERNAME/.config /home/$USERNAME/
513
+                if [ -d $temp_restore_dir/home/$USERNAME ]; then
514
+                    cp -r $temp_restore_dir/home/$USERNAME/.config /home/$USERNAME/
515
+                else
516
+                    cp -r $temp_restore_dir/* /home/$USERNAME/.config/
517
+                fi
460 518
                 if [ ! "$?" = "0" ]; then
461 519
                     rm -rf $temp_restore_dir
462 520
                     exit 664
@@ -483,7 +541,11 @@ function restore_user_monkeysphere {
483 541
                 echo $"Restoring monkeysphere ids for $USERNAME"
484 542
                 temp_restore_dir=/root/tempmonkeysphere
485 543
                 restore_directory_from_friend $temp_restore_dir monkeysphere/$USERNAME
486
-                cp -r $temp_restore_dir/home/$USERNAME/.monkeysphere /home/$USERNAME/
544
+                if [ -d $temp_restore_dir/home/$USERNAME/.monkeysphere ]; then
545
+                    cp -r $temp_restore_dir/home/$USERNAME/.monkeysphere /home/$USERNAME/
546
+                else
547
+                    cp -r $temp_restore_dir/* /home/$USERNAME/.monkeysphere/
548
+                fi
487 549
                 if [ ! "$?" = "0" ]; then
488 550
                     rm -rf $temp_restore_dir
489 551
                     exit 664
@@ -518,7 +580,11 @@ function restore_user_fin {
518 580
                 echo $"Restoring fin files for $USERNAME"
519 581
                 temp_restore_dir=/root/tempfin
520 582
                 restore_directory_from_friend $temp_restore_dir fin/$USERNAME
521
-                cp -r $temp_restore_dir/home/$USERNAME/.fin /home/$USERNAME/
583
+                if [ -d $temp_restore_dir/home/$USERNAME/.fin ]; then
584
+                    cp -r $temp_restore_dir/home/$USERNAME/.fin /home/$USERNAME/
585
+                else
586
+                    cp -r $temp_restore_dir/* /home/$USERNAME/.fin/
587
+                fi
522 588
                 if [ ! "$?" = "0" ]; then
523 589
                     rm -rf $temp_restore_dir
524 590
                     exit 664
@@ -545,7 +611,11 @@ function restore_user_local {
545 611
                 echo $"Restoring local files for $USERNAME"
546 612
                 temp_restore_dir=/root/templocal
547 613
                 restore_directory_from_friend $temp_restore_dir local/$USERNAME
548
-                cp -r $temp_restore_dir/home/$USERNAME/.local /home/$USERNAME/
614
+                if [ -d $temp_restore_dir/home/$USERNAME/.local ]; then
615
+                    cp -r $temp_restore_dir/home/$USERNAME/.local /home/$USERNAME/
616
+                else
617
+                    cp -r $temp_restore_dir/* /home/$USERNAME/.local/
618
+                fi
549 619
                 if [ ! "$?" = "0" ]; then
550 620
                     rm -rf $temp_restore_dir
551 621
                     exit 664
@@ -565,7 +635,11 @@ function restore_certs {
565 635
     if [ -d $SERVER_DIRECTORY/backup/ssl ]; then
566 636
         echo $"Restoring certificates"
567 637
         restore_directory_from_friend /root/tempssl ssl
568
-        cp -r /root/tempssl/etc/ssl/* /etc/ssl
638
+        if [ -d /root/tempssl/etc/ssl ]; then
639
+            cp -r /root/tempssl/etc/ssl/* /etc/ssl
640
+        else
641
+            cp -r /root/tempssl/* /etc/ssl/
642
+        fi
569 643
         if [ ! "$?" = "0" ]; then
570 644
             exit 276
571 645
         fi
@@ -614,12 +688,16 @@ function restore_personal_settings {
614 688
                 echo $"Restoring personal settings for $USERNAME"
615 689
                 temp_restore_dir=/root/temppersonal
616 690
                 restore_directory_from_friend $temp_restore_dir personal/$USERNAME
617
-                if [ -d /home/$USERNAME/personal ]; then
618
-                    rm -rf /home/$USERNAME/personal
691
+                if [ -d $temp_restore_dir/home/$USERNAME/personal ]; then
692
+                    if [ -d /home/$USERNAME/personal ]; then
693
+                        rm -rf /home/$USERNAME/personal
694
+                    fi
695
+                    mv $temp_restore_dir/home/$USERNAME/personal /home/$USERNAME
696
+                else
697
+                    cp -r $temp_restore_dir/* /home/$USERNAME/personal/
619 698
                 fi
620
-                mv $temp_restore_dir/home/$USERNAME/personal /home/$USERNAME
621 699
                 if [ ! "$?" = "0" ]; then
622
-                    exit 184
700
+                    exit 18437643
623 701
                 fi
624 702
                 rm -rf $temp_restore_dir
625 703
             fi
@@ -637,7 +715,11 @@ function restore_mailing_list {
637 715
         echo $"Restoring public mailing list"
638 716
         temp_restore_dir=/root/tempmailinglist
639 717
         restore_directory_from_friend $temp_restore_dir mailinglist
640
-        cp -r $temp_restore_dir/root/spool/mlmmj/* /var/spool/mlmmj
718
+        if [ -d $temp_restore_dir/root/spool/mlmmj ]; then
719
+            cp -r $temp_restore_dir/root/spool/mlmmj/* /var/spool/mlmmj
720
+        else
721
+            cp -r $temp_restore_dir/* /var/spool/mlmmj/
722
+        fi
641 723
         if [ ! "$?" = "0" ]; then
642 724
             exit 526
643 725
         fi
@@ -664,7 +746,11 @@ function restore_email {
664 746
                 if [ ! -d /home/$USERNAME/Maildir ]; then
665 747
                     mkdir /home/$USERNAME/Maildir
666 748
                 fi
667
-                tar -xzvf $temp_restore_dir/root/tempbackupemail/$USERNAME/maildir.tar.gz -C /
749
+                if [ -d $temp_restore_dir/root/tempbackupemail/$USERNAME ]; then
750
+                    tar -xzvf $temp_restore_dir/root/tempbackupemail/$USERNAME/maildir.tar.gz -C /
751
+                else
752
+                    tar -xzvf $temp_restore_dir/maildir.tar.gz -C /
753
+                fi
668 754
                 if [ ! "$?" = "0" ]; then
669 755
                     exit 927
670 756
                 fi

+ 209
- 54
src/freedombone-utils-backup Bestand weergeven

@@ -13,7 +13,7 @@
13 13
 # License
14 14
 # =======
15 15
 #
16
-# Copyright (C) 2014-2016 Bob Mottram <bob@freedombone.net>
16
+# Copyright (C) 2014-2017 Bob Mottram <bob@freedombone.net>
17 17
 #
18 18
 # This program is free software: you can redistribute it and/or modify
19 19
 # it under the terms of the GNU Affero General Public License as published by
@@ -34,6 +34,21 @@ SUSPENDED_SITE=
34 34
 # Dummy password used for the backup key
35 35
 BACKUP_DUMMY_PASSWORD='backup'
36 36
 
37
+BACKUP_TEMP_DIRECTORY=/root/.backuptemp
38
+BACKUP_GPG_OPTIONS="--pinentry-mode loopback"
39
+
40
+function create_backups_temp_directory {
41
+    if [ ! -d $BACKUP_TEMP_DIRECTORY ]; then
42
+        mkdir $BACKUP_TEMP_DIRECTORY
43
+    fi
44
+}
45
+
46
+function remove_backups_temp_directory {
47
+    if [ -d $BACKUP_TEMP_DIRECTORY ]; then
48
+        rm -rf $BACKUP_TEMP_DIRECTORY
49
+    fi
50
+}
51
+
37 52
 function suspend_site {
38 53
     # suspends a given website
39 54
     SUSPENDED_SITE="$1"
@@ -247,6 +262,71 @@ function set_obnam_client_name {
247 262
     echo "client-name = ${PROJECT_NAME}" >> /etc/obnam.conf
248 263
 }
249 264
 
265
+function backup_directory_to_usb_duplicity {
266
+    create_backups_temp_directory
267
+    echo "$BACKUP_DUMMY_PASSWORD" | duplicity full --gpg-options "$BACKUP_GPG_OPTIONS" --tempdir $BACKUP_TEMP_DIRECTORY --encrypt-key $MY_BACKUP_KEY_ID --full-if-older-than 4W --exclude-other-filesystems ${1} file://$USB_MOUNT/backup/${2}
268
+    if [ ! "$?" = "0" ]; then
269
+        umount $USB_MOUNT
270
+        rm -rf $USB_MOUNT
271
+        if [[ ${1} == "/root/temp"* || ${1} == *"tempbackup" ]]; then
272
+            shred -zu ${1}/*
273
+            rm -rf ${1}
274
+        fi
275
+        function_check restart_site
276
+        restart_site
277
+        remove_backups_temp_directory
278
+        exit 8352925
279
+    fi
280
+    if [[ $ENABLE_BACKUP_VERIFICATION == "yes" ]]; then
281
+        echo "$BACKUP_DUMMY_PASSWORD" | duplicity verify --gpg-options "$BACKUP_GPG_OPTIONS" --tempdir $BACKUP_TEMP_DIRECTORY --encrypt-key $MY_BACKUP_KEY_ID --full-if-older-than 4W --exclude-other-filesystems ${1} file://$USB_MOUNT/backup/${2}
282
+        if [ ! "$?" = "0" ]; then
283
+            umount $USB_MOUNT
284
+            rm -rf $USB_MOUNT
285
+            if [[ ${1} == "/root/temp"* || ${1} == *"tempbackup" ]]; then
286
+                shred -zu ${1}/*
287
+                rm -rf ${1}
288
+            fi
289
+            function_check restart_site
290
+            restart_site
291
+            remove_backups_temp_directory
292
+            exit 683252
293
+        fi
294
+    fi
295
+    remove_backups_temp_directory
296
+}
297
+
298
+function backup_directory_to_usb_obnam {
299
+    set_obnam_client_name
300
+    echo "$BACKUP_DUMMY_PASSWORD" | obnam force-lock -r $USB_MOUNT/backup/${2} --encrypt-with $MY_BACKUP_KEY_ID ${1}
301
+    echo "$BACKUP_DUMMY_PASSWORD" | obnam backup -r $USB_MOUNT/backup/${2} --encrypt-with $MY_BACKUP_KEY_ID ${1}
302
+    if [[ $ENABLE_BACKUP_VERIFICATION == "yes" ]]; then
303
+        echo "$BACKUP_DUMMY_PASSWORD" | obnam verify -r $USB_MOUNT/backup/${2} --encrypt-with $MY_BACKUP_KEY_ID ${1}
304
+        if [ ! "$?" = "0" ]; then
305
+            umount $USB_MOUNT
306
+            rm -rf $USB_MOUNT
307
+            if [[ ${1} == "/root/temp"* || ${1} == *"tempbackup" ]]; then
308
+                shred -zu ${1}/*
309
+                rm -rf ${1}
310
+            fi
311
+            function_check restart_site
312
+            restart_site
313
+            exit 683252
314
+        fi
315
+    fi
316
+    echo "$BACKUP_DUMMY_PASSWORD" | obnam forget --keep=30d -r $USB_MOUNT/backup/${2} --encrypt-with $MY_BACKUP_KEY_ID
317
+    if [ ! "$?" = "0" ]; then
318
+        umount $USB_MOUNT
319
+        rm -rf $USB_MOUNT
320
+        if [[ ${1} == "/root/temp"* || ${1} == *"tempbackup" ]]; then
321
+            shred -zu ${1}/*
322
+            rm -rf ${1}
323
+        fi
324
+        function_check restart_site
325
+        restart_site
326
+        exit 7
327
+    fi
328
+}
329
+
250 330
 function backup_directory_to_usb {
251 331
     if [ ! -d ${1} ]; then
252 332
         echo $"WARNING: directory does not exist: ${1}"
@@ -263,35 +343,10 @@ function backup_directory_to_usb {
263 343
         if [ ! -d $USB_MOUNT/backup/${2} ]; then
264 344
             mkdir -p $USB_MOUNT/backup/${2}
265 345
         fi
266
-        set_obnam_client_name
267
-        echo "$BACKUP_DUMMY_PASSWORD" | obnam force-lock -r $USB_MOUNT/backup/${2} --encrypt-with $MY_BACKUP_KEY_ID ${1}
268
-        echo "$BACKUP_DUMMY_PASSWORD" | obnam backup -r $USB_MOUNT/backup/${2} --encrypt-with $MY_BACKUP_KEY_ID ${1}
269
-        if [[ $ENABLE_BACKUP_VERIFICATION == "yes" ]]; then
270
-            echo "$BACKUP_DUMMY_PASSWORD" | obnam verify -r $USB_MOUNT/backup/${2} --encrypt-with $MY_BACKUP_KEY_ID ${1}
271
-            if [ ! "$?" = "0" ]; then
272
-                umount $USB_MOUNT
273
-                rm -rf $USB_MOUNT
274
-                if [[ ${1} == "/root/temp"* || ${1} == *"tempbackup" ]]; then
275
-                    shred -zu ${1}/*
276
-                    rm -rf ${1}
277
-                fi
278
-                function_check restart_site
279
-                restart_site
280
-                exit 683252
281
-            fi
282
-        fi
283
-        echo "$BACKUP_DUMMY_PASSWORD" | obnam forget --keep=30d -r $USB_MOUNT/backup/${2} --encrypt-with $MY_BACKUP_KEY_ID
284
-        if [ ! "$?" = "0" ]; then
285
-            umount $USB_MOUNT
286
-            rm -rf $USB_MOUNT
287
-            if [[ ${1} == "/root/temp"* || ${1} == *"tempbackup" ]]; then
288
-                shred -zu ${1}/*
289
-                rm -rf ${1}
290
-            fi
291
-            function_check restart_site
292
-            restart_site
293
-            exit 7
294
-        fi
346
+
347
+        backup_directory_to_usb_duplicity ${1} ${2}
348
+        #backup_directory_to_usb_obnam ${1} ${2}
349
+
295 350
         if [[ ${1} == "/root/temp"* || ${1} == *"tempbackup" ]]; then
296 351
             shred -zu ${1}/*
297 352
             rm -rf ${1}
@@ -299,22 +354,49 @@ function backup_directory_to_usb {
299 354
     fi
300 355
 }
301 356
 
357
+function restore_directory_from_usb_obnam {
358
+    set_obnam_client_name
359
+    echo "$BACKUP_DUMMY_PASSWORD" | obnam restore -r $USB_MOUNT/backup/${2} --to ${1}
360
+}
361
+
362
+function restore_directory_from_usb_duplicity {
363
+    create_backups_temp_directory
364
+    PASSPHRASE="$BACKUP_DUMMY_PASSWORD" duplicity restore --gpg-options "$BACKUP_GPG_OPTIONS" --tempdir $BACKUP_TEMP_DIRECTORY --force file://$USB_MOUNT/backup/${2} ${1}
365
+    if [ ! "$?" = "0" ]; then
366
+        echo "WARNING: failed to restore $USB_MOUNT/backup/${2} to ${1}"
367
+    fi
368
+    PASSPHRASE=
369
+    remove_backups_temp_directory
370
+}
371
+
302 372
 function restore_directory_from_usb {
303 373
     if [ ! ${1} ]; then
304
-        echo "obnam restore -r $USB_MOUNT/backup/${2} --to ${1}"
374
+        echo "$USB_MOUNT/backup/${2} -> ${1}"
305 375
         echo $'No restore destination given'
306 376
         return
307 377
     fi
308 378
     if [ ! ${2} ]; then
309
-        echo "obnam restore -r $USB_MOUNT/backup/${2} --to ${1}"
379
+        echo "$USB_MOUNT/backup/${2} -> ${1}"
310 380
         echo $'No restore source given'
311 381
         return
312 382
     fi
313 383
     if [ ! -d ${1} ]; then
314 384
         mkdir ${1}
315 385
     fi
386
+    restore_directory_from_usb_duplicity ${1} ${2}
387
+    #restore_directory_from_usb_obnam ${1} ${2}
388
+}
389
+
390
+function restore_directory_from_friend_obnam {
316 391
     set_obnam_client_name
317
-    echo "$BACKUP_DUMMY_PASSWORD" | obnam restore -r $USB_MOUNT/backup/${2} --to ${1}
392
+    echo "$BACKUP_DUMMY_PASSWORD" | obnam restore -r $SERVER_DIRECTORY/backup/${2} --to ${1}
393
+}
394
+
395
+function restore_directory_from_friend_duplicity {
396
+    create_backups_temp_directory
397
+    PASSPHRASE="$BACKUP_DUMMY_PASSWORD" duplicity restore --gpg-options "$BACKUP_GPG_OPTIONS" --tempdir $BACKUP_TEMP_DIRECTORY --force file://$SERVER_DIRECTORY/backup/${2} ${1}
398
+    PASSPHRASE=
399
+    remove_backups_temp_directory
318 400
 }
319 401
 
320 402
 function restore_directory_from_friend {
@@ -331,8 +413,8 @@ function restore_directory_from_friend {
331 413
     if [ ! -d ${1} ]; then
332 414
         mkdir ${1}
333 415
     fi
334
-    set_obnam_client_name
335
-    echo "$BACKUP_DUMMY_PASSWORD" | obnam restore -r $SERVER_DIRECTORY/backup/${2} --to ${1}
416
+    restore_directory_from_friend_duplicity ${1} ${2}
417
+    #restore_directory_from_friend_obnam ${1} ${2}
336 418
 }
337 419
 
338 420
 function backup_database_to_usb {
@@ -357,19 +439,36 @@ function set_user_permissions {
357 439
     done
358 440
 }
359 441
 
360
-function backup_directory_to_friend {
361
-    BACKUP_KEY_EXISTS=$(gpg --list-keys "$ADMIN_NAME (backup key)")
442
+function backup_directory_to_friend_duplicity {
443
+    create_backups_temp_directory
444
+    echo "$BACKUP_DUMMY_PASSWORD" | duplicity full --gpg-options "$BACKUP_GPG_OPTIONS" --tempdir $BACKUP_TEMP_DIRECTORY --ssh-askpass --encrypt-key ${ADMIN_BACKUP_KEY_ID} --full-if-older-than 4W --exclude-other-filesystems ${1} $SERVER_DIRECTORY/backup/${2}
362 445
     if [ ! "$?" = "0" ]; then
363
-        echo $"Backup key could not be found"
446
+        if [[ ${1} == "/root/temp"* || ${1} == *"tempbackup" ]]; then
447
+            shred -zu ${1}/*
448
+            rm -rf ${1}
449
+        fi
364 450
         function_check restart_site
365 451
         restart_site
366
-        exit 43382
452
+        remove_backups_temp_directory
453
+        exit 5293526
367 454
     fi
368
-
369
-    ADMIN_BACKUP_KEY_ID=$(gpg --list-keys "$ADMIN_NAME (backup key)" | sed -n '2p' | sed 's/^[ \t]*//')
370
-    if [ ! -d $SERVER_DIRECTORY/backup/${2} ]; then
371
-        mkdir -p $SERVER_DIRECTORY/backup/${2}
455
+    if [[ $ENABLE_BACKUP_VERIFICATION == "yes" ]]; then
456
+        echo "$BACKUP_DUMMY_PASSWORD" | duplicity verify --gpg-options "$BACKUP_GPG_OPTIONS" --tempdir $BACKUP_TEMP_DIRECTORY --ssh-askpass --encrypt-key ${ADMIN_BACKUP_KEY_ID} --full-if-older-than 4W --exclude-other-filesystems ${1} $SERVER_DIRECTORY/backup/${2}
457
+        if [ ! "$?" = "0" ]; then
458
+            if [[ ${1} == "/root/temp"* || ${1} == *"tempbackup" ]]; then
459
+                shred -zu ${1}/*
460
+                rm -rf ${1}
461
+            fi
462
+            function_check restart_site
463
+            restart_site
464
+            remove_backups_temp_directory
465
+            exit 683252
466
+        fi
372 467
     fi
468
+    remove_backups_temp_directory
469
+}
470
+
471
+function backup_directory_to_friend_obnam {
373 472
     set_obnam_client_name
374 473
     echo "$BACKUP_DUMMY_PASSWORD" | obnam force-lock -r $SERVER_DIRECTORY/backup/${2} --encrypt-with ${ADMIN_BACKUP_KEY_ID} ${1}
375 474
     echo "$BACKUP_DUMMY_PASSWORD" | obnam backup -r $SERVER_DIRECTORY/backup/${2} --encrypt-with ${ADMIN_BACKUP_KEY_ID} ${1}
@@ -399,6 +498,25 @@ function backup_directory_to_friend {
399 498
         restart_site
400 499
         exit 853
401 500
     fi
501
+}
502
+
503
+function backup_directory_to_friend {
504
+    BACKUP_KEY_EXISTS=$(gpg --list-keys "$ADMIN_NAME (backup key)")
505
+    if [ ! "$?" = "0" ]; then
506
+        echo $"Backup key could not be found"
507
+        function_check restart_site
508
+        restart_site
509
+        exit 43382
510
+    fi
511
+
512
+    ADMIN_BACKUP_KEY_ID=$(gpg --list-keys "$ADMIN_NAME (backup key)" | sed -n '2p' | sed 's/^[ \t]*//')
513
+    if [ ! -d $SERVER_DIRECTORY/backup/${2} ]; then
514
+        mkdir -p $SERVER_DIRECTORY/backup/${2}
515
+    fi
516
+
517
+    backup_directory_to_friend_duplicity ${1} ${2}
518
+    #backup_directory_to_friend_obnam ${1} ${2}
519
+
402 520
     if [[ ${1} == "/root/temp"* || ${1} == *"tempbackup" ]]; then
403 521
         shred -zu /root/temp${2}/*
404 522
         rm -rf /root/temp${2}
@@ -510,7 +628,11 @@ function restore_database_from_friend {
510 628
         echo $"Restoring ${1} database"
511 629
         local_database_dir=/root/temp${1}data
512 630
         restore_directory_from_friend ${local_database_dir} ${1}data
513
-        if [ ! -f ${local_database_dir}/${RESTORE_SUBDIR}/temp${1}data/${1}.sql ]; then
631
+        database_file=${local_database_dir}/${RESTORE_SUBDIR}/temp${restore_app_name}data/${restore_app_name}.sql
632
+        if [ ! -f $database_file ]; then
633
+            database_file=${local_database_dir}/${restore_app_name}.sql
634
+        fi
635
+        if [ ! -f $database_file ]; then
514 636
             echo $"Unable to restore ${1} database"
515 637
             rm -rf ${local_database_dir}
516 638
             exit 503
@@ -521,21 +643,35 @@ function restore_database_from_friend {
521 643
             echo "$mysqlsuccess"
522 644
             exit 964
523 645
         fi
524
-        shred -zu ${local_database_dir}/${RESTORE_SUBDIR}/temp${1}data/*
646
+        if [ -d ${local_database_dir}/${RESTORE_SUBDIR}/temp${1}data ]; then
647
+            shred -zu ${local_database_dir}/${RESTORE_SUBDIR}/temp${1}data/*
648
+        else
649
+            shred -zu ${local_database_dir}/*.sql
650
+        fi
525 651
         rm -rf ${local_database_dir}
526 652
         echo $"Restoring ${1} installation"
527 653
         restore_directory_from_friend /root/temp${1} ${1}
528 654
         RESTORE_SUBDIR="var"
529 655
         if [ ${1} ]; then
656
+            # create directory to restore to
530 657
             if [ ! -d /var/www/${2}/htdocs ]; then
531 658
                 mkdir -p /var/www/${2}/htdocs
532 659
                 chown www-data:www-data /var/www/${2}/htdocs
533 660
             fi
534 661
 
535 662
             if [ -d /var/www/${2}/htdocs ]; then
536
-                if [ -d /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs ]; then
537
-                    rm -rf /var/www/${2}/htdocs
538
-                    mv /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs /var/www/${2}/
663
+                restore_from_dir=/root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs
664
+                if [ ! -d /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs ]; then
665
+                    restore_from_dir=/root/temp${1}
666
+                fi
667
+
668
+                if [ -d $restore_from_dir ]; then
669
+                    if [ -d /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs ]; then
670
+                        rm -rf /var/www/${2}/htdocs
671
+                        mv $restore_from_dir /var/www/${2}/
672
+                    else
673
+                        cp -r $restore_from_dir/* /var/www/${2}/htdocs/
674
+                    fi
539 675
                     if [ ! "$?" = "0" ]; then
540 676
                         exit 683
541 677
                     fi
@@ -567,7 +703,11 @@ function restore_database {
567 703
         fi
568 704
         function_check restore_directory_from_usb
569 705
         restore_directory_from_usb "${local_database_dir}" "${restore_app_name}data"
570
-        if [ ! -f /root/temp${restore_app_name}data/${RESTORE_SUBDIR}/temp${restore_app_name}data/${restore_app_name}.sql ]; then
706
+        database_file=${local_database_dir}/${RESTORE_SUBDIR}/temp${restore_app_name}data/${restore_app_name}.sql
707
+        if [ ! -f $database_file ]; then
708
+            database_file=${local_database_dir}/${restore_app_name}.sql
709
+        fi
710
+        if [ ! -f $database_file ]; then
571 711
             echo $"Unable to restore ${restore_app_name} database"
572 712
             rm -rf ${local_database_dir}
573 713
             function_check set_user_permissions
@@ -577,7 +717,7 @@ function restore_database {
577 717
             exit 503
578 718
         fi
579 719
         keep_database_running
580
-        mysqlsuccess=$(mysql -u root --password="$DATABASE_PASSWORD" ${restore_app_name} -o < ${local_database_dir}/${RESTORE_SUBDIR}/temp${restore_app_name}data/${restore_app_name}.sql)
720
+        mysqlsuccess=$(mysql -u root --password="$DATABASE_PASSWORD" ${restore_app_name} -o < $database_file)
581 721
         if [ ! "$?" = "0" ]; then
582 722
             echo "$mysqlsuccess"
583 723
             function_check set_user_permissions
@@ -586,7 +726,12 @@ function restore_database {
586 726
             backup_unmount_drive
587 727
             exit 964
588 728
         fi
589
-        shred -zu ${local_database_dir}/${RESTORE_SUBDIR}/temp${restore_app_name}data/*
729
+        if [ -d ${local_database_dir}/${RESTORE_SUBDIR}/temp${restore_app_name}data ]; then
730
+            shred -zu ${local_database_dir}/${RESTORE_SUBDIR}/temp${restore_app_name}data/*
731
+        else
732
+            shred -zu ${local_database_dir}/*.sql
733
+        fi
734
+
590 735
         rm -rf ${local_database_dir}
591 736
         echo $"Restoring ${restore_app_name} installation"
592 737
         if [ ! -d /root/temp${restore_app_name} ]; then
@@ -596,14 +741,24 @@ function restore_database {
596 741
         restore_directory_from_usb "/root/temp${restore_app_name}" "${restore_app_name}"
597 742
         RESTORE_SUBDIR="var"
598 743
         if [ ${restore_app_domain} ]; then
744
+            # create directory to restore to
599 745
             if [ ! -d /var/www/${restore_app_domain}/htdocs ]; then
600 746
                 mkdir -p /var/www/${restore_app_domain}/htdocs
601 747
                 chown www-data:www-data /var/www/${restore_app_domain}/htdocs
602 748
             fi
749
+
603 750
             if [ -d /var/www/${restore_app_domain}/htdocs ]; then
604
-                if [ -d /root/temp${restore_app_name}/${RESTORE_SUBDIR}/www/${restore_app_domain}/htdocs ]; then
605
-                    rm -rf /var/www/${restore_app_domain}/htdocs
606
-                    mv /root/temp${restore_app_name}/${RESTORE_SUBDIR}/www/${restore_app_domain}/htdocs /var/www/${restore_app_domain}/
751
+                restore_from_dir=/root/temp${restore_app_name}/${RESTORE_SUBDIR}/www/${restore_app_domain}/htdocs
752
+                if [ ! -d $restore_from_dir ]; then
753
+                    restore_from_dir=/root/temp${restore_app_name}
754
+                fi
755
+                if [ -d $restore_from_dir ]; then
756
+                    if [ -d /root/temp${restore_app_name}/${RESTORE_SUBDIR}/www/${restore_app_domain}/htdocs ]; then
757
+                        rm -rf /var/www/${restore_app_domain}/htdocs
758
+                        mv $restore_from_dir /var/www/${restore_app_domain}/
759
+                    else
760
+                        cp -r $restore_from_dir/* /var/www/${restore_app_domain}/htdocs/
761
+                    fi
607 762
                     if [ ! "$?" = "0" ]; then
608 763
                         set_user_permissions
609 764
                         backup_unmount_drive

+ 95
- 0
src/freedombone-utils-guile Bestand weergeven

@@ -0,0 +1,95 @@
1
+#!/bin/bash
2
+#
3
+# .---.                  .              .
4
+# |                      |              |
5
+# |--- .--. .-.  .-.  .-.|  .-. .--.--. |.-.  .-. .--.  .-.
6
+# |    |   (.-' (.-' (   | (   )|  |  | |   )(   )|  | (.-'
7
+# '    '     --'  --'  -' -  -' '  '   -' -'   -' '   -  --'
8
+#
9
+#                    Freedom in the Cloud
10
+#
11
+# Recent version of guile
12
+#
13
+# License
14
+# =======
15
+#
16
+# Copyright (C) 2017 Bob Mottram <bob@freedombone.net>
17
+#
18
+# This program is free software: you can redistribute it and/or modify
19
+# it under the terms of the GNU Affero General Public License as published by
20
+# the Free Software Foundation, either version 3 of the License, or
21
+# (at your option) any later version.
22
+#
23
+# This program is distributed in the hope that it will be useful,
24
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
25
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
26
+# GNU Affero General Public License for more details.
27
+#
28
+# You should have received a copy of the GNU Affero General Public License
29
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
30
+
31
+GUILE_VERSION='2.2.0'
32
+GUILE_HASH='c707b9cf6f97ecca3a4e3e704e62b83f95f1aec28ed1535f5d0a1d36af07a015'
33
+
34
+EIGHTSYNC_REPO="git://git.savannah.gnu.org/8sync.git"
35
+EIGHTSYNC_COMMIT='8cbb7f22227c0afdd3b0bd758ebec0efba2fa1e1'
36
+
37
+function install_8sync {
38
+    apt-get -qy install flex libunistring-dev libgc-dev autoconf texinfo
39
+
40
+    if [ ! -d $INSTALL_DIR ]; then
41
+        mkdir $INSTALL_DIR
42
+    fi
43
+    cd $INSTALL_DIR
44
+
45
+    git_clone $EIGHTSYNC_REPO $INSTALL_DIR/eightsync
46
+    cd $INSTALL_DIR/eightsync
47
+    git checkout ${EIGHTSYNC_COMMIT} -b ${EIGHTSYNC_COMMIT}
48
+
49
+    export GUILE_BASE_PATH=/opt/guile-${GUILE_VERSION}
50
+    export GUILE_CFLAGS="-I${GUILE_BASE_PATH}/include"
51
+    export GUILE_LIBS="-L${GUILE_BASE_PATH}/lib -lguile -lqthreads -ldl -ltermcap -lsocket -lnsl -lm"
52
+    ./bootstrap.sh
53
+    configure
54
+    make
55
+    make install
56
+}
57
+
58
+function install_guile {
59
+    # Currently this only works for x86_64
60
+    read_config_param ARCHITECTURE
61
+    if [[ ${ARCHITECTURE} != "x86_64" ]]; then
62
+        return
63
+    fi
64
+    GUILE_ARCH='x86_64'
65
+
66
+    apt-get -qy install flex libunistring-dev libgc-dev autoconf texinfo lzip wget
67
+
68
+    if [ ! -d $INSTALL_DIR ]; then
69
+        mkdir $INSTALL_DIR
70
+    fi
71
+    cd $INSTALL_DIR
72
+
73
+    if [ ! -f guile-${GUILE_VERSION}-pack-${GUILE_ARCH}-linux-gnu.tar.lz ]; then
74
+        wget https://ftp.gnu.org/gnu/guile/guile-${GUILE_VERSION}-pack-${GUILE_ARCH}-linux-gnu.tar.lz
75
+    fi
76
+    if [ ! -f guile-${GUILE_VERSION}-pack-${GUILE_ARCH}-linux-gnu.tar.lz ]; then
77
+        echo 'Unable to download guile pack'
78
+        exit 6735238
79
+    fi
80
+    CURR_GUILE_HASH=$(sha256sum guile-${GUILE_VERSION}-pack-${GUILE_ARCH}-linux-gnu.tar.lz | awk -F ' ' '{print $1}')
81
+    if [[ "$CURR_GUILE_HASH" != "$GUILE_HASH" ]]; then
82
+        echo 'Guile hash does not match'
83
+        exit 7237625
84
+    fi
85
+    cd /
86
+    tar xvf $INSTALL_DIR/guile-${GUILE_VERSION}-pack-${GUILE_ARCH}-linux-gnu.tar.lz
87
+    if [ ! -d /opt/guile-${GUILE_VERSION}/bin ]; then
88
+        echo 'Guile was not installed'
89
+        exit 825269
90
+    fi
91
+    echo "export GUILE_PATH=/opt/guile-${GUILE_VERSION}/bin" >> ~/.bashrc
92
+    echo 'export PATH=$PATH:$GUILE_PATH' >> ~/.bashrc
93
+}
94
+
95
+# NOTE: deliberately no exit 0

+ 1
- 1
src/freedombone-utils-setup Bestand weergeven

@@ -260,7 +260,7 @@ function initial_setup {
260 260
     apt-get -yq dist-upgrade
261 261
     apt-get -yq install ca-certificates
262 262
     apt-get -yq install apt-utils
263
-    apt-get -yq install cryptsetup libgfshare-bin obnam sshpass wget avahi-daemon
263
+    apt-get -yq install cryptsetup libgfshare-bin duplicity sshpass wget avahi-daemon
264 264
     apt-get -yq install avahi-utils avahi-discover connect-proxy openssh-server
265 265
     apt-get -yq install sudo git dialog build-essential avahi-daemon avahi-utils
266 266
     apt-get -yq install avahi-discover avahi-autoipd iptables dnsutils net-tools

+ 14
- 10
website/EN/app_matrix.html Bestand weergeven

@@ -3,7 +3,7 @@
3 3
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
5 5
 <head>
6
-<!-- 2017-05-10 Wed 20:25 -->
6
+<!-- 2017-08-23 Wed 19:23 -->
7 7
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8 8
 <meta name="viewport" content="width=device-width, initial-scale=1" />
9 9
 <title></title>
@@ -260,9 +260,13 @@ for the JavaScript code in this tag.
260 260
 Matrix is a federated communications system, typically for multi-user chat, with end-to-end content security features. You can consider it to be like a modernized version of IRC chat where the crypto and access controls have been built in by default. At present Matrix is really only a creature of the clearnet and so there isn't any way to protect the metadata. Despite the talk of security the lack of metadata defenses make this really only suitable for public communications, similar to microblogging or public IRC channels.
261 261
 </p>
262 262
 
263
-<div id="outline-container-orgc5ac459" class="outline-2">
264
-<h2 id="orgc5ac459">Installation</h2>
265
-<div class="outline-text-2" id="text-orgc5ac459">
263
+<p>
264
+Another consideration is that since matrix operates on the usual HTTPS port number (443) this may make it difficult for ISPs or governments to censor this type of communications via port blocking without significant blowback.
265
+</p>
266
+
267
+<div id="outline-container-orgc78770d" class="outline-2">
268
+<h2 id="orgc78770d">Installation</h2>
269
+<div class="outline-text-2" id="text-orgc78770d">
266 270
 <p>
267 271
 Log into your system with:
268 272
 </p>
@@ -282,9 +286,9 @@ Select <b>Add/Remove Apps</b> then <b>matrix</b>. You will then be asked for a d
282 286
 </div>
283 287
 </div>
284 288
 
285
-<div id="outline-container-orgd4dad6a" class="outline-2">
286
-<h2 id="orgd4dad6a">Initial setup</h2>
287
-<div class="outline-text-2" id="text-orgd4dad6a">
289
+<div id="outline-container-org5262b52" class="outline-2">
290
+<h2 id="org5262b52">Initial setup</h2>
291
+<div class="outline-text-2" id="text-org5262b52">
288 292
 <p>
289 293
 Go to the <b>Administrator control panel</b> and select <b>Passwords</b> then <b>matrix</b>. This will give you the password to initially log in to the system and you can change it later from a client app if needed.
290 294
 </p>
@@ -299,9 +303,9 @@ Other client apps are available but are currently mostly only at the alpha stage
299 303
 </div>
300 304
 </div>
301 305
 
302
-<div id="outline-container-org43f1308" class="outline-2">
303
-<h2 id="org43f1308">DNS setup</h2>
304
-<div class="outline-text-2" id="text-org43f1308">
306
+<div id="outline-container-orgd8eede9" class="outline-2">
307
+<h2 id="orgd8eede9">DNS setup</h2>
308
+<div class="outline-text-2" id="text-orgd8eede9">
305 309
 <p>
306 310
 It's recommended that you add an SRV record for Matrix to your DNS setup. How you do this will depend upon your dynamic DNS provider and their web interface. On FreeDNS on the subdomains settings in addition to the subdomain which you are using for the matrix server create an extra entry as follows:
307 311
 </p>