|
@@ -115,6 +115,7 @@ MICROBLOG_DOMAIN_NAME=
|
115
|
115
|
MICROBLOG_FREEDNS_SUBDOMAIN_CODE=
|
116
|
116
|
MICROBLOG_REPO="git://gitorious.org/social/mainline.git"
|
117
|
117
|
MICROBLOG_ADMIN_PASSWORD=
|
|
118
|
+MICROBLOG_INSTALLED="no"
|
118
|
119
|
|
119
|
120
|
# Domain name or redmatrix installation
|
120
|
121
|
REDMATRIX_DOMAIN_NAME=
|
|
@@ -122,6 +123,7 @@ REDMATRIX_FREEDNS_SUBDOMAIN_CODE=
|
122
|
123
|
REDMATRIX_REPO="https://github.com/friendica/red.git"
|
123
|
124
|
REDMATRIX_ADDONS_REPO="https://github.com/friendica/red-addons.git"
|
124
|
125
|
REDMATRIX_ADMIN_PASSWORD=
|
|
126
|
+REDMATRIX_INSTALLED="no"
|
125
|
127
|
|
126
|
128
|
# Domain name or freedns subdomain for Owncloud installation
|
127
|
129
|
OWNCLOUD_DOMAIN_NAME=
|
|
@@ -130,6 +132,7 @@ OWNCLOUD_FREEDNS_SUBDOMAIN_CODE=
|
130
|
132
|
OWNCLOUD_ARCHIVE="owncloud-7.0.2.tar.bz2"
|
131
|
133
|
OWNCLOUD_DOWNLOAD="https://download.owncloud.org/community/$OWNCLOUD_ARCHIVE"
|
132
|
134
|
OWNCLOUD_HASH="ea07124a1b9632aa5227240d655e4d84967fb6dd49e4a16d3207d6179d031a3a"
|
|
135
|
+OWNCLOUD_INSTALLED="no"
|
133
|
136
|
|
134
|
137
|
# Domain name or freedns subdomain for your wiki
|
135
|
138
|
WIKI_FREEDNS_SUBDOMAIN_CODE=
|
|
@@ -137,6 +140,7 @@ WIKI_DOMAIN_NAME=
|
137
|
140
|
WIKI_ARCHIVE="dokuwiki-stable.tgz"
|
138
|
141
|
WIKI_DOWNLOAD="http://download.dokuwiki.org/src/dokuwiki/$WIKI_ARCHIVE"
|
139
|
142
|
WIKI_HASH="a0e79986b87b2744421ce3c33b43a21f296deadd81b1789c25fa4bb095e8e470"
|
|
143
|
+WIKI_INSTALLED="no"
|
140
|
144
|
|
141
|
145
|
# see https://www.dokuwiki.org/template:mnml-blog
|
142
|
146
|
# https://andreashaerter.com/tmp/downloads/dokuwiki-template-mnml-blog/CHECKSUMS.asc
|
|
@@ -297,6 +301,105 @@ function check_hwrng {
|
297
|
301
|
fi
|
298
|
302
|
}
|
299
|
303
|
|
|
304
|
+function backup_to_friends_servers {
|
|
305
|
+ if grep -Fxq "backup_to_friends_servers" $COMPLETION_FILE; then
|
|
306
|
+ return
|
|
307
|
+ fi
|
|
308
|
+ if [ ! $FRIENDS_SERVERS_LIST ]; then
|
|
309
|
+ return
|
|
310
|
+ fi
|
|
311
|
+
|
|
312
|
+ apt-get -y --force-yes install duplicity
|
|
313
|
+
|
|
314
|
+ # script to do backups
|
|
315
|
+ echo '#!/bin/bash' > /usr/bin/backup2friends
|
|
316
|
+ echo 'GPG_KEY=$1' >> /usr/bin/backup2friends
|
|
317
|
+ echo '' >> /usr/bin/backup2friends
|
|
318
|
+ echo "if [ ! -f $FRIENDS_SERVERS_LIST ]; then" >> /usr/bin/backup2friends
|
|
319
|
+ echo ' exit 1' >> /usr/bin/backup2friends
|
|
320
|
+ echo 'fi' >> /usr/bin/backup2friends
|
|
321
|
+ echo '' >> /usr/bin/backup2friends
|
|
322
|
+ echo 'if [ ! $GPG_KEY ]; then' >> /usr/bin/backup2friends
|
|
323
|
+ echo " echo 'Unable to perform automated backup. You need to add a GPG key to /etc/cron.daily/backuptofriends' | mail -s 'Backup failure' $MY_USERNAME@$DOMAIN_NAME" >> /usr/bin/backup2friends
|
|
324
|
+ echo ' exit 2' >> /usr/bin/backup2friends
|
|
325
|
+ echo 'fi' >> /usr/bin/backup2friends
|
|
326
|
+ echo '' >> /usr/bin/backup2friends
|
|
327
|
+
|
|
328
|
+ echo '# Put some files into a temporary directory so that they can be easily backed up' >> /usr/bin/backup2friends
|
|
329
|
+ echo "if [ ! -d /home/$MY_USERNAME/tempfiles ]; then" >> /usr/bin/backup2friends
|
|
330
|
+ echo " mkdir /home/$MY_USERNAME/tempfiles" >> /usr/bin/backup2friends
|
|
331
|
+ echo 'fi' >> /usr/bin/backup2friends
|
|
332
|
+ if [[ $MICROBLOG_INSTALLED == "yes" ]]; then
|
|
333
|
+ echo "mysqldump --password=$MARIADB_PASSWORD gnusocial > /home/$MY_USERNAME/tempfiles/gnusocial.sql" >> /usr/bin/backup2friends
|
|
334
|
+ fi
|
|
335
|
+ if [[ $REDMATRIX_INSTALLED == "yes" ]]; then
|
|
336
|
+ echo "mysqldump --password=$MARIADB_PASSWORD redmatrix > /home/$MY_USERNAME/tempfiles/redmatrix.sql" >> /usr/bin/backup2friends
|
|
337
|
+ fi
|
|
338
|
+ if [[ $OWNCLOUD_INSTALLED == "yes" ]]; then
|
|
339
|
+ echo "tar -czvf /home/$MY_USERNAME/tempfiles/owncloud.tar.gz /var/www/$OWNCLOUD_DOMAIN_NAME/htdocs/config /var/www/$OWNCLOUD_DOMAIN_NAME/htdocs/data" >> /usr/bin/backup2friends
|
|
340
|
+ fi
|
|
341
|
+ if [[ $WIKI_INSTALLED == "yes" ]]; then
|
|
342
|
+ echo "tar -czvf /home/$MY_USERNAME/tempfiles/wiki.tar.gz /var/www/$WIKI_DOMAIN_NAME/htdocs" >> /usr/bin/backup2friends
|
|
343
|
+ fi
|
|
344
|
+ echo 'tar -czvf /home/$MY_USERNAME/tempfiles/temp.tar.gz /home/$MY_USERNAME/.gnupg /home/$MY_USERNAME/.muttrc /home/$MY_USERNAME/.procmailrc /home/$MY_USERNAME/.ssh /home/$MY_USERNAME/personal' >> /usr/bin/backup2friends
|
|
345
|
+
|
|
346
|
+ echo '' >> /usr/bin/backup2friends
|
|
347
|
+ echo 'while read remote_server' >> /usr/bin/backup2friends
|
|
348
|
+ echo 'do' >> /usr/bin/backup2friends
|
|
349
|
+ echo ' # Get the server and its password' >> /usr/bin/backup2friends
|
|
350
|
+ echo ' SERVER="${* %%remote_server}"' >> /usr/bin/backup2friends
|
|
351
|
+ echo ' FTP_PASSWORD="${remote_server%% *}"' >> /usr/bin/backup2friends
|
|
352
|
+ echo '' >> /usr/bin/backup2friends
|
|
353
|
+ echo ' # Backup the public mailing list' >> /usr/bin/backup2friends
|
|
354
|
+ echo " if [ -d $PUBLIC_MAILING_LIST_DIRECTORY ]; then" >> /usr/bin/backup2friends
|
|
355
|
+ echo " duplicity incr --ssh-askpass --encrypt-key $GPG_KEY --full-if-older-than 4W --exclude-other-filesystems $PUBLIC_MAILING_LIST_DIRECTORY $SERVER/publicmailinglist" >> /usr/bin/backup2friends
|
|
356
|
+ echo ' fi' >> /usr/bin/backup2friends
|
|
357
|
+ echo '' >> /usr/bin/backup2friends
|
|
358
|
+ echo ' # Backup xmpp settings' >> /usr/bin/backup2friends
|
|
359
|
+ echo " if [ -d $XMPP_DIRECTORY ]; then" >> /usr/bin/backup2friends
|
|
360
|
+ echo " duplicity incr --ssh-askpass --encrypt-key $GPG_KEY --full-if-older-than 4W --exclude-other-filesystems $XMPP_DIRECTORY $SERVER/xmpp" >> /usr/bin/backup2friends
|
|
361
|
+ echo ' fi' >> /usr/bin/backup2friends
|
|
362
|
+ echo '' >> /usr/bin/backup2friends
|
|
363
|
+ echo ' # Backup web content and other stuff' >> /usr/bin/backup2friends
|
|
364
|
+ echo " if [ -d /home/$MY_USERNAME/tempfiles ]; then" >> /usr/bin/backup2friends
|
|
365
|
+ echo " duplicity incr --ssh-askpass --encrypt-key $GPG_KEY --full-if-older-than 4W --exclude-other-filesystems /home/$MY_USERNAME/tempfiles $SERVER/tempfiles" >> /usr/bin/backup2friends
|
|
366
|
+ echo ' fi' >> /usr/bin/backup2friends
|
|
367
|
+ echo '' >> /usr/bin/backup2friends
|
|
368
|
+ echo ' # Backup email' >> /usr/bin/backup2friends
|
|
369
|
+ echo " if [ -d /home/$MY_USERNAME/Maildir ]; then" >> /usr/bin/backup2friends
|
|
370
|
+ echo " duplicity incr --ssh-askpass --encrypt-key $GPG_KEY --full-if-older-than 4W --exclude-other-filesystems /home/$MY_USERNAME/Maildir $SERVER/Maildir" >> /usr/bin/backup2friends
|
|
371
|
+ echo ' fi' >> /usr/bin/backup2friends
|
|
372
|
+ echo '' >> /usr/bin/backup2friends
|
|
373
|
+ echo ' # Backup DLNA cache' >> /usr/bin/backup2friends
|
|
374
|
+ echo " if [ -d /var/cache/minidlna ]; then" >> /usr/bin/backup2friends
|
|
375
|
+ echo " duplicity incr --ssh-askpass --encrypt-key $GPG_KEY --full-if-older-than 4W --exclude-other-filesystems /var/cache/minidlna $SERVER/dlna" >> /usr/bin/backup2friends
|
|
376
|
+ echo ' fi' >> /usr/bin/backup2friends
|
|
377
|
+ echo '' >> /usr/bin/backup2friends
|
|
378
|
+
|
|
379
|
+ echo ' duplicity --ssh-askpass --force cleanup $SERVER' >> /usr/bin/backup2friends
|
|
380
|
+ echo ' duplicity --ssh-askpass --force remove-all-but-n-full 2 $SERVER' >> /usr/bin/backup2friends
|
|
381
|
+ echo "done < $FRIENDS_SERVERS_LIST" >> /usr/bin/backup2friends
|
|
382
|
+ echo '' >> /usr/bin/backup2friends
|
|
383
|
+ echo '# Remove temporary files' >> /usr/bin/backup2friends
|
|
384
|
+ echo "if [ -d /home/$MY_USERNAME/tempfiles ]; then" >> /usr/bin/backup2friends
|
|
385
|
+ echo " rm -rf /home/$MY_USERNAME/tempfiles" >> /usr/bin/backup2friends
|
|
386
|
+ echo 'fi' >> /usr/bin/backup2friends
|
|
387
|
+ echo 'exit 0' >> /usr/bin/backup2friends
|
|
388
|
+ chmod +x /usr/bin/backup2friends
|
|
389
|
+
|
|
390
|
+ # update crontab
|
|
391
|
+ echo '#!/bin/bash' > /etc/cron.daily/backuptofriends
|
|
392
|
+ if [ $MY_GPG_PUBLIC_KEY_ID ]; then
|
|
393
|
+ echo "GPG_KEY=$MY_GPG_PUBLIC_KEY_ID" >> /etc/cron.daily/backuptofriends
|
|
394
|
+ else
|
|
395
|
+ echo 'GPG_KEY=' >> /etc/cron.daily/backuptofriends
|
|
396
|
+ fi
|
|
397
|
+ echo '/usr/bin/backup2friends $GPG_KEY' >> /etc/cron.daily/backuptofriends
|
|
398
|
+ chmod +x /etc/cron.daily/backuptofriends
|
|
399
|
+
|
|
400
|
+ echo 'backup_to_friends_servers' >> $COMPLETION_FILE
|
|
401
|
+}
|
|
402
|
+
|
300
|
403
|
function remove_default_user {
|
301
|
404
|
# make sure you don't use the default user account
|
302
|
405
|
if [[ $MY_USERNAME == "debian" ]]; then
|
|
@@ -1918,6 +2021,7 @@ function import_email {
|
1918
|
2021
|
EMAIL_COMPLETE_MSG=' *** Freedombone mailbox installation is complete ***'
|
1919
|
2022
|
if grep -Fxq "import_email" $COMPLETION_FILE; then
|
1920
|
2023
|
if [[ $SYSTEM_TYPE == "$VARIANT_MAILBOX" ]]; then
|
|
2024
|
+ backup_to_friends_servers
|
1921
|
2025
|
echo ''
|
1922
|
2026
|
echo "$EMAIL_COMPLETE_MSG"
|
1923
|
2027
|
if [ -d $USB_MOUNT ]; then
|
|
@@ -1941,6 +2045,7 @@ function import_email {
|
1941
|
2045
|
fi
|
1942
|
2046
|
echo 'import_email' >> $COMPLETION_FILE
|
1943
|
2047
|
if [[ $SYSTEM_TYPE == "$VARIANT_MAILBOX" ]]; then
|
|
2048
|
+ backup_to_friends_servers
|
1944
|
2049
|
apt-get -y --force-yes autoremove
|
1945
|
2050
|
# unmount any attached usb drive
|
1946
|
2051
|
echo ''
|
|
@@ -2003,6 +2108,8 @@ function install_owncloud {
|
2003
|
2108
|
OWNCLOUD_COMPLETION_MSG2="Open $OWNCLOUD_DOMAIN_NAME in a web browser to complete the setup"
|
2004
|
2109
|
if grep -Fxq "install_owncloud" $COMPLETION_FILE; then
|
2005
|
2110
|
if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" ]]; then
|
|
2111
|
+ backup_to_friends_servers
|
|
2112
|
+ apt-get -y --force-yes autoremove
|
2006
|
2113
|
# unmount any attached usb drive
|
2007
|
2114
|
if [ -d $USB_MOUNT ]; then
|
2008
|
2115
|
umount $USB_MOUNT
|
|
@@ -2172,9 +2279,12 @@ function install_owncloud {
|
2172
|
2279
|
echo 'WARNING: No freeDNS subdomain code given for Owncloud. It is assumed that you are using some other dynamic DNS provider.'
|
2173
|
2280
|
fi
|
2174
|
2281
|
|
|
2282
|
+ OWNCLOUD_INSTALLED="yes"
|
2175
|
2283
|
echo 'install_owncloud' >> $COMPLETION_FILE
|
2176
|
2284
|
|
2177
|
2285
|
if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" ]]; then
|
|
2286
|
+ backup_to_friends_servers
|
|
2287
|
+ apt-get -y --force-yes autoremove
|
2178
|
2288
|
# unmount any attached usb drive
|
2179
|
2289
|
if [ -d $USB_MOUNT ]; then
|
2180
|
2290
|
umount $USB_MOUNT
|
|
@@ -2509,6 +2619,7 @@ function install_wiki {
|
2509
|
2619
|
chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
|
2510
|
2620
|
fi
|
2511
|
2621
|
|
|
2622
|
+ WIKI_INSTALLED="yes"
|
2512
|
2623
|
echo 'install_wiki' >> $COMPLETION_FILE
|
2513
|
2624
|
}
|
2514
|
2625
|
|
|
@@ -2905,6 +3016,7 @@ quit" > $INSTALL_DIR/batch.sql
|
2905
|
3016
|
chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
|
2906
|
3017
|
fi
|
2907
|
3018
|
|
|
3019
|
+ MICROBLOG_INSTALLED="yes"
|
2908
|
3020
|
echo 'install_gnu_social' >> $COMPLETION_FILE
|
2909
|
3021
|
}
|
2910
|
3022
|
|
|
@@ -3114,6 +3226,7 @@ quit" > $INSTALL_DIR/batch.sql
|
3114
|
3226
|
chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
|
3115
|
3227
|
fi
|
3116
|
3228
|
|
|
3229
|
+ REDMATRIX_INSTALLED="yes"
|
3117
|
3230
|
echo 'install_redmatrix' >> $COMPLETION_FILE
|
3118
|
3231
|
}
|
3119
|
3232
|
|
|
@@ -3646,67 +3759,6 @@ IPT_NAME
|
3646
|
3759
|
echo 'create_restore_script' >> $COMPLETION_FILE
|
3647
|
3760
|
}
|
3648
|
3761
|
|
3649
|
|
-function backup_to_friends_servers {
|
3650
|
|
- if grep -Fxq "backup_to_friends_servers" $COMPLETION_FILE; then
|
3651
|
|
- return
|
3652
|
|
- fi
|
3653
|
|
- if [ ! $FRIENDS_SERVERS_LIST ]; then
|
3654
|
|
- return
|
3655
|
|
- fi
|
3656
|
|
-
|
3657
|
|
- apt-get -y --force-yes install duplicity
|
3658
|
|
-
|
3659
|
|
- # script to do backups
|
3660
|
|
- echo '#!/bin/bash' > /usr/bin/backup2friends
|
3661
|
|
- echo 'GPG_KEY=$1' >> /usr/bin/backup2friends
|
3662
|
|
- echo '' >> /usr/bin/backup2friends
|
3663
|
|
- echo "if [ ! -f $FRIENDS_SERVERS_LIST ]; then" >> /usr/bin/backup2friends
|
3664
|
|
- echo ' exit 1' >> /usr/bin/backup2friends
|
3665
|
|
- echo 'fi' >> /usr/bin/backup2friends
|
3666
|
|
- echo '' >> /usr/bin/backup2friends
|
3667
|
|
- echo 'if [ ! $GPG_KEY ]; then' >> /usr/bin/backup2friends
|
3668
|
|
- echo " echo 'Unable to perform automated backup. You need to add a GPG key to /etc/cron.daily/backuptofriends' | mail -s 'Backup failure' $MY_USERNAME@$DOMAIN_NAME" >> /usr/bin/backup2friends
|
3669
|
|
- echo ' exit 2' >> /usr/bin/backup2friends
|
3670
|
|
- echo 'fi' >> /usr/bin/backup2friends
|
3671
|
|
- echo '' >> /usr/bin/backup2friends
|
3672
|
|
- echo "if [ ! -d /home/$MY_USERNAME/backups ]; then" >> /usr/bin/backup2friends
|
3673
|
|
- echo " mkdir /home/$MY_USERNAME/backups" >> /usr/bin/backup2friends
|
3674
|
|
- echo 'fi' >> /usr/bin/backup2friends
|
3675
|
|
- echo '' >> /usr/bin/backup2friends
|
3676
|
|
- echo '# Backup the public mailing list' >> /usr/bin/backup2friends
|
3677
|
|
- echo "if [ -d $PUBLIC_MAILING_LIST_DIRECTORY ]; then" >> /usr/bin/backup2friends
|
3678
|
|
- echo " tar -czvf /home/$MY_USERNAME/backups/mailinglist.tar.gz $PUBLIC_MAILING_LIST_DIRECTORY" >> /usr/bin/backup2friends
|
3679
|
|
- echo 'fi' >> /usr/bin/backup2friends
|
3680
|
|
- echo '' >> /usr/bin/backup2friends
|
3681
|
|
- echo '# Backup XMPP settings' >> /usr/bin/backup2friends
|
3682
|
|
- echo "if [ -d $XMPP_DIRECTORY ]; then" >> /usr/bin/backup2friends
|
3683
|
|
- echo " tar -czvf /home/$MY_USERNAME/backups/xmpp.tar.gz $XMPP_DIRECTORY" >> /usr/bin/backup2friends
|
3684
|
|
- echo 'fi' >> /usr/bin/backup2friends
|
3685
|
|
- echo '' >> /usr/bin/backup2friends
|
3686
|
|
- echo 'while read remote_server' >> /usr/bin/backup2friends
|
3687
|
|
- echo 'do' >> /usr/bin/backup2friends
|
3688
|
|
- echo ' SERVER="${* %%remote_server}"' >> /usr/bin/backup2friends
|
3689
|
|
- echo ' FTP_PASSWORD="${remote_server%% *}"' >> /usr/bin/backup2friends
|
3690
|
|
- echo " duplicity incr --ssh-askpass --encrypt-key $GPG_KEY --full-if-older-than 4W --exclude-other-filesystems /home/$MY_USERNAME $SERVER" >> /usr/bin/backup2friends
|
3691
|
|
- echo ' duplicity --ssh-askpass --force cleanup $SERVER' >> /usr/bin/backup2friends
|
3692
|
|
- echo ' duplicity --ssh-askpass --force remove-all-but-n-full 2 $SERVER' >> /usr/bin/backup2friends
|
3693
|
|
- echo "done < $FRIENDS_SERVERS_LIST" >> /usr/bin/backup2friends
|
3694
|
|
- echo 'exit 0' >> /usr/bin/backup2friends
|
3695
|
|
- chmod +x /usr/bin/backup2friends
|
3696
|
|
-
|
3697
|
|
- # update crontab
|
3698
|
|
- echo '#!/bin/bash' > /etc/cron.daily/backuptofriends
|
3699
|
|
- if [ $MY_GPG_PUBLIC_KEY_ID ]; then
|
3700
|
|
- echo "GPG_KEY=$MY_GPG_PUBLIC_KEY_ID" >> /etc/cron.daily/backuptofriends
|
3701
|
|
- else
|
3702
|
|
- echo 'GPG_KEY=' >> /etc/cron.daily/backuptofriends
|
3703
|
|
- fi
|
3704
|
|
- echo '/usr/bin/backup2friends $GPG_KEY' >> /etc/cron.daily/backuptofriends
|
3705
|
|
- chmod +x /etc/cron.daily/backuptofriends
|
3706
|
|
-
|
3707
|
|
- echo 'backup_to_friends_servers' >> $COMPLETION_FILE
|
3708
|
|
-}
|
3709
|
|
-
|
3710
|
3762
|
function install_final {
|
3711
|
3763
|
if grep -Fxq "install_final" $COMPLETION_FILE; then
|
3712
|
3764
|
return
|
|
@@ -3787,5 +3839,6 @@ install_redmatrix
|
3787
|
3839
|
install_dlna_server
|
3788
|
3840
|
install_mediagoblin
|
3789
|
3841
|
install_final
|
|
3842
|
+apt-get -y --force-yes autoremove
|
3790
|
3843
|
echo 'Freedombone installation is complete'
|
3791
|
3844
|
exit 0
|