|  | @@ -699,13 +699,14 @@ function restore_owncloud {
 | 
	
		
			
			| 699 | 699 |              return
 | 
	
		
			
			| 700 | 700 |          fi
 | 
	
		
			
			| 701 | 701 |      fi
 | 
	
		
			
			| 702 |  | -	OWNCLOUD_PATH=/var/www/owncloud
 | 
	
		
			
			|  | 702 | +    OWNCLOUD_PATH=/var/www/owncloud
 | 
	
		
			
			| 703 | 703 |      if grep -q "Owncloud domain" $COMPLETION_FILE; then
 | 
	
		
			
			| 704 | 704 |          OWNCLOUD_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Owncloud domain" | awk -F ':' '{print $2}')
 | 
	
		
			
			| 705 | 705 |          restore_database_from_friend owncloud $OWNCLOUD_DOMAIN_NAME
 | 
	
		
			
			| 706 | 706 |  
 | 
	
		
			
			| 707 | 707 |          if [ -d $SERVER_DIRECTORY/backup/owncloudfiles ]; then
 | 
	
		
			
			| 708 | 708 |              echo $"Restoring Owncloud installation"
 | 
	
		
			
			|  | 709 | +            restore_directory_from_friend /root/tempowncloudfiles owncloudfiles
 | 
	
		
			
			| 709 | 710 |              cp -r /root/tempowncloudfiles/* /
 | 
	
		
			
			| 710 | 711 |              if [ ! "$?" = "0" ]; then
 | 
	
		
			
			| 711 | 712 |                  exit 1458
 | 
	
	
		
			
			|  | @@ -715,6 +716,7 @@ function restore_owncloud {
 | 
	
		
			
			| 715 | 716 |  
 | 
	
		
			
			| 716 | 717 |          if [ -d $SERVER_DIRECTORY/backup/owncloudconfig ]; then
 | 
	
		
			
			| 717 | 718 |              echo $"Restoring Owncloud installation"
 | 
	
		
			
			|  | 719 | +            restore_directory_from_friend /root/tempowncloudconfig owncloudconfig
 | 
	
		
			
			| 718 | 720 |              cp -r /root/tempowncloudconfig/* /
 | 
	
		
			
			| 719 | 721 |              if [ ! "$?" = "0" ]; then
 | 
	
		
			
			| 720 | 722 |                  exit 2571
 | 
	
	
		
			
			|  | @@ -723,16 +725,16 @@ function restore_owncloud {
 | 
	
		
			
			| 723 | 725 |          fi
 | 
	
		
			
			| 724 | 726 |  
 | 
	
		
			
			| 725 | 727 |          chown -R www-data:www-data $OWNCLOUD_PATH
 | 
	
		
			
			| 726 |  | -		chown root:root $OWNCLOUD_PATH/config/config.php
 | 
	
		
			
			|  | 728 | +        chown root:root $OWNCLOUD_PATH/config/config.php
 | 
	
		
			
			| 727 | 729 |  
 | 
	
		
			
			| 728 | 730 |          # re-index files
 | 
	
		
			
			| 729 | 731 |          for d in /home/*/ ; do
 | 
	
		
			
			| 730 | 732 |              USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
 | 
	
		
			
			| 731 | 733 |              if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
 | 
	
		
			
			| 732 | 734 |                  $OWNCLOUD_PATH/occ files:scan $USERNAME
 | 
	
		
			
			| 733 |  | -			fi
 | 
	
		
			
			| 734 |  | -		done
 | 
	
		
			
			| 735 |  | -	fi
 | 
	
		
			
			|  | 735 | +            fi
 | 
	
		
			
			|  | 736 | +        done
 | 
	
		
			
			|  | 737 | +    fi
 | 
	
		
			
			| 736 | 738 |  }
 | 
	
		
			
			| 737 | 739 |  
 | 
	
		
			
			| 738 | 740 |  function restore_mediagoblin {
 | 
	
	
		
			
			|  | @@ -745,246 +747,246 @@ function restore_mediagoblin {
 | 
	
		
			
			| 745 | 747 |          MEDIAGOBLIN_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Mediagoblin domain" | awk -F ':' '{print $2}')
 | 
	
		
			
			| 746 | 748 |          if [ -d $SERVER_DIRECTORY/backup/mediagoblin ]; then
 | 
	
		
			
			| 747 | 749 |              echo $"Restoring Mediagoblin installation"
 | 
	
		
			
			| 748 |  | -			restore_directory_from_friend /root/tempmediagoblin mediagoblin
 | 
	
		
			
			| 749 |  | -			cp -r /root/tempmediagoblin/* /
 | 
	
		
			
			| 750 |  | -			if [ ! "$?" = "0" ]; then
 | 
	
		
			
			| 751 |  | -				exit 5626
 | 
	
		
			
			| 752 |  | -			fi
 | 
	
		
			
			| 753 |  | -			rm -rf /root/tempmediagoblin
 | 
	
		
			
			| 754 |  | -        fi
 | 
	
		
			
			| 755 |  | -		chown -hR mediagoblin:www-data /var/www/$MEDIAGOBLIN_DOMAIN_NAME/htdocs
 | 
	
		
			
			| 756 |  | -	fi
 | 
	
		
			
			|  | 750 | +            restore_directory_from_friend /root/tempmediagoblin mediagoblin
 | 
	
		
			
			|  | 751 | +            cp -r /root/tempmediagoblin/* /
 | 
	
		
			
			|  | 752 | +            if [ ! "$?" = "0" ]; then
 | 
	
		
			
			|  | 753 | +                exit 5626
 | 
	
		
			
			|  | 754 | +            fi
 | 
	
		
			
			|  | 755 | +            rm -rf /root/tempmediagoblin
 | 
	
		
			
			|  | 756 | +        fi
 | 
	
		
			
			|  | 757 | +        chown -hR mediagoblin:www-data /var/www/$MEDIAGOBLIN_DOMAIN_NAME/htdocs
 | 
	
		
			
			|  | 758 | +    fi
 | 
	
		
			
			| 757 | 759 |  }
 | 
	
		
			
			| 758 | 760 |  
 | 
	
		
			
			| 759 | 761 |  function restore_gogs {
 | 
	
		
			
			| 760 |  | -	if [[ $RESTORE_APP != 'all' ]]; then
 | 
	
		
			
			| 761 |  | -		if [[ $RESTORE_APP != 'gogs' ]]; then
 | 
	
		
			
			| 762 |  | -			return
 | 
	
		
			
			| 763 |  | -		fi
 | 
	
		
			
			| 764 |  | -	fi
 | 
	
		
			
			| 765 |  | -	if grep -q "Gogs domain" $COMPLETION_FILE; then
 | 
	
		
			
			| 766 |  | -		GIT_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Gogs domain" | awk -F ':' '{print $2}')
 | 
	
		
			
			| 767 |  | -		restore_database_from_friend gogs $GIT_DOMAIN_NAME
 | 
	
		
			
			| 768 |  | -		if [ -d $SERVER_DIRECTORY/backup/gogs ]; then
 | 
	
		
			
			| 769 |  | -			if [ ! -d /home/git/go/src/github.com/gogits/gogs/custom ]; then
 | 
	
		
			
			| 770 |  | -				mkdir -p /home/git/go/src/github.com/gogits/gogs/custom
 | 
	
		
			
			| 771 |  | -			fi
 | 
	
		
			
			| 772 |  | -			cp -r /root/tempgogs/home/git/go/src/github.com/gogits/gogs/custom/* /home/git/go/src/github.com/gogits/gogs/custom/
 | 
	
		
			
			| 773 |  | -			if [ ! "$?" = "0" ]; then
 | 
	
		
			
			| 774 |  | -				exit 5885
 | 
	
		
			
			| 775 |  | -			fi
 | 
	
		
			
			| 776 |  | -			echo $"Restoring Gogs repos"
 | 
	
		
			
			| 777 |  | -			restore_directory_from_friend /root/tempgogsrepos gogsrepos
 | 
	
		
			
			| 778 |  | -			cp -r /root/tempgogsrepos/home/git/gogs-repositories/* /home/git/gogs-repositories/
 | 
	
		
			
			| 779 |  | -			if [ ! "$?" = "0" ]; then
 | 
	
		
			
			| 780 |  | -				exit 7649
 | 
	
		
			
			| 781 |  | -			fi
 | 
	
		
			
			| 782 |  | -			echo $"Restoring Gogs authorized_keys"
 | 
	
		
			
			| 783 |  | -			restore_directory_from_friend /root/tempgogsssh gogsssh
 | 
	
		
			
			| 784 |  | -			if [ ! -d /home/git/.ssh ]; then
 | 
	
		
			
			| 785 |  | -				mkdir /home/git/.ssh
 | 
	
		
			
			| 786 |  | -			fi
 | 
	
		
			
			| 787 |  | -			cp -r /root/tempgogsssh/home/git/.ssh/* /home/git/.ssh/
 | 
	
		
			
			| 788 |  | -			if [ ! "$?" = "0" ]; then
 | 
	
		
			
			| 789 |  | -				exit 74239
 | 
	
		
			
			| 790 |  | -			fi
 | 
	
		
			
			| 791 |  | -			rm -rf /root/tempgogs
 | 
	
		
			
			| 792 |  | -			rm -rf /root/tempgogsrepos
 | 
	
		
			
			| 793 |  | -			rm -rf /root/tempgogsssh
 | 
	
		
			
			| 794 |  | -			chown -R git:git /home/git
 | 
	
		
			
			| 795 |  | -		fi
 | 
	
		
			
			| 796 |  | -	fi
 | 
	
		
			
			|  | 762 | +    if [[ $RESTORE_APP != 'all' ]]; then
 | 
	
		
			
			|  | 763 | +        if [[ $RESTORE_APP != 'gogs' ]]; then
 | 
	
		
			
			|  | 764 | +            return
 | 
	
		
			
			|  | 765 | +        fi
 | 
	
		
			
			|  | 766 | +    fi
 | 
	
		
			
			|  | 767 | +    if grep -q "Gogs domain" $COMPLETION_FILE; then
 | 
	
		
			
			|  | 768 | +        GIT_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Gogs domain" | awk -F ':' '{print $2}')
 | 
	
		
			
			|  | 769 | +        restore_database_from_friend gogs $GIT_DOMAIN_NAME
 | 
	
		
			
			|  | 770 | +        if [ -d $SERVER_DIRECTORY/backup/gogs ]; then
 | 
	
		
			
			|  | 771 | +            if [ ! -d /home/git/go/src/github.com/gogits/gogs/custom ]; then
 | 
	
		
			
			|  | 772 | +                mkdir -p /home/git/go/src/github.com/gogits/gogs/custom
 | 
	
		
			
			|  | 773 | +            fi
 | 
	
		
			
			|  | 774 | +            cp -r /root/tempgogs/home/git/go/src/github.com/gogits/gogs/custom/* /home/git/go/src/github.com/gogits/gogs/custom/
 | 
	
		
			
			|  | 775 | +            if [ ! "$?" = "0" ]; then
 | 
	
		
			
			|  | 776 | +                exit 5885
 | 
	
		
			
			|  | 777 | +            fi
 | 
	
		
			
			|  | 778 | +            echo $"Restoring Gogs repos"
 | 
	
		
			
			|  | 779 | +            restore_directory_from_friend /root/tempgogsrepos gogsrepos
 | 
	
		
			
			|  | 780 | +            cp -r /root/tempgogsrepos/home/git/gogs-repositories/* /home/git/gogs-repositories/
 | 
	
		
			
			|  | 781 | +            if [ ! "$?" = "0" ]; then
 | 
	
		
			
			|  | 782 | +                exit 7649
 | 
	
		
			
			|  | 783 | +            fi
 | 
	
		
			
			|  | 784 | +            echo $"Restoring Gogs authorized_keys"
 | 
	
		
			
			|  | 785 | +            restore_directory_from_friend /root/tempgogsssh gogsssh
 | 
	
		
			
			|  | 786 | +            if [ ! -d /home/git/.ssh ]; then
 | 
	
		
			
			|  | 787 | +                mkdir /home/git/.ssh
 | 
	
		
			
			|  | 788 | +            fi
 | 
	
		
			
			|  | 789 | +            cp -r /root/tempgogsssh/home/git/.ssh/* /home/git/.ssh/
 | 
	
		
			
			|  | 790 | +            if [ ! "$?" = "0" ]; then
 | 
	
		
			
			|  | 791 | +                exit 74239
 | 
	
		
			
			|  | 792 | +            fi
 | 
	
		
			
			|  | 793 | +            rm -rf /root/tempgogs
 | 
	
		
			
			|  | 794 | +            rm -rf /root/tempgogsrepos
 | 
	
		
			
			|  | 795 | +            rm -rf /root/tempgogsssh
 | 
	
		
			
			|  | 796 | +            chown -R git:git /home/git
 | 
	
		
			
			|  | 797 | +        fi
 | 
	
		
			
			|  | 798 | +    fi
 | 
	
		
			
			| 797 | 799 |  }
 | 
	
		
			
			| 798 | 800 |  
 | 
	
		
			
			| 799 | 801 |  function restore_wiki {
 | 
	
		
			
			| 800 |  | -	if [[ $RESTORE_APP != 'all' ]]; then
 | 
	
		
			
			| 801 |  | -		if [[ $RESTORE_APP != 'wiki' ]]; then
 | 
	
		
			
			| 802 |  | -			return
 | 
	
		
			
			| 803 |  | -		fi
 | 
	
		
			
			| 804 |  | -	fi
 | 
	
		
			
			| 805 |  | -	if [ -d $SERVER_DIRECTORY/backup/wiki ]; then
 | 
	
		
			
			| 806 |  | -		WIKI_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Wiki domain" | awk -F ':' '{print $2}')
 | 
	
		
			
			| 807 |  | -		echo $"Restoring Wiki installation $WIKI_DOMAIN_NAME"
 | 
	
		
			
			| 808 |  | -		restore_directory_from_friend /root/tempwiki wiki
 | 
	
		
			
			| 809 |  | -		cp -r /root/tempwiki/var/lib/dokuwiki/* /var/lib/dokuwiki/
 | 
	
		
			
			| 810 |  | -		if [ ! "$?" = "0" ]; then
 | 
	
		
			
			| 811 |  | -			exit 868
 | 
	
		
			
			| 812 |  | -		fi
 | 
	
		
			
			| 813 |  | -		restore_directory_from_friend /root/tempwiki2 wiki2
 | 
	
		
			
			| 814 |  | -		cp -r /root/tempwiki2/etc/dokuwiki/* /etc/dokuwiki/
 | 
	
		
			
			| 815 |  | -		if [ ! "$?" = "0" ]; then
 | 
	
		
			
			| 816 |  | -			exit 869
 | 
	
		
			
			| 817 |  | -		fi
 | 
	
		
			
			| 818 |  | -		rm -rf /root/tempwiki
 | 
	
		
			
			| 819 |  | -		rm -rf /root/tempwiki2
 | 
	
		
			
			| 820 |  | -		chown -R www-data:www-data /var/lib/dokuwiki/*
 | 
	
		
			
			| 821 |  | -		# Ensure that the bundled SSL cert is being used
 | 
	
		
			
			| 822 |  | -		if [ -f /etc/ssl/certs/${WIKI_DOMAIN_NAME}.bundle.crt ]; then
 | 
	
		
			
			| 823 |  | -			sed -i "s|${WIKI_DOMAIN_NAME}.crt|${WIKI_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${WIKI_DOMAIN_NAME}
 | 
	
		
			
			| 824 |  | -		fi
 | 
	
		
			
			| 825 |  | -		if [ -d /etc/letsencrypt/live/${WIKI_DOMAIN_NAME} ]; then
 | 
	
		
			
			| 826 |  | -			ln -s /etc/letsencrypt/live/${WIKI_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${WIKI_DOMAIN_NAME}.key
 | 
	
		
			
			| 827 |  | -			ln -s /etc/letsencrypt/live/${WIKI_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${WIKI_DOMAIN_NAME}.pem
 | 
	
		
			
			| 828 |  | -		fi
 | 
	
		
			
			| 829 |  | -	fi
 | 
	
		
			
			|  | 802 | +    if [[ $RESTORE_APP != 'all' ]]; then
 | 
	
		
			
			|  | 803 | +        if [[ $RESTORE_APP != 'wiki' ]]; then
 | 
	
		
			
			|  | 804 | +            return
 | 
	
		
			
			|  | 805 | +        fi
 | 
	
		
			
			|  | 806 | +    fi
 | 
	
		
			
			|  | 807 | +    if [ -d $SERVER_DIRECTORY/backup/wiki ]; then
 | 
	
		
			
			|  | 808 | +        WIKI_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Wiki domain" | awk -F ':' '{print $2}')
 | 
	
		
			
			|  | 809 | +        echo $"Restoring Wiki installation $WIKI_DOMAIN_NAME"
 | 
	
		
			
			|  | 810 | +        restore_directory_from_friend /root/tempwiki wiki
 | 
	
		
			
			|  | 811 | +        cp -r /root/tempwiki/var/lib/dokuwiki/* /var/lib/dokuwiki/
 | 
	
		
			
			|  | 812 | +        if [ ! "$?" = "0" ]; then
 | 
	
		
			
			|  | 813 | +            exit 868
 | 
	
		
			
			|  | 814 | +        fi
 | 
	
		
			
			|  | 815 | +        restore_directory_from_friend /root/tempwiki2 wiki2
 | 
	
		
			
			|  | 816 | +        cp -r /root/tempwiki2/etc/dokuwiki/* /etc/dokuwiki/
 | 
	
		
			
			|  | 817 | +        if [ ! "$?" = "0" ]; then
 | 
	
		
			
			|  | 818 | +            exit 869
 | 
	
		
			
			|  | 819 | +        fi
 | 
	
		
			
			|  | 820 | +        rm -rf /root/tempwiki
 | 
	
		
			
			|  | 821 | +        rm -rf /root/tempwiki2
 | 
	
		
			
			|  | 822 | +        chown -R www-data:www-data /var/lib/dokuwiki/*
 | 
	
		
			
			|  | 823 | +        # Ensure that the bundled SSL cert is being used
 | 
	
		
			
			|  | 824 | +        if [ -f /etc/ssl/certs/${WIKI_DOMAIN_NAME}.bundle.crt ]; then
 | 
	
		
			
			|  | 825 | +            sed -i "s|${WIKI_DOMAIN_NAME}.crt|${WIKI_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${WIKI_DOMAIN_NAME}
 | 
	
		
			
			|  | 826 | +        fi
 | 
	
		
			
			|  | 827 | +        if [ -d /etc/letsencrypt/live/${WIKI_DOMAIN_NAME} ]; then
 | 
	
		
			
			|  | 828 | +            ln -s /etc/letsencrypt/live/${WIKI_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${WIKI_DOMAIN_NAME}.key
 | 
	
		
			
			|  | 829 | +            ln -s /etc/letsencrypt/live/${WIKI_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${WIKI_DOMAIN_NAME}.pem
 | 
	
		
			
			|  | 830 | +        fi
 | 
	
		
			
			|  | 831 | +    fi
 | 
	
		
			
			| 830 | 832 |  }
 | 
	
		
			
			| 831 | 833 |  
 | 
	
		
			
			| 832 | 834 |  function restore_blog {
 | 
	
		
			
			| 833 |  | -	if [[ $RESTORE_APP != 'all' ]]; then
 | 
	
		
			
			| 834 |  | -		if [[ $RESTORE_APP != 'blog' ]]; then
 | 
	
		
			
			| 835 |  | -			return
 | 
	
		
			
			| 836 |  | -		fi
 | 
	
		
			
			| 837 |  | -	fi
 | 
	
		
			
			| 838 |  | -	if [ -d $SERVER_DIRECTORY/backup/blog ]; then
 | 
	
		
			
			| 839 |  | -		FULLBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Blog domain" | awk -F ':' '{print $2}')
 | 
	
		
			
			| 840 |  | -		echo $"Restoring blog installation $FULLBLOG_DOMAIN_NAME"
 | 
	
		
			
			| 841 |  | -		mkdir /root/tempblog
 | 
	
		
			
			| 842 |  | -		restore_directory_from_friend /root/tempblog blog
 | 
	
		
			
			| 843 |  | -		rm -rf /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs
 | 
	
		
			
			| 844 |  | -		cp -r /root/tempblog/var/www/${FULLBLOG_DOMAIN_NAME}/htdocs /var/www/${FULLBLOG_DOMAIN_NAME}/
 | 
	
		
			
			| 845 |  | -		if [ ! "$?" = "0" ]; then
 | 
	
		
			
			| 846 |  | -			exit 593
 | 
	
		
			
			| 847 |  | -		fi
 | 
	
		
			
			| 848 |  | -		rm -rf /root/tempblog
 | 
	
		
			
			| 849 |  | -		if [ ! -d /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content ]; then
 | 
	
		
			
			| 850 |  | -			echo $"No content directory found after restoring blog"
 | 
	
		
			
			| 851 |  | -			exit 287
 | 
	
		
			
			| 852 |  | -		fi
 | 
	
		
			
			| 853 |  | -		# Ensure that the bundled SSL cert is being used
 | 
	
		
			
			| 854 |  | -		if [ -f /etc/ssl/certs/${FULLBLOG_DOMAIN_NAME}.bundle.crt ]; then
 | 
	
		
			
			| 855 |  | -			sed -i "s|${FULLBLOG_DOMAIN_NAME}.crt|${FULLBLOG_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${FULLBLOG_DOMAIN_NAME}
 | 
	
		
			
			| 856 |  | -		fi
 | 
	
		
			
			| 857 |  | -		for d in /home/*/ ; do
 | 
	
		
			
			| 858 |  | -			USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
 | 
	
		
			
			| 859 |  | -			if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
 | 
	
		
			
			| 860 |  | -				if [ -d /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/uncategorized/post ]; then
 | 
	
		
			
			| 861 |  | -					mv /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/*.md /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/uncategorized/post
 | 
	
		
			
			| 862 |  | -				fi
 | 
	
		
			
			| 863 |  | -		done
 | 
	
		
			
			| 864 |  | -		if [ -d /etc/letsencrypt/live/${FULLBLOG_DOMAIN_NAME} ]; then
 | 
	
		
			
			| 865 |  | -			ln -s /etc/letsencrypt/live/${FULLBLOG_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${FULLBLOG_DOMAIN_NAME}.key
 | 
	
		
			
			| 866 |  | -			ln -s /etc/letsencrypt/live/${FULLBLOG_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${FULLBLOG_DOMAIN_NAME}.pem
 | 
	
		
			
			| 867 |  | -		fi
 | 
	
		
			
			| 868 |  | -	fi
 | 
	
		
			
			|  | 835 | +    if [[ $RESTORE_APP != 'all' ]]; then
 | 
	
		
			
			|  | 836 | +        if [[ $RESTORE_APP != 'blog' ]]; then
 | 
	
		
			
			|  | 837 | +            return
 | 
	
		
			
			|  | 838 | +        fi
 | 
	
		
			
			|  | 839 | +    fi
 | 
	
		
			
			|  | 840 | +    if [ -d $SERVER_DIRECTORY/backup/blog ]; then
 | 
	
		
			
			|  | 841 | +        FULLBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Blog domain" | awk -F ':' '{print $2}')
 | 
	
		
			
			|  | 842 | +        echo $"Restoring blog installation $FULLBLOG_DOMAIN_NAME"
 | 
	
		
			
			|  | 843 | +        mkdir /root/tempblog
 | 
	
		
			
			|  | 844 | +        restore_directory_from_friend /root/tempblog blog
 | 
	
		
			
			|  | 845 | +        rm -rf /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs
 | 
	
		
			
			|  | 846 | +        cp -r /root/tempblog/var/www/${FULLBLOG_DOMAIN_NAME}/htdocs /var/www/${FULLBLOG_DOMAIN_NAME}/
 | 
	
		
			
			|  | 847 | +        if [ ! "$?" = "0" ]; then
 | 
	
		
			
			|  | 848 | +            exit 593
 | 
	
		
			
			|  | 849 | +        fi
 | 
	
		
			
			|  | 850 | +        rm -rf /root/tempblog
 | 
	
		
			
			|  | 851 | +        if [ ! -d /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content ]; then
 | 
	
		
			
			|  | 852 | +            echo $"No content directory found after restoring blog"
 | 
	
		
			
			|  | 853 | +            exit 287
 | 
	
		
			
			|  | 854 | +        fi
 | 
	
		
			
			|  | 855 | +        # Ensure that the bundled SSL cert is being used
 | 
	
		
			
			|  | 856 | +        if [ -f /etc/ssl/certs/${FULLBLOG_DOMAIN_NAME}.bundle.crt ]; then
 | 
	
		
			
			|  | 857 | +            sed -i "s|${FULLBLOG_DOMAIN_NAME}.crt|${FULLBLOG_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${FULLBLOG_DOMAIN_NAME}
 | 
	
		
			
			|  | 858 | +        fi
 | 
	
		
			
			|  | 859 | +        for d in /home/*/ ; do
 | 
	
		
			
			|  | 860 | +            USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
 | 
	
		
			
			|  | 861 | +            if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
 | 
	
		
			
			|  | 862 | +                if [ -d /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/uncategorized/post ]; then
 | 
	
		
			
			|  | 863 | +                    mv /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/*.md /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/uncategorized/post
 | 
	
		
			
			|  | 864 | +                fi
 | 
	
		
			
			|  | 865 | +        done
 | 
	
		
			
			|  | 866 | +        if [ -d /etc/letsencrypt/live/${FULLBLOG_DOMAIN_NAME} ]; then
 | 
	
		
			
			|  | 867 | +            ln -s /etc/letsencrypt/live/${FULLBLOG_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${FULLBLOG_DOMAIN_NAME}.key
 | 
	
		
			
			|  | 868 | +            ln -s /etc/letsencrypt/live/${FULLBLOG_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${FULLBLOG_DOMAIN_NAME}.pem
 | 
	
		
			
			|  | 869 | +        fi
 | 
	
		
			
			|  | 870 | +    fi
 | 
	
		
			
			| 869 | 871 |  }
 | 
	
		
			
			| 870 | 872 |  
 | 
	
		
			
			| 871 | 873 |  function restore_cjdns {
 | 
	
		
			
			| 872 |  | -	if [[ $RESTORE_APP != 'all' ]]; then
 | 
	
		
			
			| 873 |  | -		if [[ $RESTORE_APP != 'cjdns' ]]; then
 | 
	
		
			
			| 874 |  | -			return
 | 
	
		
			
			| 875 |  | -		fi
 | 
	
		
			
			| 876 |  | -	fi
 | 
	
		
			
			| 877 |  | -	if [ -d $SERVER_DIRECTORY/backup/cjdns ]; then
 | 
	
		
			
			| 878 |  | -		echo $"Restoring cjdns installation"
 | 
	
		
			
			| 879 |  | -		restore_directory_from_friend /root/tempcjdns cjdns
 | 
	
		
			
			| 880 |  | -		rm -rf /etc/cjdns
 | 
	
		
			
			| 881 |  | -		cp -r /root/tempcjdns/etc/cjdns /etc/
 | 
	
		
			
			| 882 |  | -		if [ ! "$?" = "0" ]; then
 | 
	
		
			
			| 883 |  | -			exit 7438
 | 
	
		
			
			| 884 |  | -		fi
 | 
	
		
			
			| 885 |  | -		rm -rf /root/tempcjdns
 | 
	
		
			
			| 886 |  | -	fi
 | 
	
		
			
			|  | 874 | +    if [[ $RESTORE_APP != 'all' ]]; then
 | 
	
		
			
			|  | 875 | +        if [[ $RESTORE_APP != 'cjdns' ]]; then
 | 
	
		
			
			|  | 876 | +            return
 | 
	
		
			
			|  | 877 | +        fi
 | 
	
		
			
			|  | 878 | +    fi
 | 
	
		
			
			|  | 879 | +    if [ -d $SERVER_DIRECTORY/backup/cjdns ]; then
 | 
	
		
			
			|  | 880 | +        echo $"Restoring cjdns installation"
 | 
	
		
			
			|  | 881 | +        restore_directory_from_friend /root/tempcjdns cjdns
 | 
	
		
			
			|  | 882 | +        rm -rf /etc/cjdns
 | 
	
		
			
			|  | 883 | +        cp -r /root/tempcjdns/etc/cjdns /etc/
 | 
	
		
			
			|  | 884 | +        if [ ! "$?" = "0" ]; then
 | 
	
		
			
			|  | 885 | +            exit 7438
 | 
	
		
			
			|  | 886 | +        fi
 | 
	
		
			
			|  | 887 | +        rm -rf /root/tempcjdns
 | 
	
		
			
			|  | 888 | +    fi
 | 
	
		
			
			| 887 | 889 |  }
 | 
	
		
			
			| 888 | 890 |  
 | 
	
		
			
			| 889 | 891 |  function restore_voip {
 | 
	
		
			
			| 890 |  | -	if [[ $RESTORE_APP != 'all' ]]; then
 | 
	
		
			
			| 891 |  | -		if [[ $RESTORE_APP != 'voip' ]]; then
 | 
	
		
			
			| 892 |  | -			return
 | 
	
		
			
			| 893 |  | -		fi
 | 
	
		
			
			| 894 |  | -	fi
 | 
	
		
			
			| 895 |  | -	if [ -d $SERVER_DIRECTORY/backup/voip ]; then
 | 
	
		
			
			| 896 |  | -		echo $"Restoring VoIP settings"
 | 
	
		
			
			| 897 |  | -		restore_directory_from_friend /root/tempvoip voip
 | 
	
		
			
			| 898 |  | -		cp -f /root/tempvoip/home/$ADMIN_USERNAME/tempbackup/mumble-server.ini /etc/
 | 
	
		
			
			| 899 |  | -		if [ ! "$?" = "0" ]; then
 | 
	
		
			
			| 900 |  | -			rm -rf /root/tempvoip
 | 
	
		
			
			| 901 |  | -			exit 7823
 | 
	
		
			
			| 902 |  | -		fi
 | 
	
		
			
			| 903 |  | -		cp -f /root/tempvoip/home/$ADMIN_USERNAME/tempbackup/sipwitch.conf /etc/sipwitch.conf
 | 
	
		
			
			| 904 |  | -		if [ ! "$?" = "0" ]; then
 | 
	
		
			
			| 905 |  | -			rm -rf /root/tempvoip
 | 
	
		
			
			| 906 |  | -			exit 7823
 | 
	
		
			
			| 907 |  | -		fi
 | 
	
		
			
			| 908 |  | -		cp -f /root/tempvoip/home/$ADMIN_USERNAME/tempbackup/mumble-server.sqlite /var/lib/mumble-server/
 | 
	
		
			
			| 909 |  | -		if [ ! "$?" = "0" ]; then
 | 
	
		
			
			| 910 |  | -			rm -rf /root/tempvoip
 | 
	
		
			
			| 911 |  | -			exit 276
 | 
	
		
			
			| 912 |  | -		fi
 | 
	
		
			
			| 913 |  | -		rm -rf /root/tempvoip
 | 
	
		
			
			| 914 |  | -		cp /etc/ssl/certs/mumble* /var/lib/mumble-server
 | 
	
		
			
			| 915 |  | -		cp /etc/ssl/private/mumble* /var/lib/mumble-server
 | 
	
		
			
			| 916 |  | -		chown -R mumble-server:mumble-server /var/lib/mumble-server
 | 
	
		
			
			| 917 |  | -		service sipwitch restart
 | 
	
		
			
			| 918 |  | -		service mumble-server restart
 | 
	
		
			
			| 919 |  | -	fi
 | 
	
		
			
			|  | 892 | +    if [[ $RESTORE_APP != 'all' ]]; then
 | 
	
		
			
			|  | 893 | +        if [[ $RESTORE_APP != 'voip' ]]; then
 | 
	
		
			
			|  | 894 | +            return
 | 
	
		
			
			|  | 895 | +        fi
 | 
	
		
			
			|  | 896 | +    fi
 | 
	
		
			
			|  | 897 | +    if [ -d $SERVER_DIRECTORY/backup/voip ]; then
 | 
	
		
			
			|  | 898 | +        echo $"Restoring VoIP settings"
 | 
	
		
			
			|  | 899 | +        restore_directory_from_friend /root/tempvoip voip
 | 
	
		
			
			|  | 900 | +        cp -f /root/tempvoip/home/$ADMIN_USERNAME/tempbackup/mumble-server.ini /etc/
 | 
	
		
			
			|  | 901 | +        if [ ! "$?" = "0" ]; then
 | 
	
		
			
			|  | 902 | +            rm -rf /root/tempvoip
 | 
	
		
			
			|  | 903 | +            exit 7823
 | 
	
		
			
			|  | 904 | +        fi
 | 
	
		
			
			|  | 905 | +        cp -f /root/tempvoip/home/$ADMIN_USERNAME/tempbackup/sipwitch.conf /etc/sipwitch.conf
 | 
	
		
			
			|  | 906 | +        if [ ! "$?" = "0" ]; then
 | 
	
		
			
			|  | 907 | +            rm -rf /root/tempvoip
 | 
	
		
			
			|  | 908 | +            exit 7823
 | 
	
		
			
			|  | 909 | +        fi
 | 
	
		
			
			|  | 910 | +        cp -f /root/tempvoip/home/$ADMIN_USERNAME/tempbackup/mumble-server.sqlite /var/lib/mumble-server/
 | 
	
		
			
			|  | 911 | +        if [ ! "$?" = "0" ]; then
 | 
	
		
			
			|  | 912 | +            rm -rf /root/tempvoip
 | 
	
		
			
			|  | 913 | +            exit 276
 | 
	
		
			
			|  | 914 | +        fi
 | 
	
		
			
			|  | 915 | +        rm -rf /root/tempvoip
 | 
	
		
			
			|  | 916 | +        cp /etc/ssl/certs/mumble* /var/lib/mumble-server
 | 
	
		
			
			|  | 917 | +        cp /etc/ssl/private/mumble* /var/lib/mumble-server
 | 
	
		
			
			|  | 918 | +        chown -R mumble-server:mumble-server /var/lib/mumble-server
 | 
	
		
			
			|  | 919 | +        service sipwitch restart
 | 
	
		
			
			|  | 920 | +        service mumble-server restart
 | 
	
		
			
			|  | 921 | +    fi
 | 
	
		
			
			| 920 | 922 |  }
 | 
	
		
			
			| 921 | 923 |  
 | 
	
		
			
			| 922 | 924 |  function restore_tox {
 | 
	
		
			
			| 923 |  | -	if [[ $RESTORE_APP != 'all' ]]; then
 | 
	
		
			
			| 924 |  | -		if [[ $RESTORE_APP != 'tox' ]]; then
 | 
	
		
			
			| 925 |  | -			return
 | 
	
		
			
			| 926 |  | -		fi
 | 
	
		
			
			| 927 |  | -	fi
 | 
	
		
			
			| 928 |  | -	if [ -d $SERVER_DIRECTORY/backup/tox ]; then
 | 
	
		
			
			| 929 |  | -		echo $"Restoring Tox node settings"
 | 
	
		
			
			| 930 |  | -		restore_directory_from_friend / tox
 | 
	
		
			
			| 931 |  | -		if [ ! "$?" = "0" ]; then
 | 
	
		
			
			| 932 |  | -			exit 93653
 | 
	
		
			
			| 933 |  | -		fi
 | 
	
		
			
			| 934 |  | -		cp /var/lib/tox-bootstrapd/tox-bootstrapd.conf /etc/tox-bootstrapd.conf
 | 
	
		
			
			| 935 |  | -		systemctl restart tox-bootstrapd.service
 | 
	
		
			
			| 936 |  | -		if [ ! "$?" = "0" ]; then
 | 
	
		
			
			| 937 |  | -			systemctl status tox-bootstrapd.service
 | 
	
		
			
			| 938 |  | -			exit 59369
 | 
	
		
			
			| 939 |  | -		fi
 | 
	
		
			
			| 940 |  | -	fi
 | 
	
		
			
			|  | 925 | +    if [[ $RESTORE_APP != 'all' ]]; then
 | 
	
		
			
			|  | 926 | +        if [[ $RESTORE_APP != 'tox' ]]; then
 | 
	
		
			
			|  | 927 | +            return
 | 
	
		
			
			|  | 928 | +        fi
 | 
	
		
			
			|  | 929 | +    fi
 | 
	
		
			
			|  | 930 | +    if [ -d $SERVER_DIRECTORY/backup/tox ]; then
 | 
	
		
			
			|  | 931 | +        echo $"Restoring Tox node settings"
 | 
	
		
			
			|  | 932 | +        restore_directory_from_friend / tox
 | 
	
		
			
			|  | 933 | +        if [ ! "$?" = "0" ]; then
 | 
	
		
			
			|  | 934 | +            exit 93653
 | 
	
		
			
			|  | 935 | +        fi
 | 
	
		
			
			|  | 936 | +        cp /var/lib/tox-bootstrapd/tox-bootstrapd.conf /etc/tox-bootstrapd.conf
 | 
	
		
			
			|  | 937 | +        systemctl restart tox-bootstrapd.service
 | 
	
		
			
			|  | 938 | +        if [ ! "$?" = "0" ]; then
 | 
	
		
			
			|  | 939 | +            systemctl status tox-bootstrapd.service
 | 
	
		
			
			|  | 940 | +            exit 59369
 | 
	
		
			
			|  | 941 | +        fi
 | 
	
		
			
			|  | 942 | +    fi
 | 
	
		
			
			| 941 | 943 |  }
 | 
	
		
			
			| 942 | 944 |  
 | 
	
		
			
			| 943 | 945 |  function restore_email {
 | 
	
		
			
			| 944 |  | -	if [[ $RESTORE_APP != 'all' ]]; then
 | 
	
		
			
			| 945 |  | -		if [[ $RESTORE_APP != 'email' ]]; then
 | 
	
		
			
			| 946 |  | -			return
 | 
	
		
			
			| 947 |  | -		fi
 | 
	
		
			
			| 948 |  | -	fi
 | 
	
		
			
			| 949 |  | -	for d in $SERVER_DIRECTORY/backup/mail/*/ ; do
 | 
	
		
			
			| 950 |  | -		USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
 | 
	
		
			
			| 951 |  | -		if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
 | 
	
		
			
			| 952 |  | -			if [ -d $SERVER_DIRECTORY/backup/mail/$USERNAME ]; then
 | 
	
		
			
			| 953 |  | -				if [ ! -d /home/$USERNAME ]; then
 | 
	
		
			
			| 954 |  | -					${PROJECT_NAME}-adduser $USERNAME
 | 
	
		
			
			| 955 |  | -				fi
 | 
	
		
			
			| 956 |  | -				echo $"Restoring emails for $USERNAME"
 | 
	
		
			
			| 957 |  | -				restore_directory_from_friend /root/tempmail mail/$USERNAME
 | 
	
		
			
			| 958 |  | -				if [ ! -d /home/$USERNAME/Maildir ]; then
 | 
	
		
			
			| 959 |  | -					mkdir /home/$USERNAME/Maildir
 | 
	
		
			
			| 960 |  | -				fi
 | 
	
		
			
			| 961 |  | -				tar -xzvf /root/tempmail/root/tempbackupemail/$USERNAME/maildir.tar.gz -C /
 | 
	
		
			
			| 962 |  | -				if [ ! "$?" = "0" ]; then
 | 
	
		
			
			| 963 |  | -					exit 927
 | 
	
		
			
			| 964 |  | -				fi
 | 
	
		
			
			| 965 |  | -				rm -rf /root/tempmail
 | 
	
		
			
			| 966 |  | -			fi
 | 
	
		
			
			| 967 |  | -		fi
 | 
	
		
			
			| 968 |  | -	done
 | 
	
		
			
			|  | 946 | +    if [[ $RESTORE_APP != 'all' ]]; then
 | 
	
		
			
			|  | 947 | +        if [[ $RESTORE_APP != 'email' ]]; then
 | 
	
		
			
			|  | 948 | +            return
 | 
	
		
			
			|  | 949 | +        fi
 | 
	
		
			
			|  | 950 | +    fi
 | 
	
		
			
			|  | 951 | +    for d in $SERVER_DIRECTORY/backup/mail/*/ ; do
 | 
	
		
			
			|  | 952 | +        USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
 | 
	
		
			
			|  | 953 | +        if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
 | 
	
		
			
			|  | 954 | +            if [ -d $SERVER_DIRECTORY/backup/mail/$USERNAME ]; then
 | 
	
		
			
			|  | 955 | +                if [ ! -d /home/$USERNAME ]; then
 | 
	
		
			
			|  | 956 | +                    ${PROJECT_NAME}-adduser $USERNAME
 | 
	
		
			
			|  | 957 | +                fi
 | 
	
		
			
			|  | 958 | +                echo $"Restoring emails for $USERNAME"
 | 
	
		
			
			|  | 959 | +                restore_directory_from_friend /root/tempmail mail/$USERNAME
 | 
	
		
			
			|  | 960 | +                if [ ! -d /home/$USERNAME/Maildir ]; then
 | 
	
		
			
			|  | 961 | +                    mkdir /home/$USERNAME/Maildir
 | 
	
		
			
			|  | 962 | +                fi
 | 
	
		
			
			|  | 963 | +                tar -xzvf /root/tempmail/root/tempbackupemail/$USERNAME/maildir.tar.gz -C /
 | 
	
		
			
			|  | 964 | +                if [ ! "$?" = "0" ]; then
 | 
	
		
			
			|  | 965 | +                    exit 927
 | 
	
		
			
			|  | 966 | +                fi
 | 
	
		
			
			|  | 967 | +                rm -rf /root/tempmail
 | 
	
		
			
			|  | 968 | +            fi
 | 
	
		
			
			|  | 969 | +        fi
 | 
	
		
			
			|  | 970 | +    done
 | 
	
		
			
			| 969 | 971 |  }
 | 
	
		
			
			| 970 | 972 |  
 | 
	
		
			
			| 971 | 973 |  function restore_dlna {
 | 
	
		
			
			| 972 |  | -	if [[ $RESTORE_APP != 'all' ]]; then
 | 
	
		
			
			| 973 |  | -		if [[ $RESTORE_APP != 'dlna' ]]; then
 | 
	
		
			
			| 974 |  | -			return
 | 
	
		
			
			| 975 |  | -		fi
 | 
	
		
			
			| 976 |  | -	fi
 | 
	
		
			
			| 977 |  | -	if [ -d /var/cache/minidlna ]; then
 | 
	
		
			
			| 978 |  | -		if [ -d $SERVER_DIRECTORY/backup/dlna ]; then
 | 
	
		
			
			| 979 |  | -			echo $"Restoring DLNA cache"
 | 
	
		
			
			| 980 |  | -			restore_directory_from_friend /root/tempdlna dlna
 | 
	
		
			
			| 981 |  | -			cp -r /root/tempdlna/var/cache/minidlna/* /var/cache/minidlna/
 | 
	
		
			
			| 982 |  | -			if [ ! "$?" = "0" ]; then
 | 
	
		
			
			| 983 |  | -				exit 982
 | 
	
		
			
			| 984 |  | -			fi
 | 
	
		
			
			| 985 |  | -			rm -rf /root/tempdlna
 | 
	
		
			
			| 986 |  | -		fi
 | 
	
		
			
			| 987 |  | -	fi
 | 
	
		
			
			|  | 974 | +    if [[ $RESTORE_APP != 'all' ]]; then
 | 
	
		
			
			|  | 975 | +        if [[ $RESTORE_APP != 'dlna' ]]; then
 | 
	
		
			
			|  | 976 | +            return
 | 
	
		
			
			|  | 977 | +        fi
 | 
	
		
			
			|  | 978 | +    fi
 | 
	
		
			
			|  | 979 | +    if [ -d /var/cache/minidlna ]; then
 | 
	
		
			
			|  | 980 | +        if [ -d $SERVER_DIRECTORY/backup/dlna ]; then
 | 
	
		
			
			|  | 981 | +            echo $"Restoring DLNA cache"
 | 
	
		
			
			|  | 982 | +            restore_directory_from_friend /root/tempdlna dlna
 | 
	
		
			
			|  | 983 | +            cp -r /root/tempdlna/var/cache/minidlna/* /var/cache/minidlna/
 | 
	
		
			
			|  | 984 | +            if [ ! "$?" = "0" ]; then
 | 
	
		
			
			|  | 985 | +                exit 982
 | 
	
		
			
			|  | 986 | +            fi
 | 
	
		
			
			|  | 987 | +            rm -rf /root/tempdlna
 | 
	
		
			
			|  | 988 | +        fi
 | 
	
		
			
			|  | 989 | +    fi
 | 
	
		
			
			| 988 | 990 |  }
 | 
	
		
			
			| 989 | 991 |  
 | 
	
		
			
			| 990 | 992 |  # Social key management
 |